如何切换dom音频元素

How to toggle a dom audio element

本文关键字:元素 音频 dom 何切换      更新时间:2023-09-26

我是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?

您可以使用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(后者是一个方法)。

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