2016-05-19 2 views
0

Как я могу воспроизвести аудиофайл в javascript, который был сращен в два байтовых массива и загружен отдельно от сервера в разное время? Я хочу загрузить первую половину mp3-файла, затем, во время воспроизведения mp3, загрузите вторую половину и без проблем продолжайте воспроизведение всего файла.Как воспроизводится частичный аудиофайл?

ответ

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(); 
 
    } 
 
    }); 
 

 
});

 Смежные вопросы

  • Нет связанных вопросов^_^