webrtc的优势在于超低延时的直播,在网页直播方面有很高的可用性和发展性。TSINGSEE青犀视频基于webrtc编译的网页播放项目webrtc-client已经完成且后续也在不断优化中。
在通过webrtc进行网页播放时,第一次连接正常,可以出现画面和声音;但是服务器关闭,前端重连出现video标签时间进度在跑,但是没有画面的情况。
此处我们是先使用webrtc拿到数据流,再用网页的video标签播放。第一次初始化可以播放,说明服务端通过webrtc反馈的数据流没有问题,因此我们判定是js代码取到的数据流有问题,出现了渲染黑屏,而时间线在跑,不播放视频。
解决问题只能分析js代码,因此复现一下数据是怎么操作的,重连进行渲染为什么导致视频出现黑屏现象:
1、函数初始化一个媒体流
2、向媒体流添加数据流,使video标签播放出来
那么进行重连之后其实是没有进行初始化MediaStream或者没有把之前向里添加的数据流给删除,导致出现多个数据流,因此Video标签渲染失败,出现黑屏现象。
代码修改(把参数初始化即可):