选择2个音频文件,然后按顺序播放,怎么办?

时间:2013-07-06 01:11:04

标签: jquery deferred

我在选择两个音频文件后,如何选择a.ogg,选择b.ogg,播放a.ogg然后b.ogg,我就会遇到一个问题。一次选择并播放一个文件,如选择a.ogg,播放,选择b.ogg,播放,由此代码处理(在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中的回调函数可以用来播放第​​二个音频文件吗?请原谅我的无知,我的学习曲线陡峭。

1 个答案:

答案 0 :(得分:0)

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