If a renderer is reading ahead of the playing period, seeking within the playing period would fail, because renderers would not be disabled but then try to read from SampleStreams that have a released period. Also, in the same circumstances, seeking within the reading period would fail, because all renderers would be disabled, but their sample streams have already been read. When they are reenabled they expect to see a format but don't receive one. In both cases, seeking can just clear the timeline. This only occurs in rare circumstances when the player is reading ahead, so the cost of re-preparing will not be incurred often, and allows the seeking logic to be simpler. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=129891060 |
||
|---|---|---|
| demo | ||
| extensions | ||
| gradle/wrapper | ||
| library | ||
| playbacktests | ||
| testutils | ||
| .gitignore | ||
| build.gradle | ||
| CONTRIBUTING.md | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| ISSUE_TEMPLATE | ||
| LICENSE | ||
| README.md | ||
| RELEASENOTES.md | ||
| settings.gradle | ||
ExoPlayer
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, including DASH and SmoothStreaming adaptive playbacks. Unlike the MediaPlayer API, ExoPlayer is easy to customize and extend, and can be updated through Play Store application updates.
Documentation
- The developer guide provides a wealth of information to help you get started.
- The class reference documents the ExoPlayer library classes.
- The release notes document the major changes in each release.
Using ExoPlayer
Via jCenter
The easiest way to get started using ExoPlayer is by including the following in
your project's build.gradle file:
compile 'com.google.android.exoplayer:exoplayer:rX.X.X'
where rX.X.X is the your preferred version. For the latest version, see the
project's Releases. For more details, see the project on Bintray.
As source
ExoPlayer can also be built from source using Gradle. You can include it as a dependent project like so:
// settings.gradle
include ':app', ':..:ExoPlayer:library'
// app/build.gradle
dependencies {
compile project(':..:ExoPlayer:library')
}
As a jar
If you want to use ExoPlayer as a jar, run:
./gradlew jarRelease
and copy library.jar to the libs folder of your new project.
Developing ExoPlayer
Project branches
- The project has
dev-vXandrelease-vXbranches, whereXis the major version number. - Most development work happens on the
dev-vXbranch with the highest major version number. Pull requests should normally be made to this branch. - Bug fixes may be submitted to older
dev-vXbranches. When doing this, the same (or an equivalent) fix should also be submitted to all subsequentdev-vXbranches. - A
release-vXbranch holds the most recent stable release for major versionX.
Using Android Studio
To develop ExoPlayer using Android Studio, simply open the ExoPlayer project in the root directory of the repository.