-
- All Implemented Interfaces:
-
com.google.android.exoplayer2.upstream.DataReader
,com.google.android.exoplayer2.upstream.DataSource
public class MultiDataSource implements DataSource
Multi data source supports fetching assets from multiple URI schemes. If the data source is an HTTP/HTTPS source, then it will check the offline store to check if the asset has been downloaded already and automatically convert to DataSpec to point to local copy of the asset.
The supported schemes are:
- file: For fetching data from a local file (e.g. file:///path/to/media/media.mp4, or just /path/to/media/media.mp4 because the implementation assumes that a URI without a scheme is a local file URI).
- asset: For fetching data from an asset in the application's apk (e.g. asset:///media.mp4).
- content: For fetching data from a content URI (e.g. content://authority/path/123).
- rtmp: For fetching data over RTMP. Only supported if the project using ExoPlayer has an explicit dependency on ExoPlayer's RTMP extension.
- http(s): For fetching data over HTTP and HTTPS (e.g. https://www.something.com/media.mp4).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public interface
MultiDataSource.ShortTtlHandler
Interface definition for handling DataSpec with an expired manifest URL.
public class
MultiDataSource.Factory
Implements a factory to support MultiDataSource
-
Method Summary
Modifier and Type Method Description void
addTransferListener(TransferListener transferListener)
long
open(DataSpec dataSpec)
int
read(Array<byte> buffer, int offset, int readLength)
Uri
getUri()
Map<String, List<String>>
getResponseHeaders()
void
close()
-
Methods inherited from class com.google.android.exoplayer2.upstream.DataSource
addTransferListener, close, getResponseHeaders, getUri, open
-
Methods inherited from class com.google.android.exoplayer2.upstream.DataReader
read
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-