It was possible for a codec input buffer to be filled with two frames' worth of data, if seekTo was called after populating a buffer, if waitingForKeys was true and seeking did not trigger a flush. This caused the CryptoInfo to be configured as if the input buffer contained a large amount of reconfiguration data as cleartext. Move resetting waitingForKeys to flushCodec, so that we don't try to read the next sample from the source until the first one has been consumed or discarded. |
||
|---|---|---|
| demo | ||
| demo_misc | ||
| extensions | ||
| gradle/wrapper | ||
| library | ||
| .gitignore | ||
| build.gradle | ||
| CONTRIBUTING.md | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| README.md | ||
| settings.gradle | ||
ExoPlayer Readme
Description
ExoPlayer is an application level media player for Android. It provides an alternative to Android’s MediaPlayer API for playing audio and video both locally and over the Internet. ExoPlayer supports features not currently supported by Android’s MediaPlayer API (as of KitKat), including DASH and SmoothStreaming adaptive playbacks, persistent caching and custom renderers. Unlike the MediaPlayer API, ExoPlayer is easy to customize and extend, and can be updated through Play Store application updates.
Developer guide
The ExoPlayer developer guide provides a wealth of information to help you get started.
Reference documentation
Class reference (Documents the ExoPlayer library classes).
Project branches
- The master branch holds the most recent minor release.
- Most development work happens on the dev branch.
- Additional development branches may be established for major features.
Using Eclipse
The repository includes Eclipse projects for both the ExoPlayer library and its accompanying demo application. To get started:
-
Install Eclipse and setup the Android SDK.
-
Open Eclipse and navigate to File->Import->General->Existing Projects into Workspace.
-
Select the root directory of the repository.
-
Import the ExoPlayerDemo and ExoPlayerLib projects.
Using Gradle
ExoPlayer can also be built using Gradle. You can include it as a dependent project and build from source. e.g.
// settings.gradle
include ':app', ':..:ExoPlayer:library'
// app/build.gradle
dependencies {
compile project(':..:ExoPlayer:library')
}
If you want to use ExoPlayer as a jar, run:
./gradlew jarRelease
and copy library.jar to the libs-folder of your new project.