0

我在解决如何让两个音频文件按顺序播放时遇到问题,在它们都被选中后,比如选择 a.ogg,选择 b.ogg,播放 a.ogg 然后 b.ogg。一次选择和播放一个文件,如 select a.ogg、play、select b.ogg、play,由以下代码处理(在 stackoverflow 的其他地方提到):

 var audioIsPlaying = false;
 jQuery("div#word_set").click(function (evnt) {
   if(audioIsPlaying !== true) {
     var elementId = evnt.target.id;
     var pathVar = document.getElementById("pathVar").innerHTML;
     var oggVar = pathVar+elementId+".ogg";
     var audioElement = document.createElement("audio");
     audioElement.setAttribute("src", oggVar);    
     audioElement.play();
     audioIsPlaying = true;
     audioElement.addEventListener("ended", function() {
       audioIsPlaying = false;    
     });
    };
  });

我查看了 jquery 延迟对象及其方法、完成、解析等,但我不确定如何更改上面的代码(如果这是要走的路)来做我想做的事。addEventListener 中的回调函数可以用来播放第​​二个音频文件吗?请原谅我的无知,我正处于一个陡峭的学习曲线上。

4

1 回答 1

0

在您提供的此代码段中,您所做的是单击按钮创建一个<audio>元素并将音频文件的源添加到其中,但您永远不会设置要播放的第二个音频文件。此外,<audio>应该在播放之前加载源代码,方法是在audioElement.load();之前添加一行audioElement.play()。您将不得不创建另一个函数来设置<audio>您刚刚创建的元素以获取第二个音频文件的源并加载并播放它,这应该在您为第一个音频播放完成时创建的 eventListener 函数中进行。如果您将整个代码发布在 jsfiddle 中并提供这两个文件,如果您有任何问题,我可能会为您提供帮助。

于 2013-07-06T02:41:48.420 回答