2011-11-09 10 views

Respuesta

41

Para saber cuándo el audio está listo para comenzar a reproducirse, agregue oyentes para el oncanplay or oncanplaythrough events. Para averiguar si el audio se haya cargado del todo, escuchar la onloadeddata event:

<audio oncanplay="myOnCanPlayFunction()" 
     oncanplaythrough="myOnCanPlayThroughFunction()" 
     onloadeddata="myOnLoadedData()" 
     src="myaudio.ogg" 
     controls> 
    <a href="myaudio.ogg">Download</a> 
</audio> 

<script> 
function myOnCanPlayFunction() { console.log('Can play'); } 
function myOnCanPlayThroughFunction() { console.log('Can play through'); } 
function myOnLoadedData() { console.log('Loaded data'); } 
</script> 
+0

Gracias, señor. – auragar

+0

Si pudiera, podría dar un ejemplo o explicar a los oyentes y cómo implementarlos. – auragar

+1

@auragar Los oyentes son una cosa estándar de DOM/JavaScript, solo google para 'oyentes de eventos DOM'. La forma en que los implemente depende de lo que quiere que hagan. – robertc

17

Salida respuesta de robertc para saber cómo utilizar los detectores de eventos. También puede comprobar directamente listo el estado de un elemento de audio:

var myAudio = $('audio')[0]; 

var readyState = myAudio.readyState; 

readyState habrá un número. De Mozilla's docs:

  • 0 - No hay información disponible sobre el recurso de medios.
  • 1 - Se ha recuperado suficiente recurso de medios para que se inicialicen los atributos de metadatos. La búsqueda ya no generará una excepción.
  • 2 - Los datos están disponibles para la posición de reproducción actual, pero no lo suficiente para reproducir realmente más de un fotograma.
  • 3 - Los datos para la posición de reproducción actual, así como también para al menos un poco de tiempo en el futuro están disponibles (en otras palabras, al menos dos cuadros de video, por ejemplo).
  • 4 - Hay suficientes datos disponibles, y la tasa de descarga es lo suficientemente alta, para que los medios se puedan reproducir hasta el final sin interrupción.
Cuestiones relacionadas