No description
Find a file
Oliver Woodman 009d4d0c2c Fix retries if failure occurrs when reading seek map.
The following sequence was problematic:

1. See start of a cluster having not output a seek map. Decide
   to seek for the cues. Enter CUES_STATE_BUILDING state.
2. Error occurs before seek map is output.
3. ExtractorSampleSource isn't prepared yet, so restarts from the
   start of the stream.
4. See start of the same cluster having not output a seek map.
   This time cuesState is CUES_STATE_BUILDING, so we just carry
   on. We then fill the buffer with sample data, despite the
   source not being prepared, at which point we get stuck.

It's unclear to me why cuesState needed three states, so I've rm'd
the BUILDING state. Step (4) above will now do the same thing as
in step (1). If the failure repeats, we'll eventually fail, which
is WAI.
2015-09-01 14:03:45 +01:00
demo Always show track language if we have it. 2015-09-01 13:56:40 +01:00
demo_misc webm demo app: Fix crash on screen touch 2015-08-11 17:48:45 +01:00
extensions Make Opus codec-specific data match the platform. 2015-08-19 16:34:59 +01:00
gradle/wrapper Include gradle plugin 1.0.0 2014-12-22 10:34:46 +08:00
library Fix retries if failure occurrs when reading seek map. 2015-09-01 14:03:45 +01:00
third_party Push tests. 2015-03-06 16:39:00 +00:00
.gitignore Update .gitignore to ignore VP9/Opus specific files. 2015-02-02 14:43:55 -08:00
build.gradle Put tests where they belong + bump bintray-release version. 2015-07-27 16:32:55 +01:00
CONTRIBUTING.md Update CONTRIBUTING.md 2015-02-18 23:42:42 +00:00
gradle.properties Initial drop. 1.0.10. 2014-06-16 12:56:04 +01:00
gradlew Initial drop. 1.0.10. 2014-06-16 12:56:04 +01:00
gradlew.bat Initial drop. 1.0.10. 2014-06-16 12:56:04 +01:00
LICENSE Initial drop. 1.0.10. 2014-06-16 12:56:04 +01:00
README.md Update README 2015-05-22 20:47:49 +01:00
RELEASENOTES.md Increment version to 1.4.2 2015-08-04 16:07:54 +01:00
settings.gradle Update settings.gradle 2015-06-05 18:30:59 +01:00

ExoPlayer Readme

Description

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.

News

Read news, hints and tips on the news page.

Documentation

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:

  1. Install Eclipse and setup the Android SDK.

  2. Open Eclipse and navigate to File->Import->General->Existing Projects into Workspace.

  3. Select the root directory of the repository.

  4. 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:

// 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.

The project is also available on jCenter:

compile 'com.google.android.exoplayer:exoplayer:rX.X.X'

Where rX.X.X should be replaced with the desired version.