@NonNull default MediaSource buildLiveMediaSource(@NonNull final PlayerDataSource dataSource, @NonNull final String sourceUrl, @C.ContentType final int type, @NonNull final MediaSourceTag metadata) { final Uri uri = Uri.parse(sourceUrl); switch (type) { case C.TYPE_SS: return dataSource.getLiveSsMediaSourceFactory().setTag(metadata) .createMediaSource(uri); case C.TYPE_DASH: return dataSource.getLiveDashMediaSourceFactory().setTag(metadata) .createMediaSource(uri); case C.TYPE_HLS: return dataSource.getLiveHlsMediaSourceFactory().setTag(metadata) .createMediaSource(uri); default: throw new IllegalStateException("Unsupported type: " + type); } }
private static MediaSource buildMediaSource(DemoUtil.Sample sample) { Uri uri = Uri.parse(sample.uri); switch (sample.mimeType) { case DemoUtil.MIME_TYPE_SS: return new SsMediaSource.Factory(DATA_SOURCE_FACTORY).createMediaSource(uri); case DemoUtil.MIME_TYPE_DASH: return new DashMediaSource.Factory(DATA_SOURCE_FACTORY).createMediaSource(uri); case DemoUtil.MIME_TYPE_HLS: return new HlsMediaSource.Factory(DATA_SOURCE_FACTORY).createMediaSource(uri); case DemoUtil.MIME_TYPE_VIDEO_MP4: return new ExtractorMediaSource.Factory(DATA_SOURCE_FACTORY).createMediaSource(uri); default: { throw new IllegalStateException("Unsupported type: " + sample.mimeType); } } }
/** @deprecated Use {@link #setLivePresentationDelayMs(long, boolean)}. */ @Deprecated @SuppressWarnings("deprecation") public Factory setLivePresentationDelayMs(long livePresentationDelayMs) { if (livePresentationDelayMs == DEFAULT_LIVE_PRESENTATION_DELAY_PREFER_MANIFEST_MS) { return setLivePresentationDelayMs(DEFAULT_LIVE_PRESENTATION_DELAY_MS, false); } else { return setLivePresentationDelayMs(livePresentationDelayMs, true); } }
mediaSource = new DashMediaSource.Factory(new DefaultDashChunkSource.Factory(getDataSourceFactoryCache(mAppContext, cacheEnable, preview, cacheDir)), new DefaultDataSourceFactory(mAppContext, null, getHttpDataSourceFactory(mAppContext, preview))).createMediaSource(contentUri); break; case C.TYPE_HLS:
private MediaSource buildMediaSource(DataSource.Factory dataSourceFactory, Uri uri, @Nullable String overrideExtension) { @C.ContentType int type = Util.inferContentType(uri, overrideExtension); switch (type) { case C.TYPE_DASH: return new DashMediaSource.Factory(dataSourceFactory) .setManifestParser( new FilteringManifestParser<>(new DashManifestParser(), getOfflineStreamKeys(uri))) .createMediaSource(uri); case C.TYPE_SS: return new SsMediaSource.Factory(dataSourceFactory) .setManifestParser( new FilteringManifestParser<>(new SsManifestParser(), getOfflineStreamKeys(uri))) .createMediaSource(uri); case C.TYPE_HLS: return new HlsMediaSource.Factory(dataSourceFactory) .setPlaylistParserFactory( new DefaultHlsPlaylistParserFactory(getOfflineStreamKeys(uri))) .createMediaSource(uri); case C.TYPE_OTHER: boolean isRtmpSource = uri.toString().toLowerCase().startsWith("rtmp://"); return new ExtractorMediaSource.Factory(isRtmpSource ? new RtmpDataSourceFactory() : dataSourceFactory) .createMediaSource(uri); default: { throw new IllegalStateException("Unsupported type: " + type); } } }
private MediaSource dashMediaSource(Video video) { Uri uri = Uri.parse(video.getPath()); return new DashMediaSource.Factory(mDashChunkSourceFactory, mManifestDataSourceFactory).createMediaSource(uri); }
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; } }
@NonNull @Override public MediaSource build(@NonNull Context context, @NonNull Uri uri, @NonNull String userAgent, @NonNull Handler handler, @Nullable TransferListener transferListener) { DataSource.Factory dataSourceFactory = buildDataSourceFactory(context, userAgent, null); DataSource.Factory meteredDataSourceFactory = buildDataSourceFactory(context, userAgent, transferListener); return new DashMediaSource.Factory(new DefaultDashChunkSource.Factory(meteredDataSourceFactory), dataSourceFactory) .createMediaSource(uri); } }
mediaSource = new DashMediaSource.Factory(new DefaultDashChunkSource.Factory(getDataSourceFactoryCache(mAppContext, cacheEnable, preview, cacheDir)), new DefaultDataSourceFactory(mAppContext, null, getHttpDataSourceFactory(mAppContext, preview))).createMediaSource(contentUri); break; case C.TYPE_HLS:
@NonNull default MediaSource buildMediaSource(@NonNull final PlayerDataSource dataSource, @NonNull final String sourceUrl, @NonNull final String cacheKey, @NonNull final String overrideExtension, @NonNull final MediaSourceTag metadata) { final Uri uri = Uri.parse(sourceUrl); @C.ContentType final int type = TextUtils.isEmpty(overrideExtension) ? Util.inferContentType(uri) : Util.inferContentType("." + overrideExtension); switch (type) { case C.TYPE_SS: return dataSource.getLiveSsMediaSourceFactory().setTag(metadata) .createMediaSource(uri); case C.TYPE_DASH: return dataSource.getDashMediaSourceFactory().setTag(metadata) .createMediaSource(uri); case C.TYPE_HLS: return dataSource.getHlsMediaSourceFactory().setTag(metadata) .createMediaSource(uri); case C.TYPE_OTHER: return dataSource.getExtractorMediaSourceFactory(cacheKey).setTag(metadata) .createMediaSource(uri); default: throw new IllegalStateException("Unsupported type: " + type); } } }
private MediaSource getMediaSource(Uri uri, com.google.android.exoplayer2.upstream.DataSource.Factory dataSourceFactory){ int contentType = Util.inferContentType(uri); switch (contentType) { case C.TYPE_DASH: return new DashMediaSource.Factory(dataSourceFactory).createMediaSource(uri); case C.TYPE_SS: return new SsMediaSource.Factory(dataSourceFactory).createMediaSource(uri); case C.TYPE_HLS: return new HlsMediaSource.Factory(dataSourceFactory).createMediaSource(uri); case C.TYPE_OTHER: default: // This is the MediaSource representing the media to be played. return new ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(uri); } }
public DashMediaSource.Factory getDashMediaSourceFactory() { return new DashMediaSource.Factory(new DefaultDashChunkSource.Factory( cacheDataSourceFactory), cacheDataSourceFactory); }
/** * @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; }
private MediaSource buildMediaSource(Uri uri) { @ContentType int type = Util.inferContentType(uri); switch (type) { case C.TYPE_DASH: return new DashMediaSource.Factory(dataSourceFactory).createMediaSource(uri); case C.TYPE_SS: return new SsMediaSource.Factory(dataSourceFactory).createMediaSource(uri); case C.TYPE_HLS: return new HlsMediaSource.Factory(dataSourceFactory).createMediaSource(uri); case C.TYPE_OTHER: return new ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(uri); default: throw new IllegalStateException("Unsupported type: " + type); } }
/** * Sets the minimum number of times to retry if a loading error occurs. See {@link * #setLoadErrorHandlingPolicy} for the default value. * * <p>Calling this method is equivalent to calling {@link #setLoadErrorHandlingPolicy} with * {@link DefaultLoadErrorHandlingPolicy#DefaultLoadErrorHandlingPolicy(int) * DefaultLoadErrorHandlingPolicy(minLoadableRetryCount)} * * @param minLoadableRetryCount The minimum number of times to retry if a loading error occurs. * @return This factory, for convenience. * @throws IllegalStateException If one of the {@code create} methods has already been called. * @deprecated Use {@link #setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy)} instead. */ @Deprecated public Factory setMinLoadableRetryCount(int minLoadableRetryCount) { return setLoadErrorHandlingPolicy(new DefaultLoadErrorHandlingPolicy(minLoadableRetryCount)); }
public DashMediaSource.Factory getLiveDashMediaSourceFactory() { return new DashMediaSource.Factory(new DefaultDashChunkSource.Factory( cachelessDataSourceFactory), cachelessDataSourceFactory) .setMinLoadableRetryCount(MANIFEST_MINIMUM_RETRY) .setLivePresentationDelayMs(LIVE_STREAM_EDGE_GAP_MILLIS); }
/** * @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; }
@Override protected MediaSource buildSource(HostActivity host, String userAgent) { DataSource.Factory dataSourceFactory = this.dataSourceFactory != null ? this.dataSourceFactory : new DefaultDataSourceFactory(host, userAgent); Uri manifestUri = Uri.parse(manifestUrl); return new DashMediaSource.Factory(dataSourceFactory) .setLoadErrorHandlingPolicy(new DefaultLoadErrorHandlingPolicy(MIN_LOADABLE_RETRY_COUNT)) .createMediaSource(manifestUri); }