我不知道为什么,但是我不知道为什么这不起作用。我已经坐了几个小时尝试不同的方法,阅读和观看有关该主题的视频,但是我仍然无法弄清楚。

问:为何每次单击元素时,都会开始播放“新的”音频文件,而与上一个重叠呢?我的if陈述是否应该解决这个问题?

document.getElementById("chatWrapper").addEventListener("click", playSound);

function playSound() {
    //alert("Success!");
    var sEE0 = new Audio('../sound/00-menu-music.mp3');
        sEE0.volume = 0.2;
    if (sEE0.duration > 0) {

        return;
    } else {
        sEE0.play();
    }
}

我该如何解决?
提前致谢!

最佳答案

您似乎每次单击都在创建一个新的音频元素。

尝试只初始化一次:(attn,quick'n'dirty!)

document.getElementById("chatWrapper").addEventListener("click", playSound);
var sEE0 = new Audio('../sound/00-menu-music.mp3');
function playSound() {
    //alert("Success!");
    sEE0.volume = 0.2;
    if (sEE0.duration > 0) {
        return;
    } else {
        sEE0.play();
    }
}

关于javascript - 如果一个新的音频文件已经在播放,为什么要开始播放? (JS),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30743666/

10-11 07:47