此问题在此处已有答案:
Java script -All audio plays at once when attempting to play audio one by one in a sequence (through a for loop)(3个答案)
5年前关闭。
我是一个Javascript的初学者。我正在尝试做一个小项目,可以连续播放数组音频文件。下面的代码是在安阳API内部。我的想法是在说一些特定的话后等待10秒,播放数组中的第一个元素,然后等待10秒,播放数组中的第二个元素,依此类推。因此,我使用了for循环,但我不知道为什么,它总是播放“oh_interesting_why”,这是第三个元素。
var playList = ["tell_me_more", "why", "oh_interesting_why"];
var dir = "sound/";
var extention = ".wav";
var i;
var agent = navigator.userAgent.toLowerCase();
if (agent.indexOf('firefox') != -1 || agent.indexOf('opera') != -1) {
extention = ".wav";
}
//audio = new Audio();
for (i = 0; i < playList.length; i++) {
audio = new Audio();
//audio = dir + playList[i] + extention;
audio.src = dir + playList[i] + extention;
audio.load();
setTimeout(function() {
audio.play();
}, 10000);
}
audio.loop = false;
我已经纠结了2天了。不知道为什么。我可以使用jQuery,Javascript,或者HTML5。请帮助我!!提前谢谢你。
1条答案
按热度按时间xnifntxz1#
我用onended函数解决了这个问题。下面的链接是解决方案。
https://stackoverflow.com/a/27364285/8105243