Buenas, tengo una página en la cuál cuando se recarga suena un audio y no se detiene hasta que le des al pause
.
El problema es que en el ordenador funciona perfectamente el audio, pero en el móvil no.
Tengo lo siguiente:
<audio onended="this.play();" loop autoplay tabindex="0" id="beep-one" controls preload="auto" >
<source src="assets/sound/sound.mp3">
</audio>
Ahora esto en el JS:
var initSound = function () {
playSound();
setTimeout(function () {
// the timeout isn't completely necessary but solves some issues on older devices/buggy browsers
stopSound();
}, 0);
document.removeEventListener('touchstart', initSound, false);
}
document.addEventListener('touchstart', initSound, false);
/*
document.getElementById('beep-one').addEventListener('ended', function(){
this.currentTime = 0;
this.play();
}, false);
*/
myAudio = document.getElementById('beep-one');
if (typeof myAudio.loop == 'boolean')
{
myAudio.loop = true;
}
else
{
myAudio.addEventListener('ended', function() {
this.currentTime = 0;
this.play();
}, false);
}
myAudio.play();
//document.getElementById('beep-one').play();
/*
function playSound(){
var mySound = new Audio( "assets/sound/sound.mp3", {
formats: [ "ogg", "mp3", "aac" ]
});
mySound.play();
}
*/
function playSound(){
var mySound = document.getElementById('beep-one');
mySound.play();
}
function stopSound(){
var mySound = new Audio( "assets/sound/sound.mp3", {
formats: [ "ogg", "mp3", "aac" ]
});
mySound.stop();
}
He tenido que añadir eso para que el audio sonara en los dipositivos móviles. Pero claro eso no se ejecuta en los móviles hasta que toques la pantalla, porque estoy usando touchstart
, existe alguna otra forma para hacerlo que cuando la página recargue suene directamente sin hacer nada?
He probado con load
pero nada no funciona el audio, por ahora solo lo he conseguido con lo que tengo.
Muchas gracias y un saludo.