diff --git a/README.md b/README.md index f4dd9b69ec..c67fb09d73 100644 --- a/README.md +++ b/README.md @@ -9,21 +9,23 @@ 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 [developer guide][] provides a wealth of information. +* The [class reference][] documents ExoPlayer classes. * 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 [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 ## -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. -### Via JCenter ### +### From JCenter ### 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 @@ -39,7 +41,7 @@ repositories { ``` 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 compile 'com.google.android.exoplayer:exoplayer:r2.X.X' @@ -56,8 +58,8 @@ compile 'com.google.android.exoplayer:exoplayer-dash: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 -ExoPlayer library is equivalent to adding dependencies on all of the modules +The available library modules are listed below. Adding a dependency to the full +library is equivalent to adding dependencies on all of the library modules individually. * `exoplayer-core`: Core functionality (required). @@ -66,11 +68,16 @@ individually. * `exoplayer-smoothstreaming`: Support for SmoothStreaming content. * `exoplayer-ui`: UI components and resources for use with ExoPlayer. -For more details, see the project on [Bintray][]. For information about the -latest versions, see the [Release notes][]. +In addition to library modules, ExoPlayer has multiple extension modules that +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 -[Release notes]: https://github.com/google/ExoPlayer/blob/release-v2/RELEASENOTES.md ### Locally ### @@ -109,15 +116,9 @@ compile project(':exoplayer-library-ui) #### 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`. +* Development work happens on the `dev-v2` branch. Pull requests should + normally be made to this branch. +* The `release-v2` branch holds the most recent release. #### Using Android Studio #### diff --git a/demos/README.md b/demos/README.md new file mode 100644 index 0000000000..7e62249db1 --- /dev/null +++ b/demos/README.md @@ -0,0 +1,4 @@ +# ExoPlayer demos # + +This directory contains applications that demonstrate how to use ExoPlayer. +Browse the individual demos and their READMEs to learn more. diff --git a/demos/main/README.md b/demos/main/README.md index ca37392623..bdb04e5ba8 100644 --- a/demos/main/README.md +++ b/demos/main/README.md @@ -1,5 +1,5 @@ -# 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 developing other applications that make use of the ExoPlayer library. diff --git a/extensions/README.md b/extensions/README.md new file mode 100644 index 0000000000..bf0effb358 --- /dev/null +++ b/extensions/README.md @@ -0,0 +1,5 @@ +# 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. diff --git a/extensions/cronet/README.md b/extensions/cronet/README.md index 2287c4c19b..37c031f35f 100644 --- a/extensions/cronet/README.md +++ b/extensions/cronet/README.md @@ -1,7 +1,5 @@ # ExoPlayer Cronet extension # -## Description ## - The Cronet extension is an [HttpDataSource][] implementation using [Cronet][]. [HttpDataSource]: https://google.github.io/ExoPlayer/doc/reference/com/google/android/exoplayer/upstream/HttpDataSource.html @@ -56,3 +54,10 @@ new DefaultDataSourceFactory( new CronetDataSourceFactory(...) /* baseDataSourceFactory argument */); ``` 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 diff --git a/extensions/ffmpeg/README.md b/extensions/ffmpeg/README.md index fbc919c36d..57b637d1e2 100644 --- a/extensions/ffmpeg/README.md +++ b/extensions/ffmpeg/README.md @@ -1,7 +1,5 @@ # ExoPlayer FFmpeg extension # -## Description ## - The FFmpeg extension provides `FfmpegAudioRenderer`, which uses FFmpeg for 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. [Android NDK]: https://developer.android.com/tools/sdk/ndk/index.html [#2781]: https://github.com/google/ExoPlayer/issues/2781 [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 diff --git a/extensions/flac/README.md b/extensions/flac/README.md index 505482f7ed..113b41a93d 100644 --- a/extensions/flac/README.md +++ b/extensions/flac/README.md @@ -1,7 +1,5 @@ # ExoPlayer Flac extension # -## Description ## - The Flac extension provides `FlacExtractor` and `LibflacAudioRenderer`, which 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 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 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 diff --git a/extensions/gvr/README.md b/extensions/gvr/README.md index 4e08ee6387..250cf58c2f 100644 --- a/extensions/gvr/README.md +++ b/extensions/gvr/README.md @@ -1,7 +1,5 @@ # ExoPlayer GVR extension # -## Description ## - The GVR extension wraps the [Google VR SDK for Android][]. It provides a GvrAudioProcessor, which uses [GvrAudioSurround][] to provide binaural rendering of surround sound and ambisonic soundfields. @@ -26,9 +24,17 @@ locally. Instructions for doing this can be found in ExoPlayer's ## Using the extension ## -* If using SimpleExoPlayer, override SimpleExoPlayer.buildAudioProcessors to - return a GvrAudioProcessor. -* If constructing renderers directly, pass a GvrAudioProcessor to - MediaCodecAudioRenderer's constructor. +* If using `DefaultRenderersFactory`, override + `DefaultRenderersFactory.buildAudioProcessors` to return a + `GvrAudioProcessor`. +* If constructing renderers directly, pass a `GvrAudioProcessor` to + `MediaCodecAudioRenderer`'s constructor. [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 diff --git a/extensions/ima/README.md b/extensions/ima/README.md index f328bb44cb..4f63214f04 100644 --- a/extensions/ima/README.md +++ b/extensions/ima/README.md @@ -1,7 +1,5 @@ # ExoPlayer IMA extension # -## Description ## - The IMA extension is a [MediaSource][] implementation wrapping the [Interactive Media Ads SDK for Android][IMA]. You can use it to insert ads alongside content. @@ -55,3 +53,10 @@ playback. [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 + +## Links ## + +* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.ima.*` + belong to this module. + +[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html diff --git a/extensions/leanback/README.md b/extensions/leanback/README.md index 0fb3846f7e..1fa71c9a8c 100644 --- a/extensions/leanback/README.md +++ b/extensions/leanback/README.md @@ -1,6 +1,4 @@ -# ExoPlayer Leanback Extension # - -## Description ## +# ExoPlayer Leanback extension # This [Leanback][] Extension provides a [PlayerAdapter][] implementation for ExoPlayer. @@ -24,3 +22,10 @@ locally. Instructions for doing this can be found in ExoPlayer's [top level README][]. [top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md + +## Links ## + +* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.leanback.*` + belong to this module. + +[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html diff --git a/extensions/mediasession/README.md b/extensions/mediasession/README.md index 60fec9fb60..3278e8dba5 100644 --- a/extensions/mediasession/README.md +++ b/extensions/mediasession/README.md @@ -1,7 +1,5 @@ # ExoPlayer MediaSession extension # -## Description ## - The MediaSession extension mediates between a Player (or ExoPlayer) instance and a [MediaSession][]. It automatically retrieves and implements playback 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 [top level README][]. [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 diff --git a/extensions/okhttp/README.md b/extensions/okhttp/README.md index b10c4ba629..f84d0c35f2 100644 --- a/extensions/okhttp/README.md +++ b/extensions/okhttp/README.md @@ -1,7 +1,5 @@ # ExoPlayer OkHttp extension # -## Description ## - The OkHttp extension is an [HttpDataSource][] implementation using Square's [OkHttp][]. @@ -49,3 +47,10 @@ new DefaultDataSourceFactory( new OkHttpDataSourceFactory(...) /* baseDataSourceFactory argument */); ``` 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 diff --git a/extensions/opus/README.md b/extensions/opus/README.md index cc21c77cf9..d766e8c9c4 100644 --- a/extensions/opus/README.md +++ b/extensions/opus/README.md @@ -1,9 +1,7 @@ # 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 ## @@ -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, 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. + +## Links ## + +* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.opus.*` + belong to this module. + +[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html diff --git a/extensions/rtmp/README.md b/extensions/rtmp/README.md index 80074f119c..7e6bc0d641 100644 --- a/extensions/rtmp/README.md +++ b/extensions/rtmp/README.md @@ -1,7 +1,5 @@ # ExoPlayer RTMP extension # -## Description ## - The RTMP extension is a [DataSource][] implementation for playing [RTMP][] streams using [LibRtmp Client for Android][]. @@ -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 `DataSource.Factory` instantiations in your application code to use `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 diff --git a/extensions/vp9/README.md b/extensions/vp9/README.md index d28aa70db0..7bce4a2a25 100644 --- a/extensions/vp9/README.md +++ b/extensions/vp9/README.md @@ -1,9 +1,7 @@ # 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 ## @@ -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 `VpxVideoSurfaceView` as its object, instead of sending `MSG_SET_SURFACE` with a `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 diff --git a/library/README.md b/library/README.md new file mode 100644 index 0000000000..7aa07fc521 --- /dev/null +++ b/library/README.md @@ -0,0 +1,7 @@ +# 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 diff --git a/library/all/README.md b/library/all/README.md new file mode 100644 index 0000000000..8746e3afc6 --- /dev/null +++ b/library/all/README.md @@ -0,0 +1,13 @@ +# 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 diff --git a/library/core/README.md b/library/core/README.md new file mode 100644 index 0000000000..f31ffed131 --- /dev/null +++ b/library/core/README.md @@ -0,0 +1,9 @@ +# 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 diff --git a/library/dash/README.md b/library/dash/README.md new file mode 100644 index 0000000000..394a38a332 --- /dev/null +++ b/library/dash/README.md @@ -0,0 +1,12 @@ +# 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 diff --git a/library/hls/README.md b/library/hls/README.md new file mode 100644 index 0000000000..6f7e9d08d9 --- /dev/null +++ b/library/hls/README.md @@ -0,0 +1,11 @@ +# 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 diff --git a/library/smoothstreaming/README.md b/library/smoothstreaming/README.md new file mode 100644 index 0000000000..69265e8702 --- /dev/null +++ b/library/smoothstreaming/README.md @@ -0,0 +1,12 @@ +# 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 diff --git a/library/ui/README.md b/library/ui/README.md new file mode 100644 index 0000000000..34e93e43af --- /dev/null +++ b/library/ui/README.md @@ -0,0 +1,10 @@ +# 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