3

伙计们,我如何播放一个 mp3 文件,然后在第一个文件完成后再播放另一个文件?

我尝试了以下但没有成功..

$('#file1)[0].play( function () {
   $('#file2)[0].play();
});

播放音频时可以使用回调吗?

4

4 回答 4

6

根据W3Schools,您可以使用该onended事件来检测 HTML5 音频是否已播放完毕。

在 jQuery 中:

$("#player").bind('ended', function(){
    // done playing
    alert("Player stopped");
});

有关演示,请参见:http: //jsfiddle.net/9PCEf/2/

您可以在音频播放完成后进行其余的操作。

于 2012-09-06T10:50:32.617 回答
1

您一开始就没有调用 jQuery 方法。

您可以将事件处理程序附加到"onended"事件:

var file = $("#file1");

file.on( "ended", function(){
    $("#file2")[0].play();
});

file[0].play();
于 2012-09-06T10:49:26.483 回答
0

您需要收听该onended事件。

于 2012-09-06T10:48:41.680 回答
0

我使用@blasteralfred 的代码创建了一个函数来使用jQuery 播放一系列不定的声音文件:

function playSounds(soundFileIds) {
  if (soundFileIds instanceof Array) {
    var soundFileId = soundFileIds.shift();
    playSound(soundFileId);
    $(soundFileId).bind('ended', function() {
      playSounds(soundFileIds);
    });
  } else {
    playSound(soundFileIds);
  }
}

数组的条件测试允许我将其反向移植到仅使用字符串调用此函数的现有代码。谢谢!

于 2013-05-04T16:26:11.827 回答