如何在javascript中播放音频文件,该文件已被拼接成两个字节数组并在不同时间与服务器分开加载?我想加载一个mp3文件的前半部分,然后,当mp3正在播放时,加载下半部分并无缝地继续播放整个文件。
答案 0 :(得分:0)
第一部分正在播放时,创建另一个音频标签以预加载后半部分,但不播放。
<audio src="the second half.mp3” preload="auto"></audio>
当第一个音频触发结束事件时,将其URL更改为下半部分。
浏览器将从缓存中获取文件并立即开始播放。
抱歉我的英语不好,希望这会有所帮助。
答案 1 :(得分:0)
您可以使用canplaythrough
和ended
事件,在加载第二个音频时播放第一个音频,然后在加载后播放第二个音频。像这样:
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();
}
});
});