检测HLS音频播放事件

时间:2016-03-07 10:03:20

标签: javascript jquery nginx hls

我正在使用nginx和nginx rtmp模块为移动设备创建音频流。对于视频,我使用ffmpeg将视频切片为jpeg图像,这样我就可以向移动用户显示视频流。音频分开,导致音频延迟15-30秒。我认为这是因为jpegs视频在音频缓冲区之前启动。所以我尝试捕捉<audio>事件“canplay”,当此事件触发时,然后开始视频预览。

音频来源示例:http://example.com:8081/hls/audio.m3u8

检测代码:

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

但是这个事件永远不会发生。只有触发的事件才是“loadstart”和“progress”。如何检测音频是否已缓冲,以便我可以将其与jpeg同步?

提前致谢

1 个答案:

答案 0 :(得分:0)

我相信您可以使用oncanplaythrough事件。

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

有关oncanplaythrough here的更多信息。