首页 > 解决方案 > 当 HTML 中有音频 div 时停止音频播放()

问题描述

我有一个<div onclick="startSound">HTML。单击时,它会触发声音。如何让它停止第一个声音并在再次单击时播放另一个声音?我发现的大多数解决方案都使用<audio>HTML 标签,但既然没有,怎么办?

function startSound() {
         var musicPlay=new Audio('sound.mp3');
         musicPlay.play();     
}

标签: javascript

解决方案


您应该有一个音频元素,每次单击某个元素时,不要创建新Audio组件,而是更改src现有音频组件的属性。playing停止处于状态的现有音频sound.pause();sound.currentTime = 0;会有所帮助。

let myAudio = document.getElementById('myAudio');

function startSound() {
  myAudio.pause();
  myAudio.currentTime = 0;
  myAudio.src = 'sound.mp3';
}
<audio controls id="myAudio">
  <source src="anotherSound.mp3" type="audio/mpeg">
</audio>


推荐阅读