VideoJS 网页直播实现默认静音
在开发 EasyDSS 流媒体服务器 网页直播多分屏的时候, 产品提出议建说, 能不能在多分屏的时候, 默认静音状态. 因为多分屏界面, 如果声音打开, 好多个直播画面同时发出声音太过嘈杂, 体验不好. 我表示赞同. 心想, 这个应该不难处理吧, 结果踩到一个 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 属性就生效了.
没有去测试官方版本是不是也存在这个问题, 不过, 我去看了一下官方版本的 src/VideoJS.as
也遗漏了这个回调, 推测也是存在的.
EasyDSS 流媒体服务器 网页直播多分屏效果图: