No description
Find a file
olly 99957bbae7 Correctly handle dynamic playlist modifications
- Fix bug where we'd try and call replaceStream having already
  notified the renderer that the current stream is final. This
  could occur if a period was added to the end of the playlist.
- If the current period being played is removed and a new period
  to play cannot be resolved, assume we've gone off the end of
  the playlist and transition to the ended state. This allows
  the current source to be re-used (unlike the previous behavior
  of considering it an error). Treat valid seeks that cannot be
  resolved due to concurrent timeline update similarly.
- Add seek sanity check back to ExoPlayerImpl. Meh. It's probably
  best to keep this, since it stops the exposed window index
  being invalid w.r.t the exposed timeline.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=141167151
2016-12-06 20:04:01 +00:00
demo Fix playback control focus 2016-11-30 22:04:18 +00:00
extensions Fix compiler warning about assignment in conditional. 2016-11-30 21:54:45 +00:00
gradle/wrapper Update gradle wrapper 2016-10-24 18:42:37 +01:00
library Correctly handle dynamic playlist modifications 2016-12-06 20:04:01 +00:00
playbacktests Improve SimpleExoPlayer flexibility 2016-11-25 20:18:32 +00:00
testutils Add index file to hold header information for cached content. 2016-11-10 21:14:29 +00:00
.gitignore Cronet extension project setup 2016-08-10 20:06:43 +01:00
build.gradle Update gradle wrapper 2016-10-24 18:42:37 +01:00
CONTRIBUTING.md Fix broken documentation 2016-08-31 15:25:25 +01:00
gradle.properties Tweak project structure 2016-08-08 11:53:22 +01:00
gradlew Initial drop. 1.0.10. 2014-06-16 12:56:04 +01:00
gradlew.bat Cleanup following #884 2015-10-27 21:03:16 +00:00
ISSUE_TEMPLATE Update ISSUE_TEMPLATE 2016-11-24 19:30:15 +00:00
LICENSE Initial drop. 1.0.10. 2014-06-16 12:56:04 +01:00
README.md Bump version to 2.0.2 + document inclusion of OkHttp extension 2016-10-05 21:20:34 +01:00
RELEASENOTES.md Bump version to r2.0.4 2016-10-20 12:20:10 +01:00
settings.gradle Create Cronet extension in v2 2016-08-31 15:25:31 +01:00

ExoPlayer

ExoPlayer is an application level media player for Android. It provides an alternative to Androids MediaPlayer API for playing audio and video both locally and over the Internet. ExoPlayer supports features not currently supported by Androids 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

Using ExoPlayer

The easiest way to get started using ExoPlayer is to add it as a gradle dependency. You need to make sure you have the jcenter repository included in the build.gradle file in the root of your project:

repositories {
    jcenter()
}

Next, include the following in your module'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.

Developing ExoPlayer

Project branches

  • The project has dev-vX and release-vX branches, where X is the major version number.
  • Most development work happens on the dev-vX branch with the highest major version number. Pull requests should normally be made to this branch.
  • Bug fixes may be submitted to older dev-vX branches. When doing this, the same (or an equivalent) fix should also be submitted to all subsequent dev-vX branches.
  • A release-vX branch holds the most recent stable release for major version X.

Using Android Studio

To develop ExoPlayer using Android Studio, simply open the ExoPlayer project in the root directory of the repository.