使用时,.play()之后是否可以使用jquery回调?
伙计们,我怎么播放一个mp3文件,然后在第一个完成后播放另一个?
我试过以下没有成功..
$('#file1)[0].play( function () { $('#file2)[0].play(); });
播放音频时可以使用回调吗?
你不是一开始就调用jQuery方法。
您可以将事件处理程序附加到"onended"
事件:
var file = $("#file1"); file.on( "ended", function(){ $("#file2")[0].play(); }); file[0].play();
根据W3Schools ,您可以使用onended
事件来检测HTML5音频是否已完成播放。
在jQuery中:
$("#player").bind('ended', function(){ // done playing alert("Player stopped"); });
有关演示,请参阅: http : //jsfiddle.net/9PCEf/2/
完成音频播放后,您可以完成剩下的工作。
你需要听一下这个被onended
事件。
我用@ blasteralfred的代码创建了一个函数来使用jQuery播放一系列不确定的声音文件:
function playSounds(soundFileIds) { if (soundFileIds instanceof Array) { var soundFileId = soundFileIds.shift(); playSound(soundFileId); $(soundFileId).bind('ended', function() { playSounds(soundFileIds); }); } else { playSound(soundFileIds); } }
对数组的条件测试允许我将其反向移植到我只用字符串调用此函数的现有代码。 谢谢!