
- The package is renamed to avoid conflicts with v1, should any app wish to include both v1 and v2 for a period of time. This is similar to the approach used by some other open source projects (e.g. okhttp). - Copyright year is updated everywhere for completeness. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=126895326
1.9 KiB
1.9 KiB
ExoPlayer Opus Extension
Description
The Opus Extension is a TrackRenderer implementation that helps you bundle libopus (the Opus decoding library) into your app and use it along with ExoPlayer to play Opus audio on Android devices.
Build Instructions
- Checkout ExoPlayer along with Extensions:
git clone https://github.com/google/ExoPlayer.git
- Set the following environment variables:
cd "<path to exoplayer checkout>"
EXOPLAYER_ROOT="$(pwd)"
OPUS_EXT_PATH="${EXOPLAYER_ROOT}/extensions/opus/src/main"
- Download the Android NDK and set its location in an environment variable:
NDK_PATH="<path to Android NDK>"
- Fetch libopus:
cd "${OPUS_EXT_PATH}/jni" && \
git clone https://git.xiph.org/opus.git libopus
- Run the script to convert arm assembly to NDK compatible format:
cd ${OPUS_EXT_PATH}/jni && ./convert_android_asm.sh
- Build the JNI native libraries from the command line:
cd "${OPUS_EXT_PATH}"/jni && \
${NDK_PATH}/ndk-build APP_ABI=all -j4
- In your project, you can add a dependency to the Opus Extension by using a rule like this:
// in settings.gradle
include ':..:ExoPlayer:library'
include ':..:ExoPlayer:extension-opus'
// in build.gradle
dependencies {
compile project(':..:ExoPlayer:library')
compile project(':..:ExoPlayer:extension-opus')
}
- Now, when you build your app, the Opus extension will be built and the native libraries will be packaged along with the APK.
Notes
- Every time there is a change to the libopus checkout:
- Arm assembly should be converted by running
convert_android_asm.sh
- Clean and re-build the project.
- Arm assembly should be converted by running
- If you want to use your own version of libopus, place it in
${OPUS_EXT_PATH}/jni/libopus
.