javascript - 检测 HLS 音频播放事件

标签 javascript jquery nginx http-live-streaming

我正在使用 nginx 和 nginx rtmp 模块为移动设备创建音频流。对于视频,我使用 ffmpeg 将视频切片为 jpeg 图像,这样我就可以向移动用户显示视频流。音频分离导致音频延迟 15-30 秒。我假设发生这种情况是因为 jpeg 视频在音频缓冲区之前开始。所以我尝试的是捕获 <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 同步?

提前致谢

最佳答案

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

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

关于 oncanplaythrough 的更多信息 here .

关于javascript - 检测 HLS 音频播放事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35840786/

相关文章:

javascript - Angular 双向数据绑定(bind)和监视父组件的变化

javascript - 提升没有声明为 'var' 的 JS 变量

javascript - 将文本添加到饼图高位图的中心

ssl - Nginx 错误 https 。 curl : (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number

javascript - Redux saga 执行多个 HTTP 请求

javascript - 如何等到所有页面加载后才获取这些页面的元素?

javascript - 我可以使用 jQuery/JavaScript 访问::before 元素吗?

javascript - 如何删除jquery中悬停生成的工具提示

r - 几天后应用程序无法在 Shiny 的网络服务器上启动

nginx - 使用 ngx_http_grpc_module 进行负载平衡时,NGINX 向后端打开多少个连接和流