JavaScript执行一个音频文件队列
JavaScript execute a queue of audio file
我想在数组sNumbers
定义的序列中播放一些音频文件。我的想法是在先前结束时执行音频文件,为此我使用ended
事件,如果我不这样做,所有音频将同时执行。
下面的代码运行良好,因为数组不重复任何数字,但是,如果我重复任何数字,执行将进入一个无限循环。
有人有解决方案吗?
<audio src="http://189.109.43.206/images/0.wav" id="wav0"></audio>
<audio src="http://189.109.43.206/images/1.wav" id="wav1"></audio>
<audio src="http://189.109.43.206/images/2.wav" id="wav2"></audio>
<audio src="http://189.109.43.206/images/3.wav" id="wav3"></audio>
<audio src="http://189.109.43.206/images/4.wav" id="wav4"></audio>
<audio src="http://189.109.43.206/images/5.wav" id="wav5"></audio>
<audio src="http://189.109.43.206/images/6.wav" id="wav6"></audio>
<audio src="http://189.109.43.206/images/7.wav" id="wav7"></audio>
<audio src="http://189.109.43.206/images/8.wav" id="wav8"></audio>
<audio src="http://189.109.43.206/images/9.wav" id="wav9"></audio>
<script type="text/javascript">
onload=function (){
var sNumbers = ['1', '0', '4'];
sNumbers.map(function(e, i){
if ( i <= sNumbers.length-2 ) {
document.querySelector("#wav"+sNumbers[i]).addEventListener("ended", function() {
document.querySelector("#wav"+sNumbers[i+1]).play();
}, false);
}
});
document.querySelector("#wav"+sNumbers[0]).play();
}
</script>
我通过使用JQuery克隆音频对象来解决这个问题。
<script type="text/javascript">
onload=function (){
let sNumbers = ['N', 'S'].concat(window.location.search.replace("?", "").split(''));
let audios = [];
sNumbers.map(function(e, i){
audios.push( $("#mp3"+sNumbers[i]).clone() );
});
audios.map(function(e,i){
console.log(e);
audios[i].on("ended", function() {
audios[i+1].get(0).play();
});
});
audios[0].get(0).play();
}
</script>
</head>
<body>
</body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
相关文章:
- 需要一个与HTML5<音频>.哪些没有't创建或销毁视图
- 播放音频时创建一个跳动的圆圈
- 想制作一个基于URL的音频播放器,但Javascript不起作用
- 创建一个只有播放和暂停的Javascript音频播放列表
- 为一个声音元素数组创建一个音频对象jquery,javascript
- 在for循环中另一个音频结束后播放一段时间的音频
- 如何用一个html5音频播放器播放多个音频文件
- 播放连续的声音,用HTML5和javascript构建一个音频句子
- 在下一个音频标签启动时停止音频标签
- 将按顺序播放的声音保存为一个音频文件
- 在网页上仅启用一个音频流
- 如何在Gear s2中使用挡板播放下一个/上一个音频文件
- 创建HTML下拉列表的音乐,可以在一个音频播放器内播放
- 当另一个音频文件被点击时使用jQuery停止音频,同时模糊链接
- 如何阻止一个音频播放器播放时,我点击另一个- javascript
- HTML5 -如何在另一个音频标签开始播放时停止音频
- 是否有一个音频web_accessible_resource Chrome扩展
- 使用ngCordova media / onic / firebase创建一个音频播放列表
- JavaScript执行一个音频文件队列
- Dropzone.js将文件限制为一个音频和一个图像缩略图文件