private void onUtcTimestampResolved(long elapsedRealtimeOffsetMs) { this.elapsedRealtimeOffsetMs = elapsedRealtimeOffsetMs; processManifest(true); }
private void onUtcTimestampResolutionError(IOException error) { Log.e(TAG, "Failed to resolve UtcTiming element.", error); // Be optimistic and continue in the hope that the device clock is correct. processManifest(true); }
@Override public void prepareSourceInternal( ExoPlayer player, boolean isTopLevelSource, @Nullable TransferListener mediaTransferListener) { this.mediaTransferListener = mediaTransferListener; if (sideloadedManifest) { processManifest(false); } else { dataSource = manifestDataSourceFactory.createDataSource(); loader = new Loader("Loader:DashMediaSource"); handler = new Handler(); startLoadingManifest(); } }
/** 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
resolveUtcTimingElement(manifest.utcTiming); } else { processManifest(true); processManifest(true);