我有一个包含音频文件的数组,可以一一播放。
我使用的是JavaScript播放器,它将播放音频并在完成后提供回调。
for (i = 0; i < audioFiles.length; i++) {
PlayAudio(audioFiles[i], function(){
alert('complete file #' + i);
});
}
但是现在我的问题是,如何一步一步地做到这一点。上面的代码片段将启动几个音频文件并并行播放。什么是等待触发回调的最佳解决方案?
最佳答案
有很多解决方案。等待直到回调触发似乎是一个很好的解决方案。
function playAudioFile(index) {
PlaidAudio(audioFiles[index], function () {
var next = index + 1;
if (next < audioFiles.length) {
playAudioFile(index+1);
}
});
}
function playAudioFiles() {
playAudioFile(0);
}
边注:
如果您正在寻找一种更通用的串行运行任务的方法,则应查看Promise here,here或here(尽管最后一篇文章仅适用于AngularJS)。