Commit 4ce862ad by olly Committed by Oliver Woodman

Tweak and add READMEs + remove refs to V1

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=165578518
parent b174bcc1
...@@ -9,37 +9,37 @@ and extend, and can be updated through Play Store application updates. ...@@ -9,37 +9,37 @@ and extend, and can be updated through Play Store application updates.
## Documentation ## ## Documentation ##
* The [developer guide][] provides a wealth of information to help you get * The [developer guide][] provides a wealth of information.
started. * The [class reference][] documents ExoPlayer classes.
* The [class reference][] documents the ExoPlayer library classes.
* The [release notes][] document the major changes in each release. * The [release notes][] document the major changes in each release.
* Follow our [developer blog][] to keep up to date with the latest ExoPlayer
developments!
[developer guide]: https://google.github.io/ExoPlayer/guide.html [developer guide]: https://google.github.io/ExoPlayer/guide.html
[class reference]: https://google.github.io/ExoPlayer/doc/reference [class reference]: https://google.github.io/ExoPlayer/doc/reference
[release notes]: https://github.com/google/ExoPlayer/blob/dev-v2/RELEASENOTES.md [release notes]: https://github.com/google/ExoPlayer/blob/release-v2/RELEASENOTES.md
[developer blog]: https://medium.com/google-exoplayer
## Using ExoPlayer ## ## Using ExoPlayer ##
ExoPlayer modules can be obtained via JCenter. It's also possible to clone the ExoPlayer modules can be obtained from JCenter. It's also possible to clone the
repository and depend on the modules locally. repository and depend on the modules locally.
### Via JCenter ### ### From JCenter ###
The easiest way to get started using ExoPlayer is to add it as a gradle 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 and Google Maven dependency. You need to make sure you have the JCenter and Google repositories
repositories included in the `build.gradle` file in the root of your project: included in the `build.gradle` file in the root of your project:
```gradle ```gradle
repositories { repositories {
jcenter() jcenter()
maven { google()
url "https://maven.google.com"
}
} }
``` ```
Next add a gradle compile dependency to the `build.gradle` file of your app Next add a gradle compile dependency to the `build.gradle` file of your app
module. The following will add a dependency to the full ExoPlayer library: module. The following will add a dependency to the full library:
```gradle ```gradle
compile 'com.google.android.exoplayer:exoplayer:r2.X.X' compile 'com.google.android.exoplayer:exoplayer:r2.X.X'
...@@ -56,8 +56,8 @@ compile 'com.google.android.exoplayer:exoplayer-dash:r2.X.X' ...@@ -56,8 +56,8 @@ compile 'com.google.android.exoplayer:exoplayer-dash:r2.X.X'
compile 'com.google.android.exoplayer:exoplayer-ui:r2.X.X' compile 'com.google.android.exoplayer:exoplayer-ui:r2.X.X'
``` ```
The available modules are listed below. Adding a dependency to the full The available library modules are listed below. Adding a dependency to the full
ExoPlayer library is equivalent to adding dependencies on all of the modules library is equivalent to adding dependencies on all of the library modules
individually. individually.
* `exoplayer-core`: Core functionality (required). * `exoplayer-core`: Core functionality (required).
...@@ -66,11 +66,16 @@ individually. ...@@ -66,11 +66,16 @@ individually.
* `exoplayer-smoothstreaming`: Support for SmoothStreaming content. * `exoplayer-smoothstreaming`: Support for SmoothStreaming content.
* `exoplayer-ui`: UI components and resources for use with ExoPlayer. * `exoplayer-ui`: UI components and resources for use with ExoPlayer.
For more details, see the project on [Bintray][]. For information about the In addition to library modules, ExoPlayer has multiple extension modules that
latest versions, see the [Release notes][]. depend on external libraries to provide additional functionality. Some
extensions are available from JCenter, whereas others must be built manaully.
Browse the [extensions directory] and their individual READMEs for details.
More information on the library and extension modules that are available from
JCenter can be found on [Bintray][].
[extensions directory][]: https://github.com/google/ExoPlayer/tree/release-v2/extensions/
[Bintray]: https://bintray.com/google/exoplayer [Bintray]: https://bintray.com/google/exoplayer
[Release notes]: https://github.com/google/ExoPlayer/blob/release-v2/RELEASENOTES.md
### Locally ### ### Locally ###
...@@ -109,15 +114,9 @@ compile project(':exoplayer-library-ui') ...@@ -109,15 +114,9 @@ compile project(':exoplayer-library-ui')
#### Project branches #### #### Project branches ####
* The project has `dev-vX` and `release-vX` branches, where `X` is the major * Development work happens on the `dev-v2` branch. Pull requests should
version number. normally be made to this branch.
* Most development work happens on the `dev-vX` branch with the highest major * The `release-v2` branch holds the most recent release.
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 #### #### Using Android Studio ####
......
# Demo application # # ExoPlayer main demo #
This folder contains a demo application that uses ExoPlayer to play a number This is the main ExoPlayer demo application. It uses ExoPlayer to play a number
of test streams. It can be used as a starting point or reference project when of test streams. It can be used as a starting point or reference project when
developing other applications that make use of the ExoPlayer library. developing other applications that make use of the ExoPlayer library.
# ExoPlayer extensions #
ExoPlayer extensions are modules that depend on external libraries to provide
additional functionality. Browse the individual extensions and their READMEs to
learn more.
# ExoPlayer Cronet extension # # ExoPlayer Cronet extension #
## Description ##
The Cronet extension is an [HttpDataSource][] implementation using [Cronet][]. The Cronet extension is an [HttpDataSource][] implementation using [Cronet][].
[HttpDataSource]: https://google.github.io/ExoPlayer/doc/reference/com/google/android/exoplayer2/upstream/HttpDataSource.html [HttpDataSource]: https://google.github.io/ExoPlayer/doc/reference/com/google/android/exoplayer2/upstream/HttpDataSource.html
...@@ -53,3 +51,10 @@ new DefaultDataSourceFactory( ...@@ -53,3 +51,10 @@ new DefaultDataSourceFactory(
new CronetDataSourceFactory(...) /* baseDataSourceFactory argument */); new CronetDataSourceFactory(...) /* baseDataSourceFactory argument */);
``` ```
respectively. respectively.
## Links ##
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.cronet.*`
belong to this module.
[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html
# ExoPlayer FFmpeg extension # # ExoPlayer FFmpeg extension #
## Description ##
The FFmpeg extension provides `FfmpegAudioRenderer`, which uses FFmpeg for The FFmpeg extension provides `FfmpegAudioRenderer`, which uses FFmpeg for
decoding and can render audio encoded in a variety of formats. decoding and can render audio encoded in a variety of formats.
...@@ -140,3 +138,10 @@ then implement your own logic to use the renderer for a given track. ...@@ -140,3 +138,10 @@ then implement your own logic to use the renderer for a given track.
[Android NDK]: https://developer.android.com/tools/sdk/ndk/index.html [Android NDK]: https://developer.android.com/tools/sdk/ndk/index.html
[#2781]: https://github.com/google/ExoPlayer/issues/2781 [#2781]: https://github.com/google/ExoPlayer/issues/2781
[Supported formats]: https://google.github.io/ExoPlayer/supported-formats.html#ffmpeg-extension [Supported formats]: https://google.github.io/ExoPlayer/supported-formats.html#ffmpeg-extension
## Links ##
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.ffmpeg.*`
belong to this module.
[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html
# ExoPlayer Flac extension # # ExoPlayer Flac extension #
## Description ##
The Flac extension provides `FlacExtractor` and `LibflacAudioRenderer`, which The Flac extension provides `FlacExtractor` and `LibflacAudioRenderer`, which
use libFLAC (the Flac decoding library) to extract and decode FLAC audio. use libFLAC (the Flac decoding library) to extract and decode FLAC audio.
...@@ -82,3 +80,10 @@ Note: These instructions assume you're using `DefaultTrackSelector`. If you have ...@@ -82,3 +80,10 @@ Note: These instructions assume you're using `DefaultTrackSelector`. If you have
a custom track selector the choice of `Renderer` is up to your implementation, a custom track selector the choice of `Renderer` is up to your implementation,
so you need to make sure you are passing an `LibflacAudioRenderer` to the so you need to make sure you are passing an `LibflacAudioRenderer` to the
player, then implement your own logic to use the renderer for a given track. player, then implement your own logic to use the renderer for a given track.
## Links ##
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.flac.*`
belong to this module.
[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html
# ExoPlayer GVR extension # # ExoPlayer GVR extension #
## Description ##
The GVR extension wraps the [Google VR SDK for Android][]. It provides a The GVR extension wraps the [Google VR SDK for Android][]. It provides a
GvrAudioProcessor, which uses [GvrAudioSurround][] to provide binaural rendering GvrAudioProcessor, which uses [GvrAudioSurround][] to provide binaural rendering
of surround sound and ambisonic soundfields. of surround sound and ambisonic soundfields.
...@@ -26,9 +24,17 @@ locally. Instructions for doing this can be found in ExoPlayer's ...@@ -26,9 +24,17 @@ locally. Instructions for doing this can be found in ExoPlayer's
## Using the extension ## ## Using the extension ##
* If using SimpleExoPlayer, override SimpleExoPlayer.buildAudioProcessors to * If using `DefaultRenderersFactory`, override
return a GvrAudioProcessor. `DefaultRenderersFactory.buildAudioProcessors` to return a
* If constructing renderers directly, pass a GvrAudioProcessor to `GvrAudioProcessor`.
MediaCodecAudioRenderer's constructor. * If constructing renderers directly, pass a `GvrAudioProcessor` to
`MediaCodecAudioRenderer`'s constructor.
[top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md [top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md
## Links ##
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.gvr.*`
belong to this module.
[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html
# ExoPlayer IMA extension # # ExoPlayer IMA extension #
## Description ##
The IMA extension is a [MediaSource][] implementation wrapping the The IMA extension is a [MediaSource][] implementation wrapping the
[Interactive Media Ads SDK for Android][IMA]. You can use it to insert ads [Interactive Media Ads SDK for Android][IMA]. You can use it to insert ads
alongside content. alongside content.
...@@ -55,3 +53,10 @@ playback. ...@@ -55,3 +53,10 @@ playback.
[top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md [top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md
[sample ad tags]: https://developers.google.com/interactive-media-ads/docs/sdks/android/tags [sample ad tags]: https://developers.google.com/interactive-media-ads/docs/sdks/android/tags
## Links ##
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.ima.*`
belong to this module.
[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html
# ExoPlayer MediaSession extension # # ExoPlayer MediaSession extension #
## Description ##
The MediaSession extension mediates between a Player (or ExoPlayer) instance The MediaSession extension mediates between a Player (or ExoPlayer) instance
and a [MediaSession][]. It automatically retrieves and implements playback and a [MediaSession][]. It automatically retrieves and implements playback
actions and syncs the player state with the state of the media session. The actions and syncs the player state with the state of the media session. The
...@@ -25,3 +23,10 @@ locally. Instructions for doing this can be found in ExoPlayer's ...@@ -25,3 +23,10 @@ locally. Instructions for doing this can be found in ExoPlayer's
[top level README][]. [top level README][].
[top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md [top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md
## Links ##
* [Javadoc][]: Classes matching
`com.google.android.exoplayer2.ext.mediasession.*` belong to this module.
[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html
# ExoPlayer OkHttp extension # # ExoPlayer OkHttp extension #
## Description ##
The OkHttp extension is an [HttpDataSource][] implementation using Square's The OkHttp extension is an [HttpDataSource][] implementation using Square's
[OkHttp][]. [OkHttp][].
...@@ -49,3 +47,10 @@ new DefaultDataSourceFactory( ...@@ -49,3 +47,10 @@ new DefaultDataSourceFactory(
new OkHttpDataSourceFactory(...) /* baseDataSourceFactory argument */); new OkHttpDataSourceFactory(...) /* baseDataSourceFactory argument */);
``` ```
respectively. respectively.
## Links ##
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.okhttp.*`
belong to this module.
[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html
# ExoPlayer Opus extension # # ExoPlayer Opus extension #
## Description ## The Opus extension provides `LibopusAudioRenderer`, which uses libopus (the Opus
decoding library) to decode Opus audio.
The Opus extension provides `LibopusAudioRenderer`, which uses
libopus (the Opus decoding library) to decode Opus audio.
## Build instructions ## ## Build instructions ##
...@@ -86,3 +84,10 @@ Note: These instructions assume you're using `DefaultTrackSelector`. If you have ...@@ -86,3 +84,10 @@ Note: These instructions assume you're using `DefaultTrackSelector`. If you have
a custom track selector the choice of `Renderer` is up to your implementation, a custom track selector the choice of `Renderer` is up to your implementation,
so you need to make sure you are passing an `LibopusAudioRenderer` to the so you need to make sure you are passing an `LibopusAudioRenderer` to the
player, then implement your own logic to use the renderer for a given track. player, then implement your own logic to use the renderer for a given track.
## Links ##
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.opus.*`
belong to this module.
[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html
# ExoPlayer RTMP extension # # ExoPlayer RTMP extension #
## Description ##
The RTMP extension is a [DataSource][] implementation for playing [RTMP][] The RTMP extension is a [DataSource][] implementation for playing [RTMP][]
streams using [LibRtmp Client for Android][]. streams using [LibRtmp Client for Android][].
...@@ -41,3 +39,10 @@ application code are required. Alternatively, if you know that your application ...@@ -41,3 +39,10 @@ application code are required. Alternatively, if you know that your application
doesn't need to handle any other protocols, you can update any `DataSource`s and doesn't need to handle any other protocols, you can update any `DataSource`s and
`DataSource.Factory` instantiations in your application code to use `DataSource.Factory` instantiations in your application code to use
`RtmpDataSource` and `RtmpDataSourceFactory` directly. `RtmpDataSource` and `RtmpDataSourceFactory` directly.
## Links ##
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.rtmp.*`
belong to this module.
[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html
# ExoPlayer VP9 extension # # ExoPlayer VP9 extension #
## Description ## The VP9 extension provides `LibvpxVideoRenderer`, which uses libvpx (the VPx
decoding library) to decode VP9 video.
The VP9 extension provides `LibvpxVideoRenderer`, which uses
libvpx (the VPx decoding library) to decode VP9 video.
## Build instructions ## ## Build instructions ##
...@@ -110,3 +108,10 @@ performed using a GL shader. To enable this mode, send the renderer a message of ...@@ -110,3 +108,10 @@ performed using a GL shader. To enable this mode, send the renderer a message of
type `LibvpxVideoRenderer.MSG_SET_OUTPUT_BUFFER_RENDERER` with the type `LibvpxVideoRenderer.MSG_SET_OUTPUT_BUFFER_RENDERER` with the
`VpxVideoSurfaceView` as its object, instead of sending `MSG_SET_SURFACE` with a `VpxVideoSurfaceView` as its object, instead of sending `MSG_SET_SURFACE` with a
`Surface`. `Surface`.
## Links ##
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.vp9.*`
belong to this module.
[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html
# ExoPlayer library #
The ExoPlayer library is split into multiple modules. See ExoPlayer's
[top level README][] for more information about the available library modules
and how to use them.
[top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md
# ExoPlayer full library #
An empty module that depends on all of the other library modules. Depending on
the full library is equivalent to depending on all of the other library modules
individually. See ExoPlayer's [top level README][] for more information.
[top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md
## Links ##
* [Javadoc][]: Note that this Javadoc is combined with that of other modules.
[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html
# ExoPlayer core library module #
The core of the ExoPlayer library.
## Links ##
* [Javadoc][]: Note that this Javadoc is combined with that of other modules.
[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html
# ExoPlayer DASH library module #
Provides support for Dynamic Adaptive Streaming over HTTP (DASH) content. To
play DASH content, instantiate a `DashMediaSource` and pass it to
`ExoPlayer.prepare`.
## Links ##
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.source.dash.*`
belong to this module.
[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html
# ExoPlayer HLS library module #
Provides support for HTTP Live Streaming (HLS) content. To play HLS content,
instantiate a `HlsMediaSource` and pass it to `ExoPlayer.prepare`.
## Links ##
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.source.hls.*`
belong to this module.
[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html
# ExoPlayer SmoothStreaming library module #
Provides support for Smooth Streaming content. To play Smooth Streaming content,
instantiate a `SsMediaSource` and pass it to `ExoPlayer.prepare`.
## Links ##
* [Javadoc][]: Classes matching
`com.google.android.exoplayer2.source.smoothstreaming.*` belong to this
module.
[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html
# ExoPlayer UI library module #
Provides UI components and resources for use with ExoPlayer.
## Links ##
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ui.*`
belong to this module.
[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment