我正在尝试为网站实现一个非常小的音频播放器。
界面比较简单。它有一个播放/暂停按钮和一个静音/取消静音按钮。
我遇到的问题是为不同的曲目实现同一播放器的多个实例。
播放器的 javascript 是:
jQuery(function() {
var myAudio = document.getElementById("myAudio");
var btnPlayPause = document.getElementById("btnPlayPause");
var btnMute = document.getElementById("btnMute");
btnPlayPause.addEventListener("click", function() {
if (myAudio.paused || myAudio.ended) {
myAudio.play();
btnPlayPause.innerHTML = "<span aria-hidden=\"true\" data-icon=\"\"></span><span class=\"screen-reader-text\">Play</span>";
}
else {
myAudio.pause();
btnPlayPause.innerHTML = "<span aria-hidden=\"true\" data-icon=\"\"></span><span class=\"screen-reader-text\">Pause</span>";
}
});
btnMute.addEventListener("click", function() {
if (myAudio.muted) {
myAudio.muted = false;
btnMute.innerHTML = "<span aria-hidden=\"true\" data-icon=\"\"></span><span class=\"screen-reader-text\">Mute</span>";
}
else {
myAudio.muted = true;
btnMute.innerHTML = "<span aria-hidden=\"true\" data-icon=\"\"></span><span class=\"screen-reader-text\">Unmute</span>";
}
});
});
这适用于单个轨道。但是,如果我在同一页面上有多个曲目,这就会成为一个问题。
我猜我需要对定义 myAudio 变量的语法进行一些修改:
var myAudio = document.getElementById("myAudio");
但是,我不确定如何更改它,以便同一个脚本可以控制多个音轨。
如果可能的话,我还希望能够确保如果用户单击不同曲目上的播放按钮,当前正在播放的曲目“停止”或“暂停”并且新曲目开始(所以 2 首曲目不是互相叠加)。