christosts 260db03167 Use DataSpec request params in HttpDataSource impls
Include Dataspec.httpRequestHeaders in CronetDataSource,
and OkHttpDataSource. Updated documentation of
HttpDataSource.open() to suggest that it should set request
headers (in decreasing priority) from (1) the passed DataSpec,
(2) parameters set with setRequestProperty() and (3) default
parameters set in the HttpDataSource.Factory. No mechanism
has been put in place to enforce this.

PiperOrigin-RevId: 266895574
2019-09-05 10:48:45 +01:00
..

ExoPlayer Cronet extension

The Cronet extension is an HttpDataSource implementation using Cronet.

Getting the extension

The easiest way to use the extension is to add it as a gradle dependency:

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 library being used.

Alternatively, you can clone the ExoPlayer repository and depend on the module locally. Instructions for doing this can be found in ExoPlayer's top level README.

Using the extension

ExoPlayer requests data through DataSource instances. These instances are either instantiated and injected from application code, or obtained from instances of DataSource.Factory that are instantiated and injected from application code.

If your application only needs to play http(s) content, using the Cronet extension is as simple as updating any DataSources and DataSource.Factory instantiations in your application code to use CronetDataSource and CronetDataSourceFactory respectively. If your application also needs to play non-http(s) content such as local files, use

new DefaultDataSource(
    ...
    new CronetDataSource(...) /* baseDataSource argument */);

and

new DefaultDataSourceFactory(
    ...
    new CronetDataSourceFactory(...) /* baseDataSourceFactory argument */);

respectively.

  • Javadoc: Classes matching com.google.android.exoplayer2.ext.cronet.* belong to this module.