APlayer icon indicating copy to clipboard operation
APlayer copied to clipboard

修改专辑封面会引起IllegalArgumentException

Open cyanlink opened this issue 5 years ago • 5 comments

我们在APlayer使用的https://github.com/jdamcd/android-crop 这个crop库已经deprecated,它会错误地把我们想要的剪裁输出文件的MIME type标记成octet-stream,而Mediastore的albumart不吃这个MIME type,它只接受image/*类型,于是会弹出toast“保存失败:IllegalArgumentException........”。 这可能需要我们修改全部底层依赖,或者我们可以修改这个老旧的Corp库,期待您的意见。

cyanlink avatar Oct 18 '20 17:10 cyanlink

吐槽:我们的上游问题实在太多了。。。jaudiotagger居然不支持acc后缀的文件??直接报exception??而且这还是个2020年仍然活跃的项目啊!

cyanlink avatar Oct 18 '20 17:10 cyanlink

今天看了一下Crop库的实现,里面用的是JPEG压缩,它拿我们外面给他的URI直接当输出目标,没管有没有后缀名,我们外面应该加上一个后缀名.jpg。

cyanlink avatar Oct 19 '20 05:10 cyanlink

目前的修改是直接在每处都加上“.jpg”,有没有什么更好的实现?

cyanlink avatar Oct 19 '20 08:10 cyanlink

我先验证下这样有没有什么问题,没有问题的话先这样处理。或者换一个兼容性更好的库。

rRemix avatar Oct 19 '20 08:10 rRemix

@rRemix 这个问题其实也不是库的问题,而是说我们外面传给他一个Destination是不带jpg后缀的,那么我们外面再处理ActivityResult时,intent bundle里一样得到的也是不带jpg。而这个不带jpg后缀的文件路径一insert,完了,被他认为是octet-stream类型的二进制内容了。根本问题还是没后缀。

cyanlink avatar Oct 19 '20 09:10 cyanlink