
The only known use case for contentTypePredicate is to catch the case when a paywall web page is returned via a DataSource, rather than the data that was being requested. These days streaming providers should be using HTTPS, where this problem does not exist. Devices have also gotten a lot better at showing their own notifications when paywalls are detected, which largely mitigates the need for the app to show a more optimal error message or redirect the user to a browser. It therefore makes sense to deprioritize this feature. In particular by removing the arg from constructors, where nearly all applications are probably passing null. PiperOrigin-RevId: 249634594
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 DataSource
s 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.
Links
- Javadoc: Classes matching
com.google.android.exoplayer2.ext.cronet.*
belong to this module.