Как я могу воспроизвести аудиофайл в javascript, который был сращен в два байтовых массива и загружен отдельно от сервера в разное время? Я хочу загрузить первую половину mp3-файла, затем, во время воспроизведения mp3, загрузите вторую половину и без проблем продолжайте воспроизведение всего файла.Как воспроизводится частичный аудиофайл?
0
A
ответ
0
Пока играет первая часть, создайте еще один звуковой тег, чтобы предварительно загрузить вторую половину, но не играйте в нее.
<audio src="the second half.mp3” preload="auto"></audio>
Когда первый звуковой сигнал инициирует событие, измените его URL на вторую половину.
Браузер получит файл из кеша и начнет воспроизводить его немедленно.
Извините за моего бедного английского, надеясь, что это поможет.
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();
}
});
});