private MediaSource buildMediaSource(Uri uri, String overrideExtension) { int type = Util.inferContentType(!TextUtils.isEmpty(overrideExtension) ? "." + overrideExtension : uri.getLastPathSegment()); switch (type) { case C.TYPE_SS: return new SsMediaSource(uri, buildDataSourceFactory(false), new DefaultSsChunkSource.Factory(mediaDataSourceFactory), mainHandler, null); case C.TYPE_DASH: return new DashMediaSource(uri, buildDataSourceFactory(false), new DefaultDashChunkSource.Factory(mediaDataSourceFactory), mainHandler, null); case C.TYPE_HLS: return new HlsMediaSource(uri, mediaDataSourceFactory, mainHandler, null); case C.TYPE_OTHER: return new ExtractorMediaSource(uri, mediaDataSourceFactory, new DefaultExtractorsFactory(), mainHandler, null); default: { throw new IllegalStateException("Unsupported type: " + type); } } }
private MediaSource buildMediaSource(Uri uri, String overrideExtension) { int type = Util.inferContentType(!TextUtils.isEmpty(overrideExtension) ? "." + overrideExtension : uri.getLastPathSegment()); switch (type) { case C.TYPE_SS: return new SsMediaSource(uri, buildDataSourceFactory(false), new DefaultSsChunkSource.Factory(mediaDataSourceFactory), mainHandler, eventLogger); case C.TYPE_DASH: return new DashMediaSource(uri, buildDataSourceFactory(false), new DefaultDashChunkSource.Factory(mediaDataSourceFactory), mainHandler, eventLogger); case C.TYPE_HLS: return new HlsMediaSource(uri, mediaDataSourceFactory, mainHandler, eventLogger); case C.TYPE_OTHER: return new ExtractorMediaSource(uri, mediaDataSourceFactory, new DefaultExtractorsFactory(), mainHandler, eventLogger); default: { throw new IllegalStateException("Unsupported type: " + type); } } }
private MediaSource buildMediaSource(Context context, Uri uri) { int type = getUrlType(uri.toString()); switch (type) { case C.TYPE_SS: return new SsMediaSource(uri, new DefaultDataSourceFactory(context, null, new DefaultHttpDataSourceFactory(USER_AGENT, null)), new DefaultSsChunkSource.Factory(new DefaultDataSourceFactory(context, BANDWIDTH_METER, new DefaultHttpDataSourceFactory(USER_AGENT, BANDWIDTH_METER))), mainThreadHandler, null); case C.TYPE_DASH: return new DashMediaSource(uri, new DefaultDataSourceFactory(context, null, new DefaultHttpDataSourceFactory(USER_AGENT, null)), new DefaultDashChunkSource.Factory(new DefaultDataSourceFactory(context, BANDWIDTH_METER, new DefaultHttpDataSourceFactory(USER_AGENT, BANDWIDTH_METER))), mainThreadHandler, null); case C.TYPE_HLS: return new HlsMediaSource(uri, new DefaultDataSourceFactory(context, BANDWIDTH_METER, new DefaultHttpDataSourceFactory(USER_AGENT, BANDWIDTH_METER)), mainThreadHandler, null); case C.TYPE_OTHER: return new ExtractorMediaSource(uri, new DefaultDataSourceFactory(context, BANDWIDTH_METER, new DefaultHttpDataSourceFactory(USER_AGENT, BANDWIDTH_METER)), new DefaultExtractorsFactory(), mainThreadHandler, null); default: { throw new IllegalStateException("Unsupported type: " + type); } } }
private MediaSource buildMediaSource(Uri uri, String overrideExtension) { DataSource.Factory mediaDataSourceFactory = buildDataSourceFactory(true); int type = TextUtils.isEmpty(overrideExtension) ? Util.inferContentType(uri) : Util.inferContentType("." + overrideExtension); switch (type) { case C.TYPE_SS: return new SsMediaSource(uri, buildDataSourceFactory(false), new DefaultSsChunkSource.Factory(mediaDataSourceFactory), mainHandler, null); case C.TYPE_DASH: return new DashMediaSource(uri, buildDataSourceFactory(false), new DefaultDashChunkSource.Factory(mediaDataSourceFactory), mainHandler, null); case C.TYPE_HLS: return new HlsMediaSource(uri, mediaDataSourceFactory, mainHandler, null); case C.TYPE_OTHER: return new ExtractorMediaSource(uri, mediaDataSourceFactory, new DefaultExtractorsFactory(), mainHandler, null); default: { throw new IllegalStateException("Unsupported type: " + type); } } }
public MediaSource getMediaSource(boolean preview) { switch (streamType) { case C.TYPE_SS: return new SsMediaSource(uri, new DefaultDataSourceFactory(context, null, getHttpDataSourceFactory(preview)), new DefaultSsChunkSource.Factory(getDataSourceFactory(preview)), mainHandler, null); case C.TYPE_DASH: return new DashMediaSource(uri, new DefaultDataSourceFactory(context, null, getHttpDataSourceFactory(preview)), new DefaultDashChunkSource.Factory(getDataSourceFactory(preview)), mainHandler, null); case C.TYPE_HLS: return new HlsMediaSource(uri, getDataSourceFactory(preview), mainHandler, null); case C.TYPE_OTHER: return new ExtractorMediaSource(uri, getDataSourceFactory(preview), new DefaultExtractorsFactory(), mainHandler, null); default: { throw new IllegalStateException("Unsupported type: " + streamType); } } }
private MediaSource buildMediaSource(Uri uri, String overrideExtension) { int type = Util.inferContentType(!TextUtils.isEmpty(overrideExtension) ? "." + overrideExtension : uri.getLastPathSegment()); switch (type) { case C.TYPE_SS: return new SsMediaSource(uri, buildDataSourceFactory(false), new DefaultSsChunkSource.Factory(mMediaDataSourceFactory), mMainHandler, mEventLogger); case C.TYPE_DASH: return new DashMediaSource(uri, buildDataSourceFactory(false), new DefaultDashChunkSource.Factory(mMediaDataSourceFactory), mMainHandler, mEventLogger); case C.TYPE_HLS: return new HlsMediaSource(uri, mMediaDataSourceFactory, mMainHandler, mEventLogger); case C.TYPE_OTHER: return new ExtractorMediaSource(uri, mMediaDataSourceFactory, new DefaultExtractorsFactory(), mMainHandler, mEventLogger); default: { throw new IllegalStateException("Unsupported type: " + type); } } }
private MediaSource buildMediaSource(Uri uri, String overrideExtension) { int type = Util.inferContentType(!TextUtils.isEmpty(overrideExtension) ? "." + overrideExtension : uri.getLastPathSegment()); switch (type) { case C.TYPE_SS: return new SsMediaSource(uri, new DefaultDataSourceFactory(context, userAgent), new DefaultSsChunkSource.Factory(mediaDataSourceFactory), mainHandler, eventLogger); case C.TYPE_DASH: return new DashMediaSource(uri, new DefaultDataSourceFactory(context, userAgent), new DefaultDashChunkSource.Factory(mediaDataSourceFactory), mainHandler, eventLogger); case C.TYPE_HLS: return new HlsMediaSource(uri, mediaDataSourceFactory, mainHandler, eventLogger); case C.TYPE_OTHER: return new ExtractorMediaSource(uri, mediaDataSourceFactory, new DefaultExtractorsFactory(), mainHandler, eventLogger); default: { throw new IllegalStateException("Unsupported type: " + type); } } }
private MediaSource buildMediaSource(Uri uri) { int type = Util.inferContentType(uri.getLastPathSegment()); switch (type) { case C.TYPE_SS: return new SsMediaSource(uri, buildDataSourceFactory(false), new DefaultSsChunkSource.Factory(mediaDataSourceFactory), new Handler(), null); case C.TYPE_DASH: return new DashMediaSource(uri, buildDataSourceFactory(false), new DefaultDashChunkSource.Factory(mediaDataSourceFactory), new Handler(), null); case C.TYPE_HLS: return new HlsMediaSource(uri, mediaDataSourceFactory, new Handler(), null); case C.TYPE_OTHER: return new ExtractorMediaSource(uri, mediaDataSourceFactory, new DefaultExtractorsFactory(), new Handler(), null); default: { throw new IllegalStateException("Unsupported type: " + type); } } }
@Override public MediaSource initMediaSource(Uri uri) { int streamType = VideoPlayUtils.inferContentType(uri); switch (streamType) { case C.TYPE_SS: return new SsMediaSource.Factory(new DefaultSsChunkSource.Factory(getDataSource()), new DefaultDataSourceFactory(context, null, getDataSource())) .setMinLoadableRetryCount(5) .createMediaSource(uri,mainHandler,sourceEventListener); case C.TYPE_DASH: return new DashMediaSource.Factory(new DefaultDashChunkSource.Factory(getDataSource()) ,new DefaultDataSourceFactory(context, null, getDataSource())) .setMinLoadableRetryCount(5) .createMediaSource(uri, mainHandler, sourceEventListener); case C.TYPE_OTHER: return new ExtractorMediaSource.Factory( getDataSource()) .setExtractorsFactory( new DefaultExtractorsFactory()) .setMinLoadableRetryCount(5) .setCustomCacheKey(uri.getPath()) .createMediaSource(uri,mainHandler,null); case C.TYPE_HLS: return new HlsMediaSource.Factory(new DefaultHlsDataSourceFactory( getDataSource())) .setMinLoadableRetryCount(5) .createMediaSource(uri, mainHandler, sourceEventListener); default: throw new IllegalStateException(":Unsupported type: " + streamType); } }
private MediaSource getMediaSource(boolean preview) { Uri contentUri = Uri.parse(mDataSource); int contentType = inferContentType(mDataSource); switch (contentType) { case C.TYPE_SS: return new SsMediaSource(contentUri, new DefaultDataSourceFactory(mAppContext, null, getHttpDataSourceFactory(preview)), new DefaultSsChunkSource.Factory(getDataSourceFactory(preview)), mainHandler, null); case C.TYPE_DASH: return new DashMediaSource(contentUri, new DefaultDataSourceFactory(mAppContext, null, getHttpDataSourceFactory(preview)), new DefaultDashChunkSource.Factory(getDataSourceFactory(preview)), mainHandler, null); case C.TYPE_HLS: return new HlsMediaSource(contentUri, getDataSourceFactory(preview), mainHandler, null); case TYPE_RTMP: RtmpDataSourceFactory rtmpDataSourceFactory = new RtmpDataSourceFactory(null); return new ExtractorMediaSource(contentUri, rtmpDataSourceFactory, new DefaultExtractorsFactory(), mainHandler, null); case C.TYPE_OTHER: default: return new ExtractorMediaSource(contentUri, getDataSourceFactory(preview), new DefaultExtractorsFactory(), mainHandler, null); } }
private MediaSource buildMediaSource(Uri uri, String overrideExtension) { int type = Util.inferContentType(!TextUtils.isEmpty(overrideExtension) ? "." + overrideExtension : uri.getLastPathSegment()); switch (type) { case TYPE_SS: return new SsMediaSource(uri, buildDataSourceFactory(false), new DefaultSsChunkSource.Factory(mediaDataSourceFactory), mainHandler, eventLogger); case C.TYPE_DASH: return new DashMediaSource(uri, buildDataSourceFactory(false), new DefaultDashChunkSource.Factory(mediaDataSourceFactory), mainHandler, eventLogger); case C.TYPE_HLS: return new HlsMediaSource(uri, mediaDataSourceFactory, mainHandler, eventLogger); case C.TYPE_OTHER: MediaSource mediaSource = new ExtractorMediaSource(uri, mediaDataSourceFactory, new DefaultExtractorsFactory(), mainHandler, eventLogger); if (mSubtitleUri != null) { Log.d(TAG, "====加载字幕====buildMediaSource: "); return TextSubtitle(mSubtitleUri, mediaSource); } else { return mediaSource; } default: { throw new IllegalStateException("Unsupported type: " + type); } } }
@NonNull @Override public MediaSource build(@NonNull Context context, @NonNull Uri uri, @NonNull String userAgent, @NonNull Handler handler, @Nullable TransferListener<? super DataSource> transferListener) { DataSource.Factory dataSourceFactory = buildDataSourceFactory(context, userAgent, null); DataSource.Factory meteredDataSourceFactory = buildDataSourceFactory(context, userAgent, transferListener); return new SsMediaSource(uri, dataSourceFactory, new DefaultSsChunkSource.Factory(meteredDataSourceFactory), handler, null); }
private MediaSource buildMediaSource( Uri uri, String overrideExtension, @Nullable Handler handler, @Nullable MediaSourceEventListener listener) { @ContentType int type = TextUtils.isEmpty(overrideExtension) ? Util.inferContentType(uri) : Util.inferContentType("." + overrideExtension); switch (type) { case C.TYPE_DASH: return new DashMediaSource.Factory( new DefaultDashChunkSource.Factory(mediaDataSourceFactory), buildDataSourceFactory(false)) .createMediaSource(uri, handler, listener); case C.TYPE_SS: return new SsMediaSource.Factory( new DefaultSsChunkSource.Factory(mediaDataSourceFactory), buildDataSourceFactory(false)) .createMediaSource(uri, handler, listener); case C.TYPE_HLS: return new HlsMediaSource.Factory(mediaDataSourceFactory) .createMediaSource(uri, handler, listener); case C.TYPE_OTHER: return new ExtractorMediaSource.Factory(mediaDataSourceFactory) .createMediaSource(uri, handler, listener); default: { throw new IllegalStateException("Unsupported type: " + type); } } }
public static MediaSource getMediaSourceFor(Context context, Uri mediaUri, String overrideExtension) { // Measures bandwidth during playback. Can be null if not required. DataSource.Factory mediaDataSourceFactory = buildDataSourceFactory(context, true); int type = Util.inferContentType(!TextUtils.isEmpty(overrideExtension) ? "." + overrideExtension : mediaUri.getLastPathSegment()); Handler mainHandler = new Handler(); switch (type) { case C.TYPE_SS: return new SsMediaSource(mediaUri, buildDataSourceFactory(context, false), new DefaultSsChunkSource.Factory(mediaDataSourceFactory), mainHandler, null); case C.TYPE_DASH: return new DashMediaSource(mediaUri, buildDataSourceFactory(context, false), new DefaultDashChunkSource.Factory(mediaDataSourceFactory), mainHandler, null); case C.TYPE_HLS: return new HlsMediaSource(mediaUri, mediaDataSourceFactory, mainHandler, null); case C.TYPE_OTHER: return new ExtractorMediaSource(mediaUri, mediaDataSourceFactory, new DefaultExtractorsFactory(), mainHandler, null); default: { throw new NotMediaException("Unsupported type: " + type); } } }
/** * Creates a Smooth Streaming source. */ public Object CreateSmoothStreamingSource (String Uri) { return new SsMediaSource(android.net.Uri.parse(Uri), createDefaultDataFactory(), new DefaultSsChunkSource.Factory(createDefaultDataFactory()), null, null); }