1
我最近在我的Android應用程序中開始使用ExoPlayer,但我面臨的問題是ExoPlayer無法通過其URL自動識別源類型。如何讓ExoPlayer通過它的URL識別源類型?
有什麼解決方案,我可以通過一個URL和ExoPlayer自動定義如何播放它(作爲視頻或HLS流)。
我最近在我的Android應用程序中開始使用ExoPlayer,但我面臨的問題是ExoPlayer無法通過其URL自動識別源類型。如何讓ExoPlayer通過它的URL識別源類型?
有什麼解決方案,我可以通過一個URL和ExoPlayer自動定義如何播放它(作爲視頻或HLS流)。
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);
}
}
}