2012-06-19 16 views
18

Bir etiketin bir mp3 çalarken ne zaman bittiğini belirlerken bir sorun yaşıyorum. Böyle bir şey yaptığımda: Ses sadece ilk kez çalındığında oluşur. Sesi tekrar oynattığımda hiçbir şey olmuyor. Ben onended=doThis(); yöntemini kullandığımda aynı şey olur. Belki de jQuery'de bunu yapmanın bir yolu olduğunu duydum, ama işe yaratamadım. Ben de mp3 çalınır her zaman ses div id değiştirerek düzeltmek için bir yol olabileceğini duymuştum, ama aynı kalmak için id ihtiyacım var çünkü bu benim için çalışmıyor.HTML5 sesin çalmayı bitirdiğinde (birden fazla kez) nasıl algılarsınız?

Herhangi bir fikir sahibi oldu mu?

+0

http://jsfiddle.net/MvzFN/2/ (/ bkz krom dinlemek): Bu keman içinde oneneded olay hep – fcalderan

+0

javascript ses html etiketi değil oluşturmayı deneyin datetikleyebilir. Hala senin için çalışıyor mu? – evenodd

+1

evet hala çalışıyor: http://jsfiddle.net/MvzFN/3/ – fcalderan

cevap

30

ended olay .currentTime özniteliği esas alınarak oluşturulur. http://dev.w3.org/html5/spec/Overview.html#event-media-ended

Yani, tek yapmanız gereken .currentTime'u tekrar sıfırlamaktır.

myAudio.addEventListener("ended", function(){ 
    myAudio.currentTime = 0; 
    console.log("ended"); 
}); 
+1

o! Ama bunu daha önce duraklatmak zorunda kaldım çünkü aksi halde sadece sonsuz bir döngü olurdu – evenodd

İlgili konular