如果你使用FFmpegKit的时候遇到了这个问题:
java.lang.Error: FFmpegKit failed to start on brand: Xiaomi, model: MI 8, device: dipper, api level: 29, abis: arm64-v8a armeabi-v7a armeabi, 32bit abis: armeabi-v7a armeabi, 64bit abis: arm64-v8a.at com.arthenica.ffmpegkit.NativeLoader.loadLibrary(NativeLoader.java:47)at com.arthenica.ffmpegkit.NativeLoader.loadFFmpegKit(NativeLoader.java:183)at com.arthenica.ffmpegkit.FFmpegKitConfig.<clinit>(FFmpegKitConfig.java:101)at com.arthenica.ffmpegkit.FFmpegKitConfig.parseArguments(FFmpegKitConfig.java:1117)at com.arthenica.ffmpegkit.FFmpegKit.execute(FFmpegKit.java:151)
那么问题原因大概率是:FFmpegKit中的so跟你项目中的重复了,导致加载的时候不是使用的FFmpegKit中的so.
解决方法:
将FFmpegKit中的so复制到项目中的jnilibs目录下。你可不复制全部,可以根据报错复制对应的,一般报错的信息中可以看出需要哪个so
FFmpegKit中的so怎么找到?
当你的项目编译完成的时候,你可以去gradle的缓存目录下去找
open /Users/xxx/.gradle/caches/transforms-3/5704ef9083cbfdcf111cea44a9527f5d/transformed/ffmpeg-kit-full-6.0-2
问题:
当你把FFmpegKit中的so拷贝到项目中,那么之前用到相关so的库可能就用不了了,你可以编译FFmpegKit源码,将所需的库放入FFmpegKit源码中,重命名这些库