2014-11-25 69 views
1

我構建了簡單的HTML5視頻播放器。我在IE9中沒有觸發「play」事件時遇到問題。看看FiddleIE9 HTML5視頻「播放」事件未在第二次播放時觸發

播放器播放前有一個大的播放按鈕,播放時隱藏,視頻播放完畢後可見。

以下是我正在使用的三位聽衆。

btn.addEventListener("click", function() { 
    vid.play(); 
}); 

vid.addEventListener("play", function() { 
    btn.style.display = "none"; 
    alert("'play' event fired"); 
}); 

vid.addEventListener("ended", function() { 
    btn.style.display = "block"; 
}); 

在IE9中「玩」事件不會被解僱的視頻完整播放第二次及以後。

我猜這是要麼我不明白「玩」HTML5視頻事件,或在IE9中的某種錯誤。

任何幫助,非常感謝。

回答

1

的假設::我想,即使你的視頻結束paused事件仍然false,因此可嘗試明確設置pause一旦你的視頻結束,如:

btn.addEventListener("click", function() { 
    vid.play(); 
}); 

vid.addEventListener("play", function() { 
    btn.style.display = "none"; 
    alert("'play' event fired"); 
}); 

vid.addEventListener("ended", function() { 
    if(!this.paused) this.pause(); 
    btn.style.display = "block"; 
}); 
+0

感謝DemoUser。我注意到當視頻播放結束後,Firefox,Chrome,Safari都將'paused'屬性設置爲'true',IE9/10/11將它設置爲'false'。關於規範誰是對的? (我看過[規範](http://www.w3.org/TR/html5/embedded-content-0.html#mediaevents),找不到明確的答案。) – Stimpson 2014-11-25 22:07:53

+0

@Stimpson看到這個鏈接:: https://connect.microsoft.com/IE/feedback/details/810454/html5-video-audio-doesnt-become-paused-after-playback-ends,似乎爲IE,這是由設計,暫停狀態不會在視頻結束時被解僱..! – 2014-11-25 22:50:47

+0

謝謝。多麼悲傷的事態。 – Stimpson 2014-11-25 23:00:17