javascript – 检测HLS音频播放事件

我正在使用NginxNginx 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同步?

提前致谢

解决方法

我相信你可以使用oncanplaythrough事件.

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

有关oncanplaythrough here的更多信息.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...