2011-11-09 14 views

risposta

41

Per scoprire quando l'audio è pronto per iniziare la riproduzione, aggiungere ascoltatori per lo oncanplay or oncanplaythrough events. Per sapere quando l'audio è stato caricato a tutti, ascoltare 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

Grazie, signore. – auragar

+0

Se potessi, potresti fornire un esempio o spiegare gli ascoltatori e come implementarli. – auragar

+1

@auragar Gli ascoltatori sono una cosa DOM/JavaScript standard, ma solo google per "ascoltatori di eventi DOM". Il modo in cui li implementate dipende da ciò che vuoi che facciano. – robertc

17

Partenza risposta di robertc per come utilizzare listener di eventi. È inoltre possibile controllare direttamente di un elemento audio stato pronto:

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

var readyState = myAudio.readyState; 

readyState sarà un numero. Da Mozilla's docs:

  • 0 - Non sono disponibili informazioni sulla risorsa multimediale.
  • 1 - È stato recuperato un numero sufficiente di risorse multimediali per l'inizializzazione degli attributi dei metadati. La ricerca non solleverà più un'eccezione.
  • 2 - I dati sono disponibili per la posizione di riproduzione corrente, ma non abbastanza per riprodurre effettivamente più di un fotogramma.
  • 3 - Sono disponibili i dati per la posizione di riproduzione corrente e per almeno un po 'di tempo nel futuro (in altre parole, almeno due fotogrammi di video, ad esempio).
  • 4 - Sono disponibili dati sufficienti - e la velocità di download è sufficientemente alta - che il file multimediale può essere riprodotto fino alla fine senza interruzioni.
Problemi correlati