ExoPlayer播放器不支持MP2音频格式,在播放视频为MP2音频格式的视频时,在华为悦盒E6108C系列的盒子上没有声音,为解决问题添加ExoPlayer的扩展ffmpeg软解码库,历时4天终于完成
准备:参考ExoPlayer的github文档
git ExoPlayer到本地
windows安装cygwin 参考:https://blog.youkuaiyun.com/chunleixiahe/article/details/55666792
下载按android-ndk-r15c 官方说一定要15c版本
接下来的步骤参考 ExoPlayer下面的ffmpeg文档
一下是按照文档编译过程中所遇到的问题:
1.问题:$ export TMPDIR = E:/cygwin/tmp-bash: export: `=': 不是有效的标识符-bash: export: `E:/cygwin/tmp': 不是有效的标识符
解决:=号两边不要有空格
2.Unknown option "–-enable-decoder=mp3".See ./configure --help for available options.
解决: mp3后面必须是一个空格+\
3.{FFMPEG_EXT_PATH}"/jni && \
${NDK_PATH}/ndk-build APP_ABI="armeabi-v7a arm64-v8a x86" -j4-bash: F:\Android\android-ndk-r15c/ndk-build: No such file or directory
解决:路径/隔开
4.$ ./build.sh./build.sh:行21: $'\r': 未找到命令./build.sh: 第 22 行
/jni/ffmpeg: No such file or directory./build.sh:行23: ./configure: No such file or directory./build.sh:行24: --libdir=android-libs/armeabi-v7a: No such file or directory./build.sh:行25: --arch=arm: 未找到命令./build.sh:行26: --cpu=armv7-a: 未找到命令./build.sh:行27: --cross-prefix=/toolchains/arm-linux-androideabi-4.9/prebuilt//bin/arm-linux-androideabi-: No such file or directory./build.sh:行28: --sysroot=/platforms/android-9/arch-arm/: No such file or directory./build.sh:行29: --extra-cflags=-march=armv7-a -mfloat-abi=softfp: 未找到命令./build.sh:行30: --extra-ldflags=-Wl,--fix-cortex-a8: 未找到命令./build.sh:行31: --extra-ldexeflags=-pie: 未找到命令./build.sh:行32: $'\\r': 未找到命令./build.sh:行33: 未预期的符号 `&&' 附近有语法错误'/build.sh:行33: ` && \
解决:分步执行命令
5.
$ ./configure \
--libdir=android-libs/armeabi-v7a \--arch=arm \--cpu=armv7-a \--cross-prefix="{HOST_PLATFORM}/bin/arm-linux-androideabi-" \--sysroot="${NDK_PATH}/platforms/android-9/arch-arm/" \--extra-cflags="-march=armv7-a -mfloat-abi=softfp" \--extra-ldflags="-Wl