javascript - HTML5 视频 - onmuted 和 onloop 事件

标签 javascript google-chrome html5-video

如何检测视频静音和循环属性的切换?

不幸的是,没有“onmuted”或“onloop”事件,如“onplay”或“onpause”。

Object.observe 不起作用。
MutationObserver 也不起作用。

如有任何建议,我们将不胜感激。

最佳答案

1) 您可以使用“volumechange”事件检测静音

video.addEventListener('volumechange', function () {
    console.log('muted', video.muted);
}, false);
// video.onvolumechange = ... works too

2) MutationObserver 无法静音工作,因为它没有属性,但它确实适用于循环

var observer = new MutationObserver(function(mutations) {
    mutations.forEach(function(mutation) {
        if (mutation.type === 'attribute' && mutation.attributeName === 'loop') {
            console.log('loop changed', video.loop);
        }
    });
});

observer.observe(video, {
    attributes: true
});

在我的测试中,无论您使用 Javascript(至少在 Chrome 和 Firefox 中)还是使用右键单击下拉菜单(在 FF 中不可用,仅 Chrome)在视频元素上。

关于javascript - HTML5 视频 - onmuted 和 onloop 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25105414/

相关文章:

javascript - 在 WordPress 中添加带有简码的联系表单 ajax

javascript - 上标 .toFixed() 的结果

javascript - 是否可以在 Typescript 中创建一个变量,只要它遵循某种格式,它可以是任何值?

javascript - 当浏览器不支持 HTML5 视频时,如何重定向到 URL?

javascript - 使用 HTML5 视频元素反向播放视频

javascript - Puppeteer(评估失败 : syntaxerror: invalid or unexpcted token)

css - Google Chrome 开发者工具不显示检查的元素样式?

google-chrome - 什么是 ROUNDED-UNICODE 字符的正确显示?

image - chrome中png图像中的黑色背景

javascript - 在 Chrome 中创建 MediaStream 对象?