2017-09-23 5 views
1

最近私のAndroidアプリケーションでExoPlayerを使い始めましたが、私が直面した問題は、ExoPlayerがそのURLによってソースタイプを自動的に認識しないということでした。ExoPlayerをURLでソースタイプを認識させるには?

私はURLを渡すことができるので、ExoPlayerは自動的にそれを再生する方法を定義します(ビデオまたはHLSストリームとして)。

答えて

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

}

出典:https://github.com/google/ExoPlayer/blob/release-v2/demo/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java

関連する問題