以前在 wx.chooseMedia 返回 success 后,我会再用 wx.compressImage 去压缩一下图片。
最近在处理视频时,依样画葫芦,返回 success 后用 wx.compressVideo 去压缩视频,但是压缩出来的质量很差。
chooseMedia 有一个 sizeType 参数,可选值为 ['original', 'compressed'],文档上写:
仅对 mediaType 为 image 时有效,是否压缩所选文件
然后就被坑到了,经过实测,这个参数对视频也同样有效,压缩视频可以直接把 sizeType 参数值设置为 compressed,而不需要再去调一次 wx.compressVideo。
而且在上传视频时,如果选择了“原图”上传,再调用 wx.compressVideo 是无效的,它不会对视频进行压缩。
总结:
如果需要在上传图片或视频时对文件进行压缩,可以直接设置 sizeType 为 compressed,而不需要再去调用 wx.compressImage 和 wx.compressVideo,这是画蛇添足,这两个压缩接口的应用场景应该不是在“选择上传文件”这个场景。
2022-9-3 补充:
今天又发现一个问题,使用 mix 模式时,有些视频会选择失败,需要勾选原图才能选择成功。
所以,mediaType 避免使用 mix。