需求场景
视频切换打点功能,通过createVideoContext实例seek方法切换下一个打点的起始位置继续播放视频
问题描述
视频播放时会请求下一段缓存的视频片段,有时候视频片段请求超时后就造成了视频黑屏卡死,导致整个video组件挂掉,但是通过各种尝试发现手动拖拽快进的时候会避免卡死问题
解决办法
监听异常
记录随机时间戳
记录当前播放时间
开始播放时通过变量记录随机时间戳拼接到video组件src后当做参数,记录当前播放时间异常抛出后替换新的时间戳,通过setData方法强制更新渲染层video组件src,使而变成新的src地址(亲测如果改变src video会重新播放),然后用实时记录的当前播放时间seek到上次异常时间位置(异常抛出后记得添加loading效果,交互更好一些)
异常抛出时间可能较长时间等待较长,所以在onTimeUpdate会写入一个方法去开启定时器做一个超时处理,正在播放或者暂停的时候清掉定时器,如果方法执行了并没有清除定时器,那么这时候应该是异常导致视频播放不了,倒计时之后自动进入异常后的处理