代码之家  ›  专栏  ›  技术社区  ›  holden321

HTML5视频-onmuted和onloop事件

  •  2
  • holden321  · 技术社区  · 11 年前

    如何检测视频的静音和循环财产的切换?

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

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

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

    1 回复  |  直到 11 年前
        1
  •  3
  •   brianchirls    11 年前

    1) 你可以检测到 muted 发生“音量变化”事件。

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

    2) MutationObserver无法静音工作,因为它没有属性,但它 为…工作 loop .

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

    在我的测试中,无论您是否设置 video.loop = true 使用Javascript(至少在Chrome和Firefox中)或视频元素上的右键单击下拉菜单(在FF中不可用,只有Chrome)。