video自定义控件在pc端表现正常但是在某些系统版本较低的平板上会出现上述现象,视频加载完成但是无法播放。比如ipad的系统在15以下,升级系统版本至最新我这里当前是16也可以解决视频不播放的问题
这里是监听video的canplay事件然后将loading取消,但是这里loading一直不消失是因为在视频加载完成后不会主动触发canplay事件,需要在手动触发播放后才会触发canplay事件。但是loading不消失用户就无法点击播放导致页面就一直这个状态
在视频/音频(audio/video)加载过程中,事件的触发顺序如下:
onloadstart:在浏览器开始寻找指定视频/音频(audio/video)触发
ondurationchange:在视频/音频(audio/video)的时长发生变化时触发。
**注意:** 当视频/音频(audio/video)已经加载后,视频/音频(audio/video)的时长从 "NaN" 修改为当前的时长。
onloadedmetadata:在指定视频/音频(audio/video)的元数据加载后触发。
视频/音频(audio/video)的元数据包含: 时长,尺寸大小(视频),文本轨道。
onloadeddata:在当前帧的数据加载完成且还没有足够的数据播放视频/音频(audio/video)的下一帧时触发。
onprogress:在浏览器下载指定的视频/音频(audio/video)时触发。
oncanplay:在用户可以开始播放视频/音频(audio/video)时触发。
oncanplaythrough:在视频/音频(audio/video)可以正常播放且无需停顿和缓冲时触发。
解决办法:在canplay之前的某个事件中添加取消loading的逻辑即可。
附加iOS中Safari调试方法: 1、设置 -> safari -> 高级 -> 网页检查器
2、用数据线连接设备到电脑上
3、电脑上也打开Safari -> 开发 -> 选择自己对应的那个移动设备的名称 -> 选中需要调试的页面
就可以愉快的调试啦