Quiero reproducir automáticamente un archivo mp3 cuando el navegador abre una página web. Aquí está mi código javascript basado en jQuery:

$(window).load(function(){
    alert("Hey");
    (new Audio('mp3/musik.mp3')).play();
});

Chrome en Android es la versión más nueva de la tienda Google Play (50.0.algo), en mi computadora portátil es 44.0.2403.157 (Ubuntu 15.10 64bit).

En ambos navegadores se muestra la ventana emergente, pero el mp3 solo se reproduce en mi computadora portátil. Si un evento onclick ejecuta el mismo código (el que está dentro de la función anónima), funciona en ambos dispositivos. Esto no tiene sentido, ¿verdad? ¿Dónde diablos está el problema?

¡Gracias de antemano!

1
Gerhard Hagerer 8 may. 2016 a las 00:44

3 respuestas

La mejor respuesta

Gracias a @JohnSmith por la respuesta en los comentarios de mi pregunta:

La reproducción automática de audio HTML5 no es compatible con Chrome Android, creo.

http://bugs.chromium.org/p/chromium/issues/detail?id=138132

1
Gerhard Hagerer 9 may. 2016 a las 07:33

.load puede fallar, consulte http://api.jquery.com/load-event/

Utilice el documento .ready en su lugar:

$(document).ready(function(){
    alert("Hey");
    (new Audio('mp3/musik.mp3')).play();
});
0
yezzz 7 may. 2016 a las 21:53

¿Esto funciona?

$(document).ready(function(){ });

Hazme saber si esto funciona.

ACTUALIZACIÓN:

OK, he intentado esto y funciona

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
<script type="text/javascript">
    window.onload = function() {
        new Audio('Into the Wild - Red to Black.mp3').play();
    };
</script>
</body>
</html>

Espero que esto haya resuelto tus problemas.

0
uglycode 7 may. 2016 a las 22:35