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);
}
}
}