VideoJS 网页直播实现默认静音

414 阅读2分钟

在开发 LiveQing高性能流媒体服务器 网页直播多分屏的时候, 产品提出议建说, 能不能在多分屏的时候, 默认静音状态. 因为多分屏界面, 如果声音打开, 好多个直播画面同时发出声音太过嘈杂, 体验不好. 我表示赞同. 心想, 这个应该不难处理吧, 结果踩到一个 video-js-swf 的坑, 在这里做下记录.

我原本以为, 只要在原生 video 标签中加入 muted 属性, VideoJS 就能够自动解析, 对视频流静音处理. 然而在测试的过程中发现只有在 html5 模式下有效, flash 模式对这个 muted 属性免疫. 于是去研究 video-js-swf 的源码.

我之前写过一篇博客提到 video-js-swf 官方的版本存在 RTMP左上角的问题, 为了解决这个问题, 改用了这个 digitalStyx/video-js-swf 版本, 我把它 Fork 到 EasyDarwin/video-js-swf, 在 src/VideoJS.as 这个入口文件中, 找到问题所在. 应该是 video-js-swf 遗漏了 vjs_muted 这个外部指令的回调, 于是给它补上, 重新编译swf, flash 模式下, muted 属性就生效了.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1NdJcQSE-1573101055325)(oytlksufs.bkt.clouddn.com/videojs/par…)]

没有去测试官方版本是不是也存在这个问题, 不过, 我去看了一下官方版本的 src/VideoJS.as 也遗漏了这个回调, 推测也是存在的.

LiveQing高性能流媒体服务器 网页直播多分屏效果图:

这里写图片描述

获取更多信息

安防流媒体直播-QQ交流群:615081503

国标GB28181无插件LiveGBS-QQ交流群:947137753

WEB:www.liveqing.com

TEL: Tel:187-0985-4855 (同微信)

Copyright © LiveQing.com 2016-2019