2011-01-06 32 views
12

Trong dự án của tôi, tôi cần phải nhúng âm thanh (ví dụ: mp3, v.v.) vào một trang web. Khi người dùng truy cập trang, âm thanh sẽ bắt đầu phát. Khi âm thanh kết thúc, bảng câu hỏi (các trường biểu mẫu) sẽ xuất hiện để người dùng trả lời.Cách phát hiện âm thanh đã phát xong trong trang web?

Có cách nào để kiểm tra xem âm thanh đã phát xong chưa bằng jquery, sao cho bảng câu hỏi có thể xuất hiện sau khi người dùng đã nghe toàn bộ âm thanh?

Tôi biết một cách để kiểm tra là xác định độ dài âm thanh, sau đó tôi có thể đặt hẹn giờ để hiển thị bảng câu hỏi, nhưng tôi hy vọng jquery có một số loại xử lý sự kiện cho phép tôi thực hiện việc này.

Tôi thấy rằng jquery có nhiều plugin âm thanh, và tôi không thể chắc chắn sẽ làm những gì tôi muốn ở đây: http://plugins.jquery.com/plugin-tags/audio

Bất kỳ ý tưởng được đánh giá rất cao.

Cảm ơn.

Trả lời

19

Nếu bạn đang sử dụng thẻ âm thanh html5, có trình xử lý sự kiện "được sửa đổi". Tôi không biết liệu các trình duyệt có hỗ trợ nó hay không.

Cái gì như:

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

Trong trường hợp cuối cùng bạn có thể sử dụng một swf có thể phát âm thanh, và cảnh báo javascript của bạn khi nó đạt đến kết thúc.

+0

Thật không may, tôi làm việc trong một công ty nơi IE 7 hiện là "ưa thích" của trình duyệt, và nó có vẻ như chỉ IE 9 trở đi sẽ có HTML5 . – limc

+0

Vì vậy, bạn nên sử dụng trình phát flash. Hãy thử XSPF –

+1

http://musicplayer.sourceforge.net/ –

1

Bạn cũng có thể thêm một sự kiện nghe jQuery như vậy:

$("audio").on("ended", function() { 
    console.log("All Done!"); 
}); 
Các vấn đề liên quan