2011-08-16 8 views
8

Solo quiero reproducir varios archivos de audio secuencialmente utilizando la función de audio HTML5. Al final de cada jugada, el evento "finalizado" se dispara para cargar el próximo audio. Pero en Safari 5.1 para escritorio (en Mac), encontré que el evento "finalizado" solo se disparaba al final de la primera jugada. Después de cargar y reproducir el segundo audio, el evento "finalizado" no se activó nuevamente incluso cuando la reproducción de audio terminó (seguí este evento por "timeupdate"). Incluso cuando reproduje manualmente cualquier otro archivo de audio, el evento "finalizado" no volvió a sonar. Pero en Chrome y en el safari móvil, este problema parece no existir y el reproductor de audio puede reproducir desde el primer audio hasta el último audio continuamente. ¿Es este el error de Safari 5.1 para Mac OS X? (No lo probé en Windows)Versión de escritorio de Safari para Mac: el evento HTML 5 "finalizado" no desata el problema

Actualmente, solo puedo usar el evento "timeupdate" para verificar si la reproducción terminó o no.

+0

Me encontré con este mismo mismo error esta noche. Lamentablemente todavía no hay solución. Gracias por publicar. – shanebo

Respuesta

1

Sí, este es un error molesto. Puede solucionar esto cambiando la identificación del elemento de audio para cada archivo. Aquí hay un código de muestra para tener una idea:

<div id="audioDiv"> 
<audio id="audio0" src=""> 
    <h1>Your browser does not support the audio tag.</h1> 
</audio> 
</div> 

<script> 
var audioCounter = 0; 

function next() { 
audioCounter++; 
document.getElementById('audioDiv').innerHTML = '<audio id="audio' + audioCounter + '" src="file.mp3"></audio>'; 
document.getElementById('audio' + audioCounter).addEventListener('ended', next, false); 
document.getElementById('audio' + audioCounter).play(); 
} 

</script> 
Cuestiones relacionadas