简体   繁体   English

IE9 HTML5视频“播放”事件在第二次播放时未触发

[英]IE9 HTML5 video “play” event not fired on second play

I've built simple HTML5 video player. 我已经构建了简单的HTML5视频播放器。 I'm having trouble with the "play" event not being fired in IE9. 我在IE9中没有触发“播放”事件时遇到了麻烦。 Have a look at the Fiddle . 看看小提琴

The player has a big play button visible before playback, hidden while playing, visible when video completes. 播放器有一个大播放按钮,在播放前可见,在播放时隐藏,在视频播放完成后可见。

Below are the three listeners I'm using. 以下是我正在使用的三个侦听器。

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";
});

In IE9 the "play" event isn't being fired for the second and subsequent times the video is played through. 在IE9中,“播放”事件不会在第二次及以后播放视频时触发。

I'm guessing it's either something I don't understand about the "play" HTML5 video event, or some kind of bug in IE9. 我猜这可能是我对“播放” HTML5视频事件不了解的原因,或者是IE9中的某种错误。

Any help is greatly appreciated. 任何帮助是极大的赞赏。

An assumption:: I think paused event remains false even when your video ends, so may be try explicitly setting pause once your video ends, as: 一个假设::我认为即使您的视频结束, 暂停事件仍然为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";
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM