2011-01-06 3 views
12

Nel mio progetto, ho bisogno di incorporare audio (es: mp3, ecc.) In una pagina web. Quando l'utente visita la pagina, l'audio inizierà la riproduzione. Al termine dell'audio, il questionario (campi modulo) verrà visualizzato per consentire all'utente di rispondere.Come rilevare la fine di una riproduzione audio in una pagina Web?

C'è un modo per controllare se l'audio ha finito di suonare usando jquery, in modo che il questionario possa apparire dopo che l'utente ha ascoltato l'intero audio?

So che un modo per controllare è determinare la lunghezza dell'audio, quindi posso impostare un timer per visualizzare il questionario, ma spero che jquery abbia una sorta di gestore di eventi che mi consenta di farlo.

vedo che jQuery ha molti plugin audio, e non posso essere sicuro che farà quello che voglio qui: http://plugins.jquery.com/plugin-tags/audio

Tutte le idee sono molto apprezzate.

Grazie.

risposta

19

Se si utilizza il tag audio html5, esiste il gestore di eventi "onended". Non so se i browser lo supportano ancora.

Qualcosa di simile:

<audio src="xpto.mp3" onended="DoSomething();"></audio> 

In quest'ultimo caso è possibile utilizzare un file SWF in grado di riprodurre il suono, e avvertire il javascript quando raggiunge la fine.

+0

Purtroppo, io lavoro in una società in cui IE 7 è attualmente il browser "preferito", e sembra che solo IE 9 in poi avrà HTML5 . – limc

+0

Quindi dovresti usare un flash player. Prova l'XSPF –

+1

http://musicplayer.sourceforge.net/ –

1

È inoltre possibile aggiungere un listener di eventi jQuery in questo modo:

$("audio").on("ended", function() { 
    console.log("All Done!"); 
});