mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00

- Event listener is now at the SampleSource level, since the individual ChunkTrackStream instances are created internally. - Event listener receives events corresponding to loads made at the SampleSource level (e.g. manifest fetches) in addition to those made by the ChunkTrackStream instances. - Added ability for FormatEvaluators to propagate arbitrary information (as an Object) through to the listeners. This was a request from YouTube. - Added significantly more information to each event, for example the DataSpec that defines the load being made is now passed, as is timing information. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=124732984
ExoPlayer Flac Extension
Description
The Flac Extension is a TrackRenderer implementation that helps you bundle libFLAC (the Flac decoding library) into your app and use it along with ExoPlayer to play Flac 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)"
FLAC_EXT_PATH="${EXOPLAYER_ROOT}/extensions/flac/src/main"
- Download the Android NDK and set its location in an environment variable:
NDK_PATH="<path to Android NDK>"
- Download and extract flac-1.3.1 as "${FLAC_EXT_PATH}/jni/flac" folder:
cd "${FLAC_EXT_PATH}/jni" && \
curl http://downloads.xiph.org/releases/flac/flac-1.3.1.tar.xz | tar xJ && \
mv flac-1.3.1 flac
- Build the JNI native libraries from the command line:
cd "${FLAC_EXT_PATH}"/jni && \
${NDK_PATH}/ndk-build APP_ABI=all -j4
- In your project, you can add a dependency to the Flac Extension by using a rule like this:
// in settings.gradle
include ':..:ExoPlayer:library'
include ':..:ExoPlayer:extension-flac'
// in build.gradle
dependencies {
compile project(':..:ExoPlayer:library')
compile project(':..:ExoPlayer:extension-flac')
}
- Now, when you build your app, the Flac extension will be built and the native libraries will be packaged along with the APK.