如何播放部分音频文件?

时间:2016-05-19 18:11:08

标签: javascript audio html5-audio

如何在javascript中播放音频文件,该文件已被拼接成两个字节数组并在不同时间与服务器分开加载?我想加载一个mp3文件的前半部分,然后,当mp3正在播放时,加载下半部分并无缝地继续播放整个文件。

2 个答案:

答案 0 :(得分:0)

第一部分正在播放时,创建另一个音频标签以预加载后半部分,但不播放。

<audio src="the second half.mp3” preload="auto"></audio>

当第一个音频触发结束事件时,将其URL更改为下半部分。

浏览器将从缓存中获取文件并立即开始播放。

抱歉我的英语不好,希望这会有所帮助。

答案 1 :(得分:0)

您可以使用canplaythroughended事件,在加载第二个音频时播放第一个音频,然后在加载后播放第二个音频。像这样:

var canPlayAudio2 = false;
var audio1Ended = false;

var audio = document.createElement('audio');
audio.src = "your_audio_source";
audio.addEventListener('canplaythrough', function() {
  //after first audio loads, start loading second audio
  var audio2 = document.createElement('audio');
  audio2.src = "your_audio2_source";
  audio2.addEventListener('canplaythrough', function() {
    canPlayAudio2 = true;
    if (audio1Ended) {
      audio2.play();
    }
  });

  //play the first audio, play second audio if availible once finished
  audio.play();
  audio.addEventListener('ended', function() {
    audio1Ended = true;
    if (canPlayAudio2) {
      audio2.play();
    }
  });

});