mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Mechanical README cleanups
PiperOrigin-RevId: 401767060
This commit is contained in:
parent
1d29f12677
commit
e7c6ed5e7f
20
README.md
20
README.md
@ -1,4 +1,4 @@
|
|||||||
# ExoPlayer <img src="https://img.shields.io/github/v/release/google/ExoPlayer.svg?label=latest"/> #
|
# ExoPlayer <img src="https://img.shields.io/github/v/release/google/ExoPlayer.svg?label=latest"/>
|
||||||
|
|
||||||
ExoPlayer is an application level media player for Android. It provides an
|
ExoPlayer is an application level media player for Android. It provides an
|
||||||
alternative to Android’s MediaPlayer API for playing audio and video both
|
alternative to Android’s MediaPlayer API for playing audio and video both
|
||||||
@ -7,7 +7,7 @@ supported by Android’s MediaPlayer API, including DASH and SmoothStreaming
|
|||||||
adaptive playbacks. Unlike the MediaPlayer API, ExoPlayer is easy to customize
|
adaptive playbacks. Unlike the MediaPlayer API, ExoPlayer is easy to customize
|
||||||
and extend, and can be updated through Play Store application updates.
|
and extend, and can be updated through Play Store application updates.
|
||||||
|
|
||||||
## Documentation ##
|
## Documentation
|
||||||
|
|
||||||
* The [developer guide][] provides a wealth of information.
|
* The [developer guide][] provides a wealth of information.
|
||||||
* The [class reference][] documents ExoPlayer classes.
|
* The [class reference][] documents ExoPlayer classes.
|
||||||
@ -20,7 +20,7 @@ and extend, and can be updated through Play Store application updates.
|
|||||||
[release notes]: https://github.com/google/ExoPlayer/blob/release-v2/RELEASENOTES.md
|
[release notes]: https://github.com/google/ExoPlayer/blob/release-v2/RELEASENOTES.md
|
||||||
[developer blog]: https://medium.com/google-exoplayer
|
[developer blog]: https://medium.com/google-exoplayer
|
||||||
|
|
||||||
## Using ExoPlayer ##
|
## Using ExoPlayer
|
||||||
|
|
||||||
ExoPlayer modules can be obtained from [the Google Maven repository][]. It's
|
ExoPlayer modules can be obtained from [the Google Maven repository][]. It's
|
||||||
also possible to clone the repository and depend on the modules locally.
|
also possible to clone the repository and depend on the modules locally.
|
||||||
@ -29,7 +29,7 @@ also possible to clone the repository and depend on the modules locally.
|
|||||||
|
|
||||||
### From the Google Maven repository
|
### From the Google Maven repository
|
||||||
|
|
||||||
#### 1. Add ExoPlayer module dependencies ####
|
#### 1. Add ExoPlayer module dependencies
|
||||||
|
|
||||||
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 in the `build.gradle` file of your app module. The following will add
|
dependency in the `build.gradle` file of your app module. The following will add
|
||||||
@ -77,7 +77,7 @@ found on the [Google Maven ExoPlayer page][].
|
|||||||
[extensions directory]: https://github.com/google/ExoPlayer/tree/release-v2/extensions/
|
[extensions directory]: https://github.com/google/ExoPlayer/tree/release-v2/extensions/
|
||||||
[Google Maven ExoPlayer page]: https://maven.google.com/web/index.html#com.google.android.exoplayer
|
[Google Maven ExoPlayer page]: https://maven.google.com/web/index.html#com.google.android.exoplayer
|
||||||
|
|
||||||
#### 2. Turn on Java 8 support ####
|
#### 2. Turn on Java 8 support
|
||||||
|
|
||||||
If not enabled already, you also need to turn on Java 8 support in all
|
If not enabled already, you also need to turn on Java 8 support in all
|
||||||
`build.gradle` files depending on ExoPlayer, by adding the following to the
|
`build.gradle` files depending on ExoPlayer, by adding the following to the
|
||||||
@ -89,13 +89,13 @@ compileOptions {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 3. Enable multidex ####
|
#### 3. Enable multidex
|
||||||
|
|
||||||
If your Gradle `minSdkVersion` is 20 or lower, you should
|
If your Gradle `minSdkVersion` is 20 or lower, you should
|
||||||
[enable multidex](https://developer.android.com/studio/build/multidex) in order
|
[enable multidex](https://developer.android.com/studio/build/multidex) in order
|
||||||
to prevent build errors.
|
to prevent build errors.
|
||||||
|
|
||||||
### Locally ###
|
### Locally
|
||||||
|
|
||||||
Cloning the repository and depending on the modules locally is required when
|
Cloning the repository and depending on the modules locally is required when
|
||||||
using some ExoPlayer extension modules. It's also a suitable approach if you
|
using some ExoPlayer extension modules. It's also a suitable approach if you
|
||||||
@ -128,15 +128,15 @@ implementation project(':exoplayer-library-dash')
|
|||||||
implementation project(':exoplayer-library-ui')
|
implementation project(':exoplayer-library-ui')
|
||||||
```
|
```
|
||||||
|
|
||||||
## Developing ExoPlayer ##
|
## Developing ExoPlayer
|
||||||
|
|
||||||
#### Project branches ####
|
#### Project branches
|
||||||
|
|
||||||
* Development work happens on the `dev-v2` branch. Pull requests should
|
* Development work happens on the `dev-v2` branch. Pull requests should
|
||||||
normally be made to this branch.
|
normally be made to this branch.
|
||||||
* The `release-v2` branch holds the most recent release.
|
* The `release-v2` branch holds the most recent release.
|
||||||
|
|
||||||
#### Using Android Studio ####
|
#### Using Android Studio
|
||||||
|
|
||||||
To develop ExoPlayer using Android Studio, simply open the ExoPlayer project in
|
To develop ExoPlayer using Android Studio, simply open the ExoPlayer project in
|
||||||
the root directory of the repository.
|
the root directory of the repository.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Cast demo application #
|
# Cast demo application
|
||||||
|
|
||||||
This folder contains a demo application that showcases ExoPlayer integration
|
This folder contains a demo application that showcases ExoPlayer integration
|
||||||
with Google Cast.
|
with Google Cast.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# ExoPlayer main demo #
|
# ExoPlayer main demo
|
||||||
|
|
||||||
This is the main ExoPlayer demo application. It 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
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# ExoPlayer website #
|
# ExoPlayer website
|
||||||
|
|
||||||
The [ExoPlayer website](https://exoplayer.dev/) is hosted on
|
The [ExoPlayer website](https://exoplayer.dev/) is hosted on
|
||||||
GitHub Pages, and is statically generated using Jekyll.
|
GitHub Pages, and is statically generated using Jekyll.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
# ExoPlayer AV1 extension #
|
# ExoPlayer AV1 extension
|
||||||
|
|
||||||
The AV1 extension provides `Libgav1VideoRenderer`, which uses libgav1 native
|
The AV1 extension provides `Libgav1VideoRenderer`, which uses libgav1 native
|
||||||
library to decode AV1 videos.
|
library to decode AV1 videos.
|
||||||
|
|
||||||
## License note ##
|
## License note
|
||||||
|
|
||||||
Please note that whilst the code in this repository is licensed under
|
Please note that whilst the code in this repository is licensed under
|
||||||
[Apache 2.0][], using this extension also requires building and including one or
|
[Apache 2.0][], using this extension also requires building and including one or
|
||||||
@ -11,7 +11,7 @@ more external libraries as described below. These are licensed separately.
|
|||||||
|
|
||||||
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
|
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
|
||||||
|
|
||||||
## Build instructions (Linux, macOS) ##
|
## Build instructions (Linux, macOS)
|
||||||
|
|
||||||
To use this extension you need to clone the ExoPlayer repository and depend on
|
To use this extension you need to clone the ExoPlayer repository and depend on
|
||||||
its modules locally. Instructions for doing this can be found in ExoPlayer's
|
its modules locally. Instructions for doing this can be found in ExoPlayer's
|
||||||
@ -61,14 +61,14 @@ to configure and build libgav1 and the extension's [JNI wrapper library][].
|
|||||||
[Ninja]: https://ninja-build.org
|
[Ninja]: https://ninja-build.org
|
||||||
[JNI wrapper library]: https://github.com/google/ExoPlayer/blob/release-v2/extensions/av1/src/main/jni/gav1_jni.cc
|
[JNI wrapper library]: https://github.com/google/ExoPlayer/blob/release-v2/extensions/av1/src/main/jni/gav1_jni.cc
|
||||||
|
|
||||||
## Build instructions (Windows) ##
|
## Build instructions (Windows)
|
||||||
|
|
||||||
We do not provide support for building this extension on Windows, however it
|
We do not provide support for building this extension on Windows, however it
|
||||||
should be possible to follow the Linux instructions in [Windows PowerShell][].
|
should be possible to follow the Linux instructions in [Windows PowerShell][].
|
||||||
|
|
||||||
[Windows PowerShell]: https://docs.microsoft.com/en-us/powershell/scripting/getting-started/getting-started-with-windows-powershell
|
[Windows PowerShell]: https://docs.microsoft.com/en-us/powershell/scripting/getting-started/getting-started-with-windows-powershell
|
||||||
|
|
||||||
## Using the extension ##
|
## Using the module
|
||||||
|
|
||||||
Once you've followed the instructions above to check out, build and depend on
|
Once you've followed the instructions above to check out, build and depend on
|
||||||
the extension, the next step is to tell ExoPlayer to use `Libgav1VideoRenderer`.
|
the extension, the next step is to tell ExoPlayer to use `Libgav1VideoRenderer`.
|
||||||
@ -96,7 +96,7 @@ a custom track selector the choice of `Renderer` is up to your implementation.
|
|||||||
You need to make sure you are passing a `Libgav1VideoRenderer` to the player and
|
You need to make sure you are passing a `Libgav1VideoRenderer` to the player and
|
||||||
then you need to implement your own logic to use the renderer for a given track.
|
then you need to implement your own logic to use the renderer for a given track.
|
||||||
|
|
||||||
## Using the extension in the demo application ##
|
## Using the module in the demo application
|
||||||
|
|
||||||
To try out playback using the extension in the [demo application][], see
|
To try out playback using the extension in the [demo application][], see
|
||||||
[enabling extension decoders][].
|
[enabling extension decoders][].
|
||||||
@ -104,7 +104,7 @@ To try out playback using the extension in the [demo application][], see
|
|||||||
[demo application]: https://exoplayer.dev/demo-application.html
|
[demo application]: https://exoplayer.dev/demo-application.html
|
||||||
[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders
|
[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders
|
||||||
|
|
||||||
## Rendering options ##
|
## Rendering options
|
||||||
|
|
||||||
There are two possibilities for rendering the output `Libgav1VideoRenderer`
|
There are two possibilities for rendering the output `Libgav1VideoRenderer`
|
||||||
gets from the libgav1 decoder:
|
gets from the libgav1 decoder:
|
||||||
@ -129,7 +129,7 @@ gets from the libgav1 decoder:
|
|||||||
Note: Although the default option uses `ANativeWindow`, based on our testing the
|
Note: Although the default option uses `ANativeWindow`, based on our testing the
|
||||||
GL rendering mode has better performance, so should be preferred
|
GL rendering mode has better performance, so should be preferred
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.av1.*`
|
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.av1.*`
|
||||||
belong to this module.
|
belong to this module.
|
||||||
|
@ -1,22 +1,22 @@
|
|||||||
# ExoPlayer Cast extension #
|
# ExoPlayer Cast extension
|
||||||
|
|
||||||
## Description ##
|
## Description
|
||||||
|
|
||||||
The cast extension is a [Player][] implementation that controls playback on a
|
The cast extension is a [Player][] implementation that controls playback on a
|
||||||
Cast receiver app.
|
Cast receiver app.
|
||||||
|
|
||||||
[Player]: https://exoplayer.dev/doc/reference/index.html?com/google/android/exoplayer2/Player.html
|
[Player]: https://exoplayer.dev/doc/reference/index.html?com/google/android/exoplayer2/Player.html
|
||||||
|
|
||||||
## Getting the extension ##
|
## Getting the module
|
||||||
|
|
||||||
The easiest way to use the extension is to add it as a gradle dependency:
|
The easiest way to get the module is to add it as a gradle dependency:
|
||||||
|
|
||||||
```gradle
|
```gradle
|
||||||
implementation 'com.google.android.exoplayer:extension-cast:2.X.X'
|
implementation 'com.google.android.exoplayer:extension-cast:2.X.X'
|
||||||
```
|
```
|
||||||
|
|
||||||
where `2.X.X` is the version, which must match the version of the ExoPlayer
|
where `2.X.X` is the version, which must match the version of the other media
|
||||||
library being used.
|
modules being used.
|
||||||
|
|
||||||
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
||||||
locally. Instructions for doing this can be found in ExoPlayer's
|
locally. Instructions for doing this can be found in ExoPlayer's
|
||||||
@ -24,7 +24,7 @@ locally. Instructions for doing this can be found in ExoPlayer's
|
|||||||
|
|
||||||
[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
|
||||||
|
|
||||||
## Using the extension ##
|
## Using the module
|
||||||
|
|
||||||
Create a `CastPlayer` and use it to integrate Cast into your app using
|
Create a `CastPlayer` and use it to integrate Cast into your app using
|
||||||
ExoPlayer's common `Player` interface.
|
ExoPlayer's common `Player` interface.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# ExoPlayer Cronet extension #
|
# ExoPlayer Cronet extension
|
||||||
|
|
||||||
The Cronet extension is an [HttpDataSource][] implementation that uses
|
The Cronet extension is an [HttpDataSource][] implementation that uses
|
||||||
[Cronet][].
|
[Cronet][].
|
||||||
@ -14,16 +14,16 @@ for most use cases.
|
|||||||
[HttpDataSource]: https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/upstream/HttpDataSource.html
|
[HttpDataSource]: https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/upstream/HttpDataSource.html
|
||||||
[Cronet]: https://developer.android.com/guide/topics/connectivity/cronet
|
[Cronet]: https://developer.android.com/guide/topics/connectivity/cronet
|
||||||
|
|
||||||
## Getting the extension ##
|
## Getting the module
|
||||||
|
|
||||||
The easiest way to use the extension is to add it as a gradle dependency:
|
The easiest way to get the module is to add it as a gradle dependency:
|
||||||
|
|
||||||
```gradle
|
```gradle
|
||||||
implementation 'com.google.android.exoplayer:extension-cronet:2.X.X'
|
implementation 'com.google.android.exoplayer:extension-cronet:2.X.X'
|
||||||
```
|
```
|
||||||
|
|
||||||
where `2.X.X` is the version, which must match the version of the ExoPlayer
|
where `2.X.X` is the version, which must match the version of the other media
|
||||||
library being used.
|
modules being used.
|
||||||
|
|
||||||
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
||||||
locally. Instructions for doing this can be found in ExoPlayer's
|
locally. Instructions for doing this can be found in ExoPlayer's
|
||||||
@ -31,7 +31,7 @@ locally. Instructions for doing this can be found in ExoPlayer's
|
|||||||
|
|
||||||
[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
|
||||||
|
|
||||||
## Using the extension ##
|
## Using the module
|
||||||
|
|
||||||
ExoPlayer requests data through `DataSource` instances. These instances are
|
ExoPlayer requests data through `DataSource` instances. These instances are
|
||||||
obtained from instances of `DataSource.Factory`, which are instantiated and
|
obtained from instances of `DataSource.Factory`, which are instantiated and
|
||||||
@ -47,16 +47,16 @@ new DefaultDataSourceFactory(
|
|||||||
/* baseDataSourceFactory= */ new CronetDataSource.Factory(...) );
|
/* baseDataSourceFactory= */ new CronetDataSource.Factory(...) );
|
||||||
```
|
```
|
||||||
|
|
||||||
## Cronet implementations ##
|
## Cronet implementations
|
||||||
|
|
||||||
To instantiate a `CronetDataSource.Factory` you'll need a `CronetEngine`. A
|
To instantiate a `CronetDataSource.Factory` you'll need a `CronetEngine`. A
|
||||||
`CronetEngine` can be obtained from one of a number of Cronet implementations.
|
`CronetEngine` can be obtained from one of a number of Cronet implementations.
|
||||||
It's recommended that an application should only have a single `CronetEngine`
|
It's recommended that an application should only have a single `CronetEngine`
|
||||||
instance.
|
instance.
|
||||||
|
|
||||||
### Available implementations ###
|
### Available implementations
|
||||||
|
|
||||||
#### Google Play Services ####
|
#### Google Play Services
|
||||||
|
|
||||||
By default, ExoPlayer's Cronet extension depends on
|
By default, ExoPlayer's Cronet extension depends on
|
||||||
`com.google.android.gms:play-services-cronet`, which loads an implementation of
|
`com.google.android.gms:play-services-cronet`, which loads an implementation of
|
||||||
@ -72,7 +72,7 @@ includes one of the alternative Cronet implementations described below, you will
|
|||||||
not be able to instantiate a `CronetEngine` in this case. Your application code
|
not be able to instantiate a `CronetEngine` in this case. Your application code
|
||||||
should handle this by falling back to use `DefaultHttpDataSource` instead.
|
should handle this by falling back to use `DefaultHttpDataSource` instead.
|
||||||
|
|
||||||
#### Cronet Embedded ####
|
#### Cronet Embedded
|
||||||
|
|
||||||
Cronet Embedded bundles a full Cronet implementation directly into your
|
Cronet Embedded bundles a full Cronet implementation directly into your
|
||||||
application. To use it, add an additional dependency on
|
application. To use it, add an additional dependency on
|
||||||
@ -84,7 +84,7 @@ use of Cronet Embedded may be appropriate if:
|
|||||||
not widely available.
|
not widely available.
|
||||||
* You want to control the exact version of the Cronet implementation being used.
|
* You want to control the exact version of the Cronet implementation being used.
|
||||||
|
|
||||||
#### Cronet Fallback ####
|
#### Cronet Fallback
|
||||||
|
|
||||||
There's also a fallback implementation of Cronet, which uses Android's default
|
There's also a fallback implementation of Cronet, which uses Android's default
|
||||||
network stack under the hood. It can be used by adding a dependency on
|
network stack under the hood. It can be used by adding a dependency on
|
||||||
@ -98,7 +98,7 @@ you know when your application's `CronetEngine` has been obtained from the
|
|||||||
fallback implementation. In this case, avoid using it with ExoPlayer and use
|
fallback implementation. In this case, avoid using it with ExoPlayer and use
|
||||||
`DefaultHttpDataSource` instead.
|
`DefaultHttpDataSource` instead.
|
||||||
|
|
||||||
### CronetEngine instantiation ###
|
### CronetEngine instantiation
|
||||||
|
|
||||||
Cronet's [Send a simple request][] page documents the simplest way of building a
|
Cronet's [Send a simple request][] page documents the simplest way of building a
|
||||||
`CronetEngine`, which is suitable if your application is only using the
|
`CronetEngine`, which is suitable if your application is only using the
|
||||||
@ -121,7 +121,7 @@ still using it for other networking performed by your application.
|
|||||||
|
|
||||||
[Send a simple request]: https://developer.android.com/guide/topics/connectivity/cronet/start
|
[Send a simple request]: https://developer.android.com/guide/topics/connectivity/cronet/start
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.cronet.*`
|
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.cronet.*`
|
||||||
belong to this module.
|
belong to this module.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
# ExoPlayer FFmpeg extension #
|
# ExoPlayer FFmpeg extension
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
## License note ##
|
## License note
|
||||||
|
|
||||||
Please note that whilst the code in this repository is licensed under
|
Please note that whilst the code in this repository is licensed under
|
||||||
[Apache 2.0][], using this extension also requires building and including one or
|
[Apache 2.0][], using this extension also requires building and including one or
|
||||||
@ -11,7 +11,7 @@ more external libraries as described below. These are licensed separately.
|
|||||||
|
|
||||||
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
|
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
|
||||||
|
|
||||||
## Build instructions (Linux, macOS) ##
|
## Build instructions (Linux, macOS)
|
||||||
|
|
||||||
To use this extension you need to clone the ExoPlayer repository and depend on
|
To use this extension you need to clone the ExoPlayer repository and depend on
|
||||||
its modules locally. Instructions for doing this can be found in ExoPlayer's
|
its modules locally. Instructions for doing this can be found in ExoPlayer's
|
||||||
@ -77,14 +77,14 @@ cd "${FFMPEG_EXT_PATH}/jni" && \
|
|||||||
"${FFMPEG_EXT_PATH}" "${NDK_PATH}" "${HOST_PLATFORM}" "${ENABLED_DECODERS[@]}"
|
"${FFMPEG_EXT_PATH}" "${NDK_PATH}" "${HOST_PLATFORM}" "${ENABLED_DECODERS[@]}"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Build instructions (Windows) ##
|
## Build instructions (Windows)
|
||||||
|
|
||||||
We do not provide support for building this extension on Windows, however it
|
We do not provide support for building this extension on Windows, however it
|
||||||
should be possible to follow the Linux instructions in [Windows PowerShell][].
|
should be possible to follow the Linux instructions in [Windows PowerShell][].
|
||||||
|
|
||||||
[Windows PowerShell]: https://docs.microsoft.com/en-us/powershell/scripting/getting-started/getting-started-with-windows-powershell
|
[Windows PowerShell]: https://docs.microsoft.com/en-us/powershell/scripting/getting-started/getting-started-with-windows-powershell
|
||||||
|
|
||||||
## Using the extension ##
|
## Using the module
|
||||||
|
|
||||||
Once you've followed the instructions above to check out, build and depend on
|
Once you've followed the instructions above to check out, build and depend on
|
||||||
the extension, the next step is to tell ExoPlayer to use `FfmpegAudioRenderer`.
|
the extension, the next step is to tell ExoPlayer to use `FfmpegAudioRenderer`.
|
||||||
@ -116,7 +116,7 @@ then implement your own logic to use the renderer for a given track.
|
|||||||
[#2781]: https://github.com/google/ExoPlayer/issues/2781
|
[#2781]: https://github.com/google/ExoPlayer/issues/2781
|
||||||
[Supported formats]: https://exoplayer.dev/supported-formats.html#ffmpeg-extension
|
[Supported formats]: https://exoplayer.dev/supported-formats.html#ffmpeg-extension
|
||||||
|
|
||||||
## Using the extension in the demo application ##
|
## Using the module in the demo application
|
||||||
|
|
||||||
To try out playback using the extension in the [demo application][], see
|
To try out playback using the extension in the [demo application][], see
|
||||||
[enabling extension decoders][].
|
[enabling extension decoders][].
|
||||||
@ -124,7 +124,7 @@ To try out playback using the extension in the [demo application][], see
|
|||||||
[demo application]: https://exoplayer.dev/demo-application.html
|
[demo application]: https://exoplayer.dev/demo-application.html
|
||||||
[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders
|
[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [Troubleshooting using extensions][]
|
* [Troubleshooting using extensions][]
|
||||||
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.ffmpeg.*`
|
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.ffmpeg.*`
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
# ExoPlayer Flac extension #
|
# ExoPlayer Flac extension
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
## License note ##
|
## License note
|
||||||
|
|
||||||
Please note that whilst the code in this repository is licensed under
|
Please note that whilst the code in this repository is licensed under
|
||||||
[Apache 2.0][], using this extension also requires building and including one or
|
[Apache 2.0][], using this extension also requires building and including one or
|
||||||
@ -11,7 +11,7 @@ more external libraries as described below. These are licensed separately.
|
|||||||
|
|
||||||
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
|
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
|
||||||
|
|
||||||
## Build instructions (Linux, macOS) ##
|
## Build instructions (Linux, macOS)
|
||||||
|
|
||||||
To use this extension you need to clone the ExoPlayer repository and depend on
|
To use this extension you need to clone the ExoPlayer repository and depend on
|
||||||
its modules locally. Instructions for doing this can be found in ExoPlayer's
|
its modules locally. Instructions for doing this can be found in ExoPlayer's
|
||||||
@ -53,27 +53,27 @@ ${NDK_PATH}/ndk-build APP_ABI=all -j4
|
|||||||
[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
|
||||||
[Android NDK]: https://developer.android.com/tools/sdk/ndk/index.html
|
[Android NDK]: https://developer.android.com/tools/sdk/ndk/index.html
|
||||||
|
|
||||||
## Build instructions (Windows) ##
|
## Build instructions (Windows)
|
||||||
|
|
||||||
We do not provide support for building this extension on Windows, however it
|
We do not provide support for building this extension on Windows, however it
|
||||||
should be possible to follow the Linux instructions in [Windows PowerShell][].
|
should be possible to follow the Linux instructions in [Windows PowerShell][].
|
||||||
|
|
||||||
[Windows PowerShell]: https://docs.microsoft.com/en-us/powershell/scripting/getting-started/getting-started-with-windows-powershell
|
[Windows PowerShell]: https://docs.microsoft.com/en-us/powershell/scripting/getting-started/getting-started-with-windows-powershell
|
||||||
|
|
||||||
## Using the extension ##
|
## Using the module
|
||||||
|
|
||||||
Once you've followed the instructions above to check out, build and depend on
|
Once you've followed the instructions above to check out, build and depend on
|
||||||
the extension, the next step is to tell ExoPlayer to use the extractor and/or
|
the extension, the next step is to tell ExoPlayer to use the extractor and/or
|
||||||
renderer.
|
renderer.
|
||||||
|
|
||||||
### Using `FlacExtractor` ###
|
### Using `FlacExtractor`
|
||||||
|
|
||||||
`FlacExtractor` is used via `ProgressiveMediaSource`. If you're using
|
`FlacExtractor` is used via `ProgressiveMediaSource`. If you're using
|
||||||
`DefaultExtractorsFactory`, `FlacExtractor` will automatically be used to read
|
`DefaultExtractorsFactory`, `FlacExtractor` will automatically be used to read
|
||||||
`.flac` files. If you're not using `DefaultExtractorsFactory`, return a
|
`.flac` files. If you're not using `DefaultExtractorsFactory`, return a
|
||||||
`FlacExtractor` from your `ExtractorsFactory.createExtractors` implementation.
|
`FlacExtractor` from your `ExtractorsFactory.createExtractors` implementation.
|
||||||
|
|
||||||
### Using `LibflacAudioRenderer` ###
|
### Using `LibflacAudioRenderer`
|
||||||
|
|
||||||
* If you're passing a `DefaultRenderersFactory` to `ExoPlayer.Builder`, you can
|
* If you're passing a `DefaultRenderersFactory` to `ExoPlayer.Builder`, you can
|
||||||
enable using the extension by setting the `extensionRendererMode` parameter of
|
enable using the extension by setting the `extensionRendererMode` parameter of
|
||||||
@ -96,7 +96,7 @@ 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.
|
||||||
|
|
||||||
## Using the extension in the demo application ##
|
## Using the module in the demo application
|
||||||
|
|
||||||
To try out playback using the extension in the [demo application][], see
|
To try out playback using the extension in the [demo application][], see
|
||||||
[enabling extension decoders][].
|
[enabling extension decoders][].
|
||||||
@ -104,7 +104,7 @@ To try out playback using the extension in the [demo application][], see
|
|||||||
[demo application]: https://exoplayer.dev/demo-application.html
|
[demo application]: https://exoplayer.dev/demo-application.html
|
||||||
[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders
|
[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.flac.*`
|
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.flac.*`
|
||||||
belong to this module.
|
belong to this module.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# ExoPlayer IMA extension #
|
# ExoPlayer IMA extension
|
||||||
|
|
||||||
The IMA extension is an [AdsLoader][] implementation wrapping the
|
The IMA extension is an [AdsLoader][] 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
|
||||||
@ -7,16 +7,16 @@ alongside content.
|
|||||||
[IMA]: https://developers.google.com/interactive-media-ads/docs/sdks/android/
|
[IMA]: https://developers.google.com/interactive-media-ads/docs/sdks/android/
|
||||||
[AdsLoader]: https://exoplayer.dev/doc/reference/index.html?com/google/android/exoplayer2/source/ads/AdsLoader.html
|
[AdsLoader]: https://exoplayer.dev/doc/reference/index.html?com/google/android/exoplayer2/source/ads/AdsLoader.html
|
||||||
|
|
||||||
## Getting the extension ##
|
## Getting the module
|
||||||
|
|
||||||
The easiest way to use the extension is to add it as a gradle dependency:
|
The easiest way to get the module is to add it as a gradle dependency:
|
||||||
|
|
||||||
```gradle
|
```gradle
|
||||||
implementation 'com.google.android.exoplayer:extension-ima:2.X.X'
|
implementation 'com.google.android.exoplayer:extension-ima:2.X.X'
|
||||||
```
|
```
|
||||||
|
|
||||||
where `2.X.X` is the version, which must match the version of the ExoPlayer
|
where `2.X.X` is the version, which must match the version of the other media
|
||||||
library being used.
|
modules being used.
|
||||||
|
|
||||||
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
||||||
locally. Instructions for doing this can be found in ExoPlayer's
|
locally. Instructions for doing this can be found in ExoPlayer's
|
||||||
@ -24,7 +24,7 @@ locally. Instructions for doing this can be found in ExoPlayer's
|
|||||||
|
|
||||||
[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
|
||||||
|
|
||||||
## Using the extension ##
|
## Using the module
|
||||||
|
|
||||||
To use the extension, follow the instructions on the
|
To use the extension, follow the instructions on the
|
||||||
[Ad insertion page](https://exoplayer.dev/ad-insertion.html#declarative-ad-support)
|
[Ad insertion page](https://exoplayer.dev/ad-insertion.html#declarative-ad-support)
|
||||||
@ -52,7 +52,7 @@ in the "IMA sample ad tags" section of the sample chooser. The demo app's
|
|||||||
`PlayerActivity` also shows how to persist the `ImaAdsLoader` instance and the
|
`PlayerActivity` also shows how to persist the `ImaAdsLoader` instance and the
|
||||||
player position when backgrounded during ad playback.
|
player position when backgrounded during ad playback.
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [ExoPlayer documentation on ad insertion][]
|
* [ExoPlayer documentation on ad insertion][]
|
||||||
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.ima.*`
|
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.ima.*`
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# ExoPlayer Leanback extension #
|
# ExoPlayer Leanback extension
|
||||||
|
|
||||||
This [Leanback][] Extension provides a [PlayerAdapter][] implementation for
|
This [Leanback][] Extension provides a [PlayerAdapter][] implementation for
|
||||||
ExoPlayer.
|
ExoPlayer.
|
||||||
@ -6,16 +6,16 @@ ExoPlayer.
|
|||||||
[PlayerAdapter]: https://developer.android.com/reference/android/support/v17/leanback/media/PlayerAdapter.html
|
[PlayerAdapter]: https://developer.android.com/reference/android/support/v17/leanback/media/PlayerAdapter.html
|
||||||
[Leanback]: https://developer.android.com/reference/android/support/v17/leanback/package-summary.html
|
[Leanback]: https://developer.android.com/reference/android/support/v17/leanback/package-summary.html
|
||||||
|
|
||||||
## Getting the extension ##
|
## Getting the module
|
||||||
|
|
||||||
The easiest way to use the extension is to add it as a gradle dependency:
|
The easiest way to get the module is to add it as a gradle dependency:
|
||||||
|
|
||||||
```gradle
|
```gradle
|
||||||
implementation 'com.google.android.exoplayer:extension-leanback:2.X.X'
|
implementation 'com.google.android.exoplayer:extension-leanback:2.X.X'
|
||||||
```
|
```
|
||||||
|
|
||||||
where `2.X.X` is the version, which must match the version of the ExoPlayer
|
where `2.X.X` is the version, which must match the version of the other media
|
||||||
library being used.
|
modules being used.
|
||||||
|
|
||||||
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
||||||
locally. Instructions for doing this can be found in ExoPlayer's
|
locally. Instructions for doing this can be found in ExoPlayer's
|
||||||
@ -23,7 +23,7 @@ locally. Instructions for doing this can be found in ExoPlayer's
|
|||||||
|
|
||||||
[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 ##
|
## Links
|
||||||
|
|
||||||
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.leanback.*`
|
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.leanback.*`
|
||||||
belong to this module.
|
belong to this module.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# ExoPlayer Media2 extension #
|
# ExoPlayer Media2 extension
|
||||||
|
|
||||||
The Media2 extension provides builders for [SessionPlayer][] and [MediaSession.SessionCallback][] in
|
The Media2 extension provides builders for [SessionPlayer][] and [MediaSession.SessionCallback][] in
|
||||||
the [Media2 library][].
|
the [Media2 library][].
|
||||||
@ -6,16 +6,16 @@ the [Media2 library][].
|
|||||||
Compared to [MediaSessionConnector][] that uses [MediaSessionCompat][], this provides finer grained
|
Compared to [MediaSessionConnector][] that uses [MediaSessionCompat][], this provides finer grained
|
||||||
control for incoming calls, so you can selectively allow/reject commands per controller.
|
control for incoming calls, so you can selectively allow/reject commands per controller.
|
||||||
|
|
||||||
## Getting the extension ##
|
## Getting the module
|
||||||
|
|
||||||
The easiest way to use the extension is to add it as a gradle dependency:
|
The easiest way to get the module is to add it as a gradle dependency:
|
||||||
|
|
||||||
```gradle
|
```gradle
|
||||||
implementation 'com.google.android.exoplayer:extension-media2:2.X.X'
|
implementation 'com.google.android.exoplayer:extension-media2:2.X.X'
|
||||||
```
|
```
|
||||||
|
|
||||||
where `2.X.X` is the version, which must match the version of the ExoPlayer
|
where `2.X.X` is the version, which must match the version of the other media
|
||||||
library being used.
|
modules being used.
|
||||||
|
|
||||||
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
||||||
locally. Instructions for doing this can be found in ExoPlayer's
|
locally. Instructions for doing this can be found in ExoPlayer's
|
||||||
@ -23,20 +23,20 @@ locally. Instructions for doing this can be found in ExoPlayer's
|
|||||||
|
|
||||||
[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
|
||||||
|
|
||||||
## Using the extension ##
|
## Using the module
|
||||||
|
|
||||||
### Using `SessionPlayerConnector` ###
|
### Using `SessionPlayerConnector`
|
||||||
|
|
||||||
`SessionPlayerConnector` is a [SessionPlayer][] implementation wrapping a given `Player`.
|
`SessionPlayerConnector` is a [SessionPlayer][] implementation wrapping a given `Player`.
|
||||||
You can use a [SessionPlayer][] instance to build a [MediaSession][], or to set the player
|
You can use a [SessionPlayer][] instance to build a [MediaSession][], or to set the player
|
||||||
associated with a [VideoView][] or [MediaControlView][]
|
associated with a [VideoView][] or [MediaControlView][]
|
||||||
|
|
||||||
### Using `SessionCallbackBuilder` ###
|
### Using `SessionCallbackBuilder`
|
||||||
|
|
||||||
`SessionCallbackBuilder` lets you build a [MediaSession.SessionCallback][] instance given its
|
`SessionCallbackBuilder` lets you build a [MediaSession.SessionCallback][] instance given its
|
||||||
collaborators. You can use a [MediaSession.SessionCallback][] to build a [MediaSession][].
|
collaborators. You can use a [MediaSession.SessionCallback][] to build a [MediaSession][].
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [Javadoc][]: Classes matching
|
* [Javadoc][]: Classes matching
|
||||||
`com.google.android.exoplayer2.ext.media2.*` belong to this module.
|
`com.google.android.exoplayer2.ext.media2.*` belong to this module.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# ExoPlayer MediaSession extension #
|
# ExoPlayer MediaSession extension
|
||||||
|
|
||||||
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
|
||||||
@ -7,16 +7,16 @@ behaviour can be extended to support other playback and custom actions.
|
|||||||
|
|
||||||
[MediaSession]: https://developer.android.com/reference/android/support/v4/media/session/MediaSessionCompat.html
|
[MediaSession]: https://developer.android.com/reference/android/support/v4/media/session/MediaSessionCompat.html
|
||||||
|
|
||||||
## Getting the extension ##
|
## Getting the module
|
||||||
|
|
||||||
The easiest way to use the extension is to add it as a gradle dependency:
|
The easiest way to get the module is to add it as a gradle dependency:
|
||||||
|
|
||||||
```gradle
|
```gradle
|
||||||
implementation 'com.google.android.exoplayer:extension-mediasession:2.X.X'
|
implementation 'com.google.android.exoplayer:extension-mediasession:2.X.X'
|
||||||
```
|
```
|
||||||
|
|
||||||
where `2.X.X` is the version, which must match the version of the ExoPlayer
|
where `2.X.X` is the version, which must match the version of the other media
|
||||||
library being used.
|
modules being used.
|
||||||
|
|
||||||
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
||||||
locally. Instructions for doing this can be found in ExoPlayer's
|
locally. Instructions for doing this can be found in ExoPlayer's
|
||||||
@ -24,7 +24,7 @@ locally. Instructions for doing this can be found in ExoPlayer's
|
|||||||
|
|
||||||
[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 ##
|
## Links
|
||||||
|
|
||||||
* [Javadoc][]: Classes matching
|
* [Javadoc][]: Classes matching
|
||||||
`com.google.android.exoplayer2.ext.mediasession.*` belong to this module.
|
`com.google.android.exoplayer2.ext.mediasession.*` belong to this module.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# ExoPlayer OkHttp extension #
|
# ExoPlayer OkHttp extension
|
||||||
|
|
||||||
The OkHttp extension is an [HttpDataSource][] implementation that uses Square's
|
The OkHttp extension is an [HttpDataSource][] implementation that uses Square's
|
||||||
[OkHttp][].
|
[OkHttp][].
|
||||||
@ -9,7 +9,7 @@ applications. It supports the HTTP and HTTP/2 protocols.
|
|||||||
[HttpDataSource]: https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/upstream/HttpDataSource.html
|
[HttpDataSource]: https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/upstream/HttpDataSource.html
|
||||||
[OkHttp]: https://square.github.io/okhttp/
|
[OkHttp]: https://square.github.io/okhttp/
|
||||||
|
|
||||||
## License note ##
|
## License note
|
||||||
|
|
||||||
Please note that whilst the code in this repository is licensed under
|
Please note that whilst the code in this repository is licensed under
|
||||||
[Apache 2.0][], using this extension requires depending on OkHttp, which is
|
[Apache 2.0][], using this extension requires depending on OkHttp, which is
|
||||||
@ -17,16 +17,16 @@ licensed separately.
|
|||||||
|
|
||||||
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
|
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
|
||||||
|
|
||||||
## Getting the extension ##
|
## Getting the module
|
||||||
|
|
||||||
The easiest way to use the extension is to add it as a gradle dependency:
|
The easiest way to get the module is to add it as a gradle dependency:
|
||||||
|
|
||||||
```gradle
|
```gradle
|
||||||
implementation 'com.google.android.exoplayer:extension-okhttp:2.X.X'
|
implementation 'com.google.android.exoplayer:extension-okhttp:2.X.X'
|
||||||
```
|
```
|
||||||
|
|
||||||
where `2.X.X` is the version, which must match the version of the ExoPlayer
|
where `2.X.X` is the version, which must match the version of the other media
|
||||||
library being used.
|
modules being used.
|
||||||
|
|
||||||
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
||||||
locally. Instructions for doing this can be found in ExoPlayer's
|
locally. Instructions for doing this can be found in ExoPlayer's
|
||||||
@ -34,7 +34,7 @@ locally. Instructions for doing this can be found in ExoPlayer's
|
|||||||
|
|
||||||
[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
|
||||||
|
|
||||||
## Using the extension ##
|
## Using the module
|
||||||
|
|
||||||
ExoPlayer requests data through `DataSource` instances. These instances are
|
ExoPlayer requests data through `DataSource` instances. These instances are
|
||||||
obtained from instances of `DataSource.Factory`, which are instantiated and
|
obtained from instances of `DataSource.Factory`, which are instantiated and
|
||||||
@ -50,7 +50,7 @@ new DefaultDataSourceFactory(
|
|||||||
/* baseDataSourceFactory= */ new OkHttpDataSource.Factory(...));
|
/* baseDataSourceFactory= */ new OkHttpDataSource.Factory(...));
|
||||||
```
|
```
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.okhttp.*`
|
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.okhttp.*`
|
||||||
belong to this module.
|
belong to this module.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
# ExoPlayer Opus extension #
|
# ExoPlayer Opus extension
|
||||||
|
|
||||||
The Opus extension provides `LibopusAudioRenderer`, which uses libopus (the Opus
|
The Opus extension provides `LibopusAudioRenderer`, which uses libopus (the Opus
|
||||||
decoding library) to decode Opus audio.
|
decoding library) to decode Opus audio.
|
||||||
|
|
||||||
## License note ##
|
## License note
|
||||||
|
|
||||||
Please note that whilst the code in this repository is licensed under
|
Please note that whilst the code in this repository is licensed under
|
||||||
[Apache 2.0][], using this extension also requires building and including one or
|
[Apache 2.0][], using this extension also requires building and including one or
|
||||||
@ -11,7 +11,7 @@ more external libraries as described below. These are licensed separately.
|
|||||||
|
|
||||||
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
|
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
|
||||||
|
|
||||||
## Build instructions (Linux, macOS) ##
|
## Build instructions (Linux, macOS)
|
||||||
|
|
||||||
To use this extension you need to clone the ExoPlayer repository and depend on
|
To use this extension you need to clone the ExoPlayer repository and depend on
|
||||||
its modules locally. Instructions for doing this can be found in ExoPlayer's
|
its modules locally. Instructions for doing this can be found in ExoPlayer's
|
||||||
@ -58,14 +58,14 @@ ${NDK_PATH}/ndk-build APP_ABI=all -j4
|
|||||||
[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
|
||||||
[Android NDK]: https://developer.android.com/tools/sdk/ndk/index.html
|
[Android NDK]: https://developer.android.com/tools/sdk/ndk/index.html
|
||||||
|
|
||||||
## Build instructions (Windows) ##
|
## Build instructions (Windows)
|
||||||
|
|
||||||
We do not provide support for building this extension on Windows, however it
|
We do not provide support for building this extension on Windows, however it
|
||||||
should be possible to follow the Linux instructions in [Windows PowerShell][].
|
should be possible to follow the Linux instructions in [Windows PowerShell][].
|
||||||
|
|
||||||
[Windows PowerShell]: https://docs.microsoft.com/en-us/powershell/scripting/getting-started/getting-started-with-windows-powershell
|
[Windows PowerShell]: https://docs.microsoft.com/en-us/powershell/scripting/getting-started/getting-started-with-windows-powershell
|
||||||
|
|
||||||
## Notes ##
|
## Notes
|
||||||
|
|
||||||
* Every time there is a change to the libopus checkout:
|
* Every time there is a change to the libopus checkout:
|
||||||
* Arm assembly should be converted by running `convert_android_asm.sh`
|
* Arm assembly should be converted by running `convert_android_asm.sh`
|
||||||
@ -73,7 +73,7 @@ should be possible to follow the Linux instructions in [Windows PowerShell][].
|
|||||||
* If you want to use your own version of libopus, place it in
|
* If you want to use your own version of libopus, place it in
|
||||||
`${OPUS_EXT_PATH}/jni/libopus`.
|
`${OPUS_EXT_PATH}/jni/libopus`.
|
||||||
|
|
||||||
## Using the extension ##
|
## Using the module
|
||||||
|
|
||||||
Once you've followed the instructions above to check out, build and depend on
|
Once you've followed the instructions above to check out, build and depend on
|
||||||
the extension, the next step is to tell ExoPlayer to use `LibopusAudioRenderer`.
|
the extension, the next step is to tell ExoPlayer to use `LibopusAudioRenderer`.
|
||||||
@ -100,7 +100,7 @@ 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.
|
||||||
|
|
||||||
## Using the extension in the demo application ##
|
## Using the module in the demo application
|
||||||
|
|
||||||
To try out playback using the extension in the [demo application][], see
|
To try out playback using the extension in the [demo application][], see
|
||||||
[enabling extension decoders][].
|
[enabling extension decoders][].
|
||||||
@ -108,7 +108,7 @@ To try out playback using the extension in the [demo application][], see
|
|||||||
[demo application]: https://exoplayer.dev/demo-application.html
|
[demo application]: https://exoplayer.dev/demo-application.html
|
||||||
[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders
|
[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.opus.*`
|
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.opus.*`
|
||||||
belong to this module.
|
belong to this module.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# ExoPlayer RTMP extension #
|
# ExoPlayer RTMP extension
|
||||||
|
|
||||||
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][].
|
||||||
@ -7,7 +7,7 @@ streams using [LibRtmp Client for Android][].
|
|||||||
[RTMP]: https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol
|
[RTMP]: https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol
|
||||||
[LibRtmp Client for Android]: https://github.com/ant-media/LibRtmp-Client-for-Android
|
[LibRtmp Client for Android]: https://github.com/ant-media/LibRtmp-Client-for-Android
|
||||||
|
|
||||||
## License note ##
|
## License note
|
||||||
|
|
||||||
Please note that whilst the code in this repository is licensed under
|
Please note that whilst the code in this repository is licensed under
|
||||||
[Apache 2.0][], using this extension requires depending on LibRtmp Client for
|
[Apache 2.0][], using this extension requires depending on LibRtmp Client for
|
||||||
@ -15,16 +15,16 @@ Android, which is licensed separately.
|
|||||||
|
|
||||||
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
|
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
|
||||||
|
|
||||||
## Getting the extension ##
|
## Getting the module
|
||||||
|
|
||||||
The easiest way to use the extension is to add it as a gradle dependency:
|
The easiest way to get the module is to add it as a gradle dependency:
|
||||||
|
|
||||||
```gradle
|
```gradle
|
||||||
implementation 'com.google.android.exoplayer:extension-rtmp:2.X.X'
|
implementation 'com.google.android.exoplayer:extension-rtmp:2.X.X'
|
||||||
```
|
```
|
||||||
|
|
||||||
where `2.X.X` is the version, which must match the version of the ExoPlayer
|
where `2.X.X` is the version, which must match the version of the other media
|
||||||
library being used.
|
modules being used.
|
||||||
|
|
||||||
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
||||||
locally. Instructions for doing this can be found in ExoPlayer's
|
locally. Instructions for doing this can be found in ExoPlayer's
|
||||||
@ -32,7 +32,7 @@ locally. Instructions for doing this can be found in ExoPlayer's
|
|||||||
|
|
||||||
[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
|
||||||
|
|
||||||
## Using the extension ##
|
## Using the module
|
||||||
|
|
||||||
ExoPlayer requests data through `DataSource` instances. These instances are
|
ExoPlayer requests data through `DataSource` instances. These instances are
|
||||||
obtained from instances of `DataSource.Factory`, which are instantiated and
|
obtained from instances of `DataSource.Factory`, which are instantiated and
|
||||||
@ -47,7 +47,7 @@ doesn't need to handle any other protocols, you can update any
|
|||||||
`DataSource.Factory` instantiations in your application code to use
|
`DataSource.Factory` instantiations in your application code to use
|
||||||
`RtmpDataSource.Factory` directly.
|
`RtmpDataSource.Factory` directly.
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.rtmp.*`
|
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.rtmp.*`
|
||||||
belong to this module.
|
belong to this module.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
# ExoPlayer VP9 extension #
|
# ExoPlayer VP9 extension
|
||||||
|
|
||||||
The VP9 extension provides `LibvpxVideoRenderer`, which uses libvpx (the VPx
|
The VP9 extension provides `LibvpxVideoRenderer`, which uses libvpx (the VPx
|
||||||
decoding library) to decode VP9 video.
|
decoding library) to decode VP9 video.
|
||||||
|
|
||||||
## License note ##
|
## License note
|
||||||
|
|
||||||
Please note that whilst the code in this repository is licensed under
|
Please note that whilst the code in this repository is licensed under
|
||||||
[Apache 2.0][], using this extension also requires building and including one or
|
[Apache 2.0][], using this extension also requires building and including one or
|
||||||
@ -11,7 +11,7 @@ more external libraries as described below. These are licensed separately.
|
|||||||
|
|
||||||
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
|
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
|
||||||
|
|
||||||
## Build instructions (Linux, macOS) ##
|
## Build instructions (Linux, macOS)
|
||||||
|
|
||||||
To use this extension you need to clone the ExoPlayer repository and depend on
|
To use this extension you need to clone the ExoPlayer repository and depend on
|
||||||
its modules locally. Instructions for doing this can be found in ExoPlayer's
|
its modules locally. Instructions for doing this can be found in ExoPlayer's
|
||||||
@ -65,14 +65,14 @@ ${NDK_PATH}/ndk-build APP_ABI=all -j4
|
|||||||
[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
|
||||||
[Android NDK]: https://developer.android.com/tools/sdk/ndk/index.html
|
[Android NDK]: https://developer.android.com/tools/sdk/ndk/index.html
|
||||||
|
|
||||||
## Build instructions (Windows) ##
|
## Build instructions (Windows)
|
||||||
|
|
||||||
We do not provide support for building this extension on Windows, however it
|
We do not provide support for building this extension on Windows, however it
|
||||||
should be possible to follow the Linux instructions in [Windows PowerShell][].
|
should be possible to follow the Linux instructions in [Windows PowerShell][].
|
||||||
|
|
||||||
[Windows PowerShell]: https://docs.microsoft.com/en-us/powershell/scripting/getting-started/getting-started-with-windows-powershell
|
[Windows PowerShell]: https://docs.microsoft.com/en-us/powershell/scripting/getting-started/getting-started-with-windows-powershell
|
||||||
|
|
||||||
## Notes ##
|
## Notes
|
||||||
|
|
||||||
* Every time there is a change to the libvpx checkout:
|
* Every time there is a change to the libvpx checkout:
|
||||||
* Android config scripts should be re-generated by running
|
* Android config scripts should be re-generated by running
|
||||||
@ -83,7 +83,7 @@ should be possible to follow the Linux instructions in [Windows PowerShell][].
|
|||||||
`generate_libvpx_android_configs.sh` and the makefiles may need to be modified
|
`generate_libvpx_android_configs.sh` and the makefiles may need to be modified
|
||||||
to work with arbitrary versions of libvpx.
|
to work with arbitrary versions of libvpx.
|
||||||
|
|
||||||
## Using the extension ##
|
## Using the module
|
||||||
|
|
||||||
Once you've followed the instructions above to check out, build and depend on
|
Once you've followed the instructions above to check out, build and depend on
|
||||||
the extension, the next step is to tell ExoPlayer to use `LibvpxVideoRenderer`.
|
the extension, the next step is to tell ExoPlayer to use `LibvpxVideoRenderer`.
|
||||||
@ -111,7 +111,7 @@ a custom track selector the choice of `Renderer` is up to your implementation,
|
|||||||
so you need to make sure you are passing an `LibvpxVideoRenderer` to the
|
so you need to make sure you are passing an `LibvpxVideoRenderer` 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.
|
||||||
|
|
||||||
## Using the extension in the demo application ##
|
## Using the module in the demo application
|
||||||
|
|
||||||
To try out playback using the extension in the [demo application][], see
|
To try out playback using the extension in the [demo application][], see
|
||||||
[enabling extension decoders][].
|
[enabling extension decoders][].
|
||||||
@ -119,7 +119,7 @@ To try out playback using the extension in the [demo application][], see
|
|||||||
[demo application]: https://exoplayer.dev/demo-application.html
|
[demo application]: https://exoplayer.dev/demo-application.html
|
||||||
[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders
|
[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders
|
||||||
|
|
||||||
## Rendering options ##
|
## Rendering options
|
||||||
|
|
||||||
There are two possibilities for rendering the output `LibvpxVideoRenderer`
|
There are two possibilities for rendering the output `LibvpxVideoRenderer`
|
||||||
gets from the libvpx decoder:
|
gets from the libvpx decoder:
|
||||||
@ -144,7 +144,7 @@ gets from the libvpx decoder:
|
|||||||
Note: Although the default option uses `ANativeWindow`, based on our testing the
|
Note: Although the default option uses `ANativeWindow`, based on our testing the
|
||||||
GL rendering mode has better performance, so should be preferred.
|
GL rendering mode has better performance, so should be preferred.
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.vp9.*`
|
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.vp9.*`
|
||||||
belong to this module.
|
belong to this module.
|
||||||
|
@ -4,16 +4,16 @@ This extension provides a Scheduler implementation which uses [WorkManager][].
|
|||||||
|
|
||||||
[WorkManager]: https://developer.android.com/topic/libraries/architecture/workmanager.html
|
[WorkManager]: https://developer.android.com/topic/libraries/architecture/workmanager.html
|
||||||
|
|
||||||
## Getting the extension
|
## Getting the module
|
||||||
|
|
||||||
The easiest way to use the extension is to add it as a gradle dependency:
|
The easiest way to get the module is to add it as a gradle dependency:
|
||||||
|
|
||||||
```gradle
|
```gradle
|
||||||
implementation 'com.google.android.exoplayer:extension-workmanager:2.X.X'
|
implementation 'com.google.android.exoplayer:extension-workmanager:2.X.X'
|
||||||
```
|
```
|
||||||
|
|
||||||
where `2.X.X` is the version, which must match the version of the ExoPlayer
|
where `2.X.X` is the version, which must match the version of the other media
|
||||||
library being used.
|
modules being used.
|
||||||
|
|
||||||
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
Alternatively, you can clone the ExoPlayer repository and depend on the module
|
||||||
locally. Instructions for doing this can be found in ExoPlayer's
|
locally. Instructions for doing this can be found in ExoPlayer's
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# ExoPlayer full library #
|
# ExoPlayer full library
|
||||||
|
|
||||||
An empty module that depends on all of the other library modules. Depending on
|
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
|
the full library is equivalent to depending on all of the other library modules
|
||||||
@ -6,7 +6,7 @@ individually. See ExoPlayer's [top level README][] for more information.
|
|||||||
|
|
||||||
[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 ##
|
## Links
|
||||||
|
|
||||||
* [Javadoc][]: Note that this Javadoc is combined with that of other modules.
|
* [Javadoc][]: Note that this Javadoc is combined with that of other modules.
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# ExoPlayer common library module #
|
# ExoPlayer common library module
|
||||||
|
|
||||||
Common code used by other ExoPlayer modules.
|
Common code used by other ExoPlayer modules.
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [Javadoc][]: Note that this Javadoc is combined with that of other modules.
|
* [Javadoc][]: Note that this Javadoc is combined with that of other modules.
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# ExoPlayer core library module #
|
# ExoPlayer core library module
|
||||||
|
|
||||||
The core of the ExoPlayer library.
|
The core of the ExoPlayer library.
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [Javadoc][]: Note that this Javadoc is combined with that of other modules.
|
* [Javadoc][]: Note that this Javadoc is combined with that of other modules.
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# ExoPlayer DASH library module #
|
# ExoPlayer DASH library module
|
||||||
|
|
||||||
Provides support for Dynamic Adaptive Streaming over HTTP (DASH) content.
|
Provides support for Dynamic Adaptive Streaming over HTTP (DASH) content.
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ For advanced playback use cases, applications can build `DashMediaSource`
|
|||||||
instances and pass them directly to the player. For advanced download use cases,
|
instances and pass them directly to the player. For advanced download use cases,
|
||||||
`DashDownloader` can be used directly.
|
`DashDownloader` can be used directly.
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [Developer Guide][].
|
* [Developer Guide][].
|
||||||
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.source.dash.*`
|
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.source.dash.*`
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# ExoPlayer HLS library module #
|
# ExoPlayer HLS library module
|
||||||
|
|
||||||
Provides support for HTTP Live Streaming (HLS) content.
|
Provides support for HTTP Live Streaming (HLS) content.
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ For advanced playback use cases, applications can build `HlsMediaSource`
|
|||||||
instances and pass them directly to the player. For advanced download use cases,
|
instances and pass them directly to the player. For advanced download use cases,
|
||||||
`HlsDownloader` can be used directly.
|
`HlsDownloader` can be used directly.
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [Developer Guide][].
|
* [Developer Guide][].
|
||||||
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.source.hls.*` belong to
|
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.source.hls.*` belong to
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# ExoPlayer SmoothStreaming library module #
|
# ExoPlayer SmoothStreaming library module
|
||||||
|
|
||||||
Provides support for SmoothStreaming content.
|
Provides support for SmoothStreaming content.
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ For advanced playback use cases, applications can build `SsMediaSource`
|
|||||||
instances and pass them directly to the player. For advanced download use cases,
|
instances and pass them directly to the player. For advanced download use cases,
|
||||||
`SsDownloader` can be used directly.
|
`SsDownloader` can be used directly.
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [Developer Guide][].
|
* [Developer Guide][].
|
||||||
* [Javadoc][]: Classes matching
|
* [Javadoc][]: Classes matching
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# ExoPlayer transformer library module #
|
# ExoPlayer transformer library module
|
||||||
|
|
||||||
Provides support for transforming media files.
|
Provides support for transforming media files.
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.transformer.*`
|
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.transformer.*`
|
||||||
belong to this module.
|
belong to this module.
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# ExoPlayer UI library module #
|
# ExoPlayer UI library module
|
||||||
|
|
||||||
Provides UI components and resources for use with ExoPlayer.
|
Provides UI components and resources for use with ExoPlayer.
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [Developer Guide][].
|
* [Developer Guide][].
|
||||||
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ui.*`
|
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ui.*`
|
||||||
|
2
testdata/README.md
vendored
2
testdata/README.md
vendored
@ -1,4 +1,4 @@
|
|||||||
# ExoPlayer test data #
|
# ExoPlayer test data
|
||||||
|
|
||||||
Provides sample data for ExoPlayer unit and instrumentation tests.
|
Provides sample data for ExoPlayer unit and instrumentation tests.
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# ExoPlayer test utils #
|
# ExoPlayer test utils
|
||||||
|
|
||||||
Provides utility classes for ExoPlayer unit and instrumentation tests.
|
Provides utility classes for ExoPlayer unit and instrumentation tests.
|
||||||
|
|
||||||
## Links ##
|
## Links
|
||||||
|
|
||||||
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.testutil` belong to this
|
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.testutil` belong to this
|
||||||
module.
|
module.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user