Android 如何让ExoPlayer通过URL识别源类型?
我最近开始在我的Android应用程序中使用ExoPlayer,但我面临的问题是,ExoPlayer无法通过其URL自动识别源类型 是否有任何解决方案可以让我传递URL,ExoPlayer自动定义如何播放它(作为视频或HLS流) } 资料来源:Android 如何让ExoPlayer通过URL识别源类型?,android,exoplayer,Android,Exoplayer,我最近开始在我的Android应用程序中使用ExoPlayer,但我面临的问题是,ExoPlayer无法通过其URL自动识别源类型 是否有任何解决方案可以让我传递URL,ExoPlayer自动定义如何播放它(作为视频或HLS流) } 资料来源: private MediaSource buildMediaSource(Uri uri, String overrideExtension) { int type = TextUtils.isEmpty(overrideExtension) ?
private MediaSource buildMediaSource(Uri uri, String overrideExtension) {
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, 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);
}
}