0

我已经问过一个与此非常相似的问题,但我无法让建议的代码工作。jQuery是:

  jQuery("span").click(function (event) {
    var elementID = event.target.id;
    var oggVar = ("audio/"+elementID +".ogg");
    var audioElement = document.createElement("audio");
    audioElement.setAttribute("src", oggVar); 
    audioElement.play(); 
  });

这可以正常工作,问题是即使正在播放另一个音频文件也可以正常工作。我想防止这种情况发生,以便在播放另一个音频文件时不会运行音频文件。很抱歉不得不重新审视这个。

4

1 回答 1

1

之前已经回答过这个问题,但让我试一试。您将要检查是否正在播放任何音频剪辑。我不认为有一种内置的 isPlaying 逻辑,但我知道您可以使用事件侦听器。

var audioIsPlaying = false;

jQuery("span").click(function (event) {
    if(audioIsPlaying != true) {
        var elementID = event.target.id;
        var oggVar = ("audio/"+elementID +".ogg");
        var audioElement = document.createElement("audio");
        audioElement.setAttribute("src", oggVar); 
        audioElement.play();
        audioIsPlaying = true;
        audioElement.addEventListener("ended", function() {
            audioIsPlaying = false;    
        });
    } else {
        //still playing
    }
});
于 2013-04-16T21:01:52.697 回答