【问题标题】:How to toggle a dom audio element如何切换 dom 音频元素
【发布时间】:2015-05-29 00:03:56
【问题描述】:

我是 Javascript 新手,我试图让用户通过按下按钮来打开或关闭所有声音。我已经创建了切换音频的功能:

function playPause(id){
soundElement = document.getElementById(id);
if (soundElement.pause) {
    soundElement.play();
}
else
    soundElement.pause();
}

然后是按键功能的代码:

 if (keys.hasOwnProperty(77)){
 soundElement.playPause();
 }

我有几段通过 soundElement 运行的音频。我是否必须遍历所有 soundElement 以允许用户静音所有音频,或者有没有办法暂停所有 soundElement 而不必循环每个 id?

【问题讨论】:

    标签: javascript audio


    【解决方案1】:

    您可以改用querySelectorAll()

    var audioElements = document.querySelectorAll("audio");
    

    然后迭代每一个并切换状态,例如:

    var i = 0, el;
    while(el = audioElements[i++]) playPause(el);
    
    function playPause(soundElement) {
       if (soundElement.paused) {
         soundElement.play();
       }
       else
         soundElement.pause();
    }
    

    要检查暂停状态,请使用paused 而不是pause(后者是一种方法)。

    请注意,不能保证音频正在播放/已加载等,因此需要进行一些错误检查以使这项工作完美无缺。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-21
      • 2020-08-18
      • 2017-05-21
      • 2015-11-29
      • 2010-10-12
      相关资源
      最近更新 更多