Android 如何让ExoPlayer通过URL识别源类型?

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) ?

我最近开始在我的Android应用程序中使用ExoPlayer,但我面临的问题是,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);
    }
}