是"静音"和"体积= 0.0"相同?事件监听器以不同方式对待它们

时间:2016-07-28 01:09:02

标签: javascript html

我对编码非常陌生,而且我遇到了一个问题,我找不到解决方法。我正在制作一个我计划与我教练的运动员一起使用的媒体播放器。我的想法是强迫他们听取我对他们观看的游戏电影的评论。因此,如果播放器的音量太低,播放器会暂停。我已经做到了,所以当音量降低到10%以下时,播放会暂停。但是,当按下静音按钮(在默认的HTML5媒体播放器中)时,播放不会暂停。

静音,音量0.0不一样?当我将滑块一直降低到零(我只能在没有警报的情况下执行此操作,否则在警报触发时它会卡在0.1),音量/静音按钮显示静音。但我确定这是因为我必须通过事件监听器正在寻找的0.1阈值。

这是我的代码看起来像

video.addEventListener("volumechange", function() {
        if (video.volume < 0.1) {
            video.pause();
            alert('Video Paused: Volume too low');
        }   
    }); 

我打算自定义我的播放器的控件,所以我认为我能够很容易地使它与onclick事件一起工作,但我觉得在此期间有点混乱是值得弄清楚的。

卷滑块是否会更改volumechange事件中包含的所有内容?或者有没有办法使它可以使volumechange事件监听器识别静音状态?或者为静音制作一个单独的方法?(我知道这不是一个事件。)或者我应该只是把它放到我做自定义控件之前?

感谢。

2 个答案:

答案 0 :(得分:2)

description for the volumechange event说:

  

音频音量发生变化时发送(当音量设置为时以及更改静音属性时)。

假设这是准确的,您的事件处理程序将触发静音和取消静音,因此只需在if语句中使用muted属性即可:

if (video.volume < 0.1 || video.muted) {
    // Pause.
}

volume的值与muted无关,在您静音或取消静音时不会改变。

答案 1 :(得分:0)

只需同时使用video.volumevideo.muted

if (video.volume < 0.1 || video.muted) {

//your logic

}