entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Hacer sonar audio en móvil

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.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta