2011-01-06 25 views
12

En mi proyecto, necesito incrustar audio (por ejemplo, mp3, etc.) en una página web. Cuando el usuario visita la página, el audio comenzará a reproducirse. Cuando finaliza el audio, el cuestionario (campos de formulario) aparecerá para que el usuario responda.¿Cómo detectar que un audio ha terminado de reproducirse en una página web?

¿Hay alguna forma de comprobar si el audio ha terminado de reproducirse utilizando jquery, de modo que el cuestionario pueda aparecer después de que el usuario haya escuchado todo el audio?

Sé que una manera de verificar es determinar la duración del audio, luego puedo configurar un temporizador para mostrar el cuestionario, pero espero que jquery tenga algún tipo de manejador de eventos que me permita lograrlo.

veo que jQuery tiene muchos plugins de audio, y no puedo estar seguro de que hará lo que yo quiero aquí: http://plugins.jquery.com/plugin-tags/audio

Todas las ideas son muy apreciadas.

Gracias.

Respuesta

19

Si está utilizando la etiqueta de audio html5, está el controlador de eventos "onended". No sé si los navegadores lo admiten todavía.

Algo así como:

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

En este último caso se puede utilizar un SWF que puede reproducir el sonido, y alertar a su javascript cuando se llega al final.

+0

Por desgracia, yo trabajo en una corporación donde IE 7 es actualmente el navegador "preferido", y parece que solamente IE 9 en adelante tendrá HTML5 . – limc

+0

Así que deberías usar un reproductor flash. Pruebe el XSPF –

+1

http://musicplayer.sourceforge.net/ –

1

También puede añadir un detector de eventos jQuery así:

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