
Dash/SS SampleSources now instantiate ChunkSource and ChunkSampleSource (renamed to ChunkTrackStream) instances on demand as tracks are enabled. The TrackGroups exposed by the DASH/SS SampleSources are now constructed at the top level. Note that this change resolves the TODOs at the top of the ChunkSource classes, allowing multiple adaptation sets of the same type. Next steps will include: - Bring back UTC timing element support for DASH, which will be an extra request during preparation in the DASH SampleSource. - Simplification of manifest fetching to use a Loader directly in the two top level SampleSource classes. ManifestFetcher should eventually go away once HLS no longer needs it. - Eventually, some consolidation between DASH/SS. There's a lot of common code there now. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=121001777
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.
News
Read news, hints and tips on the news page.
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
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 Android Studio
To develop ExoPlayer using Android Studio, simply open the ExoPlayer project in the root directory of the repository.