Archives for : 八月2022

第581天:wx.chooseMedia 之坑

以前在 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,这是画蛇添足,这两个压缩接口的应用场景应该不是在“选择上传文件”这个场景

另外,有些视频确实需要选择原图才能上传成功,否则会上传失败。应该是这里没处理好,文档就偷了下懒,直接说仅对 image 有效。

较友好的交互可能是这样:如果上传压缩视频失败,可以提醒用户,请尝试选择原图上传。