在javascript中播放音频文件

时间:2014-08-16 22:21:41

标签: javascript jquery jquery-mobile audio callback

我有很多小的音频文件,我想一个接一个地播放这些文件,而不是同时播放这些文件。我在这样的javascript中使用了音频对象

var audio_1 = new Audio();
var audio_2 = new Audio();
var audio_3 = new Audio();

audio_1.src = "/path1";
audio_2.src = "/path2";
audio_3.src = "/path3";

现在我只需要为每个对象调用函数play,但我需要单独播放audio_1,并在第一个结束时播放audio_2

我找到的解决方案是测试每个对象的属性ended

 audio_1.ended; // returns true when it ends playing

我在音频对象中找到了一个对象onended,我认为它是一个函数但不是,有人可以帮助我并给我最好的方法来解决这个问题。

1 个答案:

答案 0 :(得分:2)

使用addEventListener而不是为onended属性分配函数:

audio.addEventListener('ended', function() {}); // Do
audio.onended = function() {}; // Don't

所以,恕我直言的肮脏方式是:

audio_1.play();
audio_1.addEventListener('ended', function() {
    audio_2.play();
    audio_2.addEventListener('ended', function() {
        audio_3.play();
    };
};