Javascript 允许一次播放一个音频播放器

Javascript 允许一次播放一个音频播放器,javascript,html,css,Javascript,Html,Css,我有多个音频播放器,每个都有一个播放和停止按钮,在一个页面上。我唯一的问题是,当你点击一个播放按钮,然后再点击另一个按钮时,它们会一个接一个地播放。有人能帮我的代码,我需要停止任何歌曲播放时,另一个播放按钮被点击。这是我的密码。多谢各位 功能禁用按钮(btn){ document.getElementById(btn.id).disabled=true; } 函数更改(){ var image=document.getElementById('image'); image.src=”https

我有多个音频播放器,每个都有一个播放和停止按钮,在一个页面上。我唯一的问题是,当你点击一个播放按钮,然后再点击另一个按钮时,它们会一个接一个地播放。有人能帮我的代码,我需要停止任何歌曲播放时,另一个播放按钮被点击。这是我的密码。多谢各位

功能禁用按钮(btn){
document.getElementById(btn.id).disabled=true;
}
函数更改(){
var image=document.getElementById('image');
image.src=”https://lms.testing.com/je_audio/html/button2.png"
}
#btn1{
边界:无;
填充:0;
背景:无;
}

您的浏览器不支持音频元素。

在所有
元素上收听
播放
事件。
每当一个音频元素开始播放时,暂停所有其他音频元素

// Get all <audio> elements.
const audios = document.querySelectorAll('audio');

// Pause all <audio> elements except for the one that started playing.
function pauseOtherAudios({ target }) {
  for (const audio of audios) {
    if (audio !== target) {
      audio.pause();
    }
  }
}

// Listen for the 'play' event on all the <audio> elements.
for (const audio of audios) {
  audio.addEventListener('play', pauseOtherAudios);
}
//获取所有元素。
const audios=document.queryselectoral('audio');
//暂停除开始播放的元素外的所有元素。
函数pauseOtherAudios({target}){
用于(音频的常量音频){
如果(音频!==目标){
audio.pause();
}
}
}
//聆听所有元素的“播放”事件。
用于(音频的常量音频){
audio.addEventListener(“播放”,暂停其他音频);
}

您要做的是让所有元素首先停止以前运行音频的音频,然后将其图像更改回播放,并尝试播放您正在使用的当前媒体按钮的音频。使用类来检测使用

document.querySelectorAll('.playerButton'))

这将帮助您找到所有播放机按钮,并为您正在使用的音频提供类似AudioFile的类,并使用stop()函数停止音频,然后使用此函数为单击的当前按钮启动音频。 我希望这将有助于您执行您试图实现的功能。 您可以使用下面给定的函数作为如何停止音频的示例

 function stopAudio(audio) {
    audio.pause();
    audio.currentTime = 0;
 } 

 stopAudio(audio)

抓取所有音频元素,迭代它们,调用stop():
document.querySelectorAll('audio').forEach(el=>el.stop())
(不要使用内联代码,编写一个click处理函数并分配它)