/** * @deprecated Use {@link #createMediaSource(DashManifest)} and {@link * #addEventListener(Handler, MediaSourceEventListener)} instead. */ @Deprecated public DashMediaSource createMediaSource( DashManifest manifest, @Nullable Handler eventHandler, @Nullable MediaSourceEventListener eventListener) { DashMediaSource mediaSource = createMediaSource(manifest); if (eventHandler != null && eventListener != null) { mediaSource.addEventListener(eventHandler, eventListener); } return mediaSource; }
/** * @deprecated Use {@link #createMediaSource(Uri)} and {@link #addEventListener(Handler, * MediaSourceEventListener)} instead. */ @Deprecated public DashMediaSource createMediaSource( Uri manifestUri, @Nullable Handler eventHandler, @Nullable MediaSourceEventListener eventListener) { DashMediaSource mediaSource = createMediaSource(manifestUri); if (eventHandler != null && eventListener != null) { mediaSource.addEventListener(eventHandler, eventListener); } return mediaSource; }
addEventListener(eventHandler, eventListener);
/** Factory for {@link DashMediaSource}s. */ public static final class Factory implements AdsMediaSource.MediaSourceFactory { private final DashChunkSource.Factory chunkSourceFactory; private final @Nullable DataSource.Factory manifestDataSourceFactory; private @Nullable ParsingLoadable.Parser<? extends DashManifest> manifestParser; private CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory; private LoadErrorHandlingPolicy loadErrorHandlingPolicy; private long livePresentationDelayMs; private boolean livePresentationDelayOverridesManifest; private boolean isCreateCalled; private @Nullable Object tag; /** * Creates a new factory for {@link DashMediaSource}s. * * @param dataSourceFactory A factory for {@link DataSource} instances that will be used to load * manifest and media data. */ public Factory(DataSource.Factory dataSourceFactory) { this(new DefaultDashChunkSource.Factory(dataSourceFactory), dataSourceFactory); } /** * Creates a new factory for {@link DashMediaSource}s. * * @param chunkSourceFactory A factory for {@link DashChunkSource} instances. * @param manifestDataSourceFactory A factory for {@link DataSource} instances that will be used * to load (and refresh) the manifest. May be {@code null} if the factory will only ever be
private MediaSource createDashMediaSource(DefaultDataSourceFactory defaultDataSourceFactory, Uri uri, MediaSourceEventListener mediaSourceEventListener) { DefaultDashChunkSource.Factory chunkSourceFactory = new DefaultDashChunkSource.Factory(defaultDataSourceFactory); DashMediaSource.Factory factory = new DashMediaSource.Factory(chunkSourceFactory, defaultDataSourceFactory); DashMediaSource mediaSource = factory.createMediaSource(uri); mediaSource.addEventListener(handler, mediaSourceEventListener); return mediaSource; } }