播放声音文件数组
问题描述:
我试图将一个变量传递给JavaScript函数并使用HTML5 <audio>
元素播放它。播放声音文件数组
如果我传递一个字符串参数到函数中,这只是一个文件,我玩它。但是如果我传递一个数组,我想按照歌曲播放整个数组。
这里是我的基本思想是:
function playSound(sound) {
var audio = document.getElementById('sound');
if(sound instanceof Array) {
// Play the whole array
}
else {
// Play only one file
audio.src = sound;
audio.play();
}
}
你能帮助我吗?
答
您可以继续拨打一个循环playSound
和呼叫绑定到onended
:
if (sound instanceof Array) {
audio.src = sound.shift();
audio.play;
if (sound.length) {
audio.addEventListener('ended', function() {
playSound(sound);
});
}
}
这完美的作品。但是如果其中一个声音文件丢失并且无法播放,则在下一次传入单个文件(我的示例中的其他文件)后播放。是否有可能解决这个问题? – Gaui 2013-03-28 01:34:42
如果缺少它,它会怎么玩? – 2013-03-28 01:35:27
呵呵,对不起。让我更好地解释一下。 '动作1:'传递文件数组['missing.mp3','second.mp3'],它不会播放任何内容,因为'结束'事件永远不会到达。然后在'Action 2:'只传递一个文件(single.mp3),然后它播放single.mp3 AND second.mp3 – Gaui 2013-03-28 01:40:02