2016-03-07 3 views
4

Я использую модуль nginx и nginx rtmp для создания аудиопотока для мобильных устройств. Для видео я использую ffmpeg для отображения видео в jpeg-изображениях, и таким образом я показываю видеопоток мобильным пользователям. Аудио идет отдельно, что вызывает латентность звука 15-30 секунд. Я предполагаю, что это происходит потому, что видео jpegs начинается до аудио буферов. Так что я попытался поймать <audio> событие «canplay», и когда это событие срабатывает, затем запустите предварительный просмотр видео.Обнаружение события Canplay HLS

Аудио пример Источник: http://example.com:8081/hls/audio.m3u8

Код для обнаружения:

var audio = document.getElementById('preview-audio'); 
audio.oncanplay=function(){ console.log('audio loaded'); }; 

, но это событие не срабатывает. Только события, которые срабатывают, - это «loadstart» и «progress». Как я могу обнаружить, что звук буферизирован, чтобы я мог синхронизировать его с jpeg?

Заранее спасибо

ответ

0

Я считаю, что вы можете использовать oncanplaythrough событие.

var audio = document.getElementById("preview-audio"); 
audio.oncanplaythrough = function() { 
    console.log("Audio can be played."); 
}; 

Более подробная информация о oncanplaythroughhere.

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