Я использую модуль 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?
Заранее спасибо