我正在尝试使用音频对象方法 audio.play()
和 audio.pause()
在点击元素时播放/暂停声音,但我收到此错误:
“未捕获(承诺)DOMException:play() 请求被调用 pause() 中断。”
是否有一种简单的方法可以在没有任何库的情况下解决此问题?
document.querySelector(".head-container").addEventListener("click", function () {
var audio = new Audio('./sounds/kick-bass.mp3');
audio.play();
if (!audio.paused) {
audio.pause();
}
});
更新,解决方案是从事件侦听器中创建音频对象,我不好。对于任何感兴趣的人,如果您想重新启动声音,您可以使用 audio.load() 而不是 audio.paused()。
var audio = new Audio('./sounds/sound.mp3');
document.querySelector(".head-container").addEventListener("click", function () {
if (audio.paused) {
audio.play();
}
else {
audio.pause()
/*audio.load(); */
}
答案 0 :(得分:0)
我认为您的条件语句有问题。 为什么不尝试使用
...
var audio = new Audio('./sounds/kick-bass.mp3');
if(!audio.paused) {
audio.pause();
} else {
audio.play();
}