video 标签在移动端的适配,折腾了几天。主要问题是移动端的video并没有像pc端上在dom加载完会加载视频内容,导致了移动端的视频播放延迟以及video的黑屏问题。解决办法一开始尝试了网络说的canvas取视频第一帧作为poster,其实并没有用,canvas取到的video的并不是第一帧,而是个黑色的背景。后来尝试了server端通过ffmpeg截取视频的第一帧作为poster,一开始感觉完美解决了,后来突然某天点击播放会闪个黑屏,还是手机端没有预加载视频内容(真机调试过iphone上的Safari,dom加载完貌似去取了视频meta数据,没有去看有没有取第一帧)。最后通过在video上放了server端给的第一帧图片,js监听video的播放进度,真正播放时再显示video标签,还算完美解决了。后来看了抖音的网页版,貌似也是这么做的。
期间听一个前端同事说,手机端touchstart和click事件会有300ms的延迟(手机浏览器用来判断是否是双击事件的),其实并没有,touchstart、touchend、click经历的时间不到100ms。