Quiero reproducir un archivo de audio corto (menos de 1) en respuesta a la entrada del usuario en mi aplicación web que se ejecuta en Mobile Safari en el iPad con una latencia mínima entre el evento y la reproducción de audio. La reproducción se puede activar varias veces entre recargas de página, por lo tanto, quiero almacenar en caché el archivo de audio.Reutilización de objetos de audio HTML5 en Mobile Safari
La siguiente reproduce el archivo en la primera posición, pero después de que no pasa nada:
var audio = new Audio("ack.mp3");
$("#button").click(function(e) {
e.preventDefault();
audio.play();
}
Si añado un detector de eventos a la "terminado" evento que vuelve a cargar el archivo que puedo conseguir dos reproducciones de la misma objeto y luego el silencio:
var audio = new Audio("ack.mp3");
audio.addEventListener('ended', function() {
audio.load();
}, false);
$("#button").click(function(e) {
e.preventDefault();
audio.play();
}
Si fijo manualmente el atributo horaActual a 0 como esto:
var audio = new Audio("ack.mp3");
audio.addEventListener('ended', function() {
audio.currentTime=0;
}, false);
$("#button").click(function(e) {
e.preventDefault();
audio.play();
}
me sale el siguiente error en la consola de errores:
INDEX_SIZE_ERR: DOM Exception 1: Index or size was negative, or greater than the allowed value.
Cualquier ideas sobre cómo hacer este trabajo? Gracias de antemano
probado este, pero parece que necesita un retardo 2s entre los juegos. De lo contrario, la jugada posterior no sucederá. – Crashalot
Esto no funciona para mí también. Incluso en iOS 7 (última respuesta de febrero de 2011). –