要实现的功能
一个和上传图片极其相似的功能,只不过换成了上传视频,选择完文件后也要有预览图。
问题
本来以为没什么问题的,因为网上有许多关于视频预览图的文章,核心就是使用canvas
的drawImage
功能来绘制视频,这样默认就是绘制第一帧。
但我总是绘制失败,经过不断的测试,我发现视频根本就绘制不到canvas
上,官方文档说可以绘制。后来我换了浏览器,发现360浏览器和QQ浏览器都可以,我又试了一下手机,发现安卓微信浏览器失败,这样我就不知道怎么解决了,js怕是没什么能改的了,网上也没搜到有人出现这个问题。
总结
最后,由于谷歌浏览器不行,我们放弃了给视频预览图,决定使用通用的占位图代替。
补充
经过又一番的折腾,我发现问题可能是绘制的时候视频并没有播放,因为drawImage
绘制的是第一帧,如果还没播放,那怎么会有第一帧呢?反正我感觉是这个原因。因为我把绘制放在了视频播放后进行(即监听play
事件),这下就一点问题都没有了。
如果想要解决这个问题,可能需要在页面中添加一个隐藏的video
标签,并且想办法让视频自动播放后再绘制预览图。具体实现等我有空后再折腾一下。