【问题标题】:How to make ExoPlayer recognizes a source type by its URL?如何让 ExoPlayer 通过 URL 识别源类型?
【发布时间】:2017-10-07 22:49:40
【问题描述】:

我最近开始在我的 Android 应用程序中使用 ExoPlayer,但我遇到的问题是 ExoPlayer 无法通过其 URL 自动识别源类型。

有什么解决方案可以让我传递一个 URL,ExoPlayer 会自动定义如何播放它(作为视频或 HLS 流)。

【问题讨论】:

    标签: android exoplayer


    【解决方案1】:
    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-22
      • 1970-01-01
      • 2012-06-30
      • 2018-11-24
      • 2012-02-01
      • 1970-01-01
      • 2017-01-02
      相关资源
      最近更新 更多