我有很多小型音频文件,我想一个接一个地播放这些文件,而不是同时播放所有这些文件。我已经在javascript中使用了对象Audio,就像这样
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
,我认为它是一个函数,但不是,有人可以帮助我,并为我提供解决此问题的最佳方法。 最佳答案
使用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();
};
};