首页 > 解决方案 > 有没有办法在播放后暂停音频?

问题描述

我试图让一个元素在使用音频对象方法单击时播放/暂停声音: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(); */
    }

标签: javascript

解决方案


我认为你的条件语句有问题。为什么不尝试使用

...
var audio = new Audio('./sounds/kick-bass.mp3');
if(!audio.paused) {
    audio.pause();
} else {
    audio.play();
}

推荐阅读