简单介绍下背景 我们业务有个功能把图片放到一个文件中,统一进行播放 ,但是遇到一个棘手问题,某一个情况下 的图片 就是打不开 就是报错。以为是编译参数 。哪些格式没有加上。但经过测试 该加的都加了。 所以 不是编译参数的问题。
Impossible to open '/data/user/0/com.xxxx/cache/image_manager_disk_cache/64bfa85b3993949d3445b1749bb9becb9b88129e597fcc036d9e810a84f9965a.0'
后来我分析了 正常播放的图片以及播放出问题的图片。发现了问题。在这里记录一下。希望遇到的战友们也可以及时解决这个坑。因为我们下载用的glide 。所以你会发现glide 缓存下来的文件都是.0 结尾的文件。 问题就在这ffmpeg 如果在文件名中 找不到文件格式。它会解析文件头获取文件格式。
有问题的文件 数据大概是这样
没问题的文件数据是这样
所以我推测 肯定是这部分图片文件 。ffmpeg 解析数据 找不到具体处理的格式 。就报错了。于是我直接把这个图片的文件名改成了,jpg 发现可以正常播放。喜大普奔!!!!!
希望遇到同样问题的同志们 。填了这个大坑 。加油。奥力给!!!!!