javascript - IE9 HTML5 视频 "play"事件在第二次播放时未触发

标签 javascript html video

我已经构建了简单的 HTML5 视频播放器。我遇到了 IE9 中“播放”事件未触发的问题。看看Fiddle .

播放器有一个大播放按钮,在播放前可见,播放时隐藏,视频结束时可见。

下面是我正在使用的三个监听器。

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 中的某种错误。

非常感谢任何帮助。

最佳答案

一个假设::我认为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";
});

关于javascript - IE9 HTML5 视频 "play"事件在第二次播放时未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27117927/

相关文章:

javascript - 为什么这个对 api 的调用不适用于 3 个字母的单词?

javascript - Keydown 事件不会触发函数

javascript - 如何知道浏览器开发工具中损坏源的来源?

jquery - 选择自定义属性设置样式

android - 在Android中搜索和播放YouTube视频

javascript - 检查子对象是否存在,如果存在,则添加到对象

javascript - 如何工作 : document. getElementById ("ElementName").style ="display:block!important"

c++ - 将 IMFSample* 转换为 ID3D11ShaderResourceView*

html - 嵌入视频位置

在 IE9 和 Firefox 中使用全屏模式的 HTML5 视频