com.google.android.exoplayer2.util.Util.inferContentType()方法的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(8.6k)|赞(0)|评价(0)|浏览(177)

本文整理了Java中com.google.android.exoplayer2.util.Util.inferContentType()方法的一些代码示例,展示了Util.inferContentType()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Util.inferContentType()方法的具体详情如下:
包路径:com.google.android.exoplayer2.util.Util
类名称:Util
方法名:inferContentType

Util.inferContentType介绍

[英]Makes a best guess to infer the type from a Uri.
[中]进行最佳猜测以从Uri推断类型。

代码示例

代码示例来源:origin: google/ExoPlayer

/**
 * Makes a best guess to infer the type from a {@link Uri}.
 *
 * @param uri The {@link Uri}.
 * @param overrideExtension If not null, used to infer the type.
 * @return The content type.
 */
@C.ContentType
public static int inferContentType(Uri uri, String overrideExtension) {
 return TextUtils.isEmpty(overrideExtension)
   ? inferContentType(uri)
   : inferContentType("." + overrideExtension);
}

代码示例来源:origin: google/ExoPlayer

/**
 * Makes a best guess to infer the type from a {@link Uri}.
 *
 * @param uri The {@link Uri}.
 * @return The content type.
 */
@C.ContentType
public static int inferContentType(Uri uri) {
 String path = uri.getPath();
 return path == null ? C.TYPE_OTHER : inferContentType(path);
}

代码示例来源:origin: CarGuo/GSYVideoPlayer

@C.ContentType
public static int inferContentType(Uri uri, @Nullable String overrideExtension) {
  return Util.inferContentType(uri, overrideExtension);
}

代码示例来源:origin: google/ExoPlayer

@Test
public void testInferContentType() {
 assertThat(Util.inferContentType("http://a.b/c.ism")).isEqualTo(C.TYPE_SS);
 assertThat(Util.inferContentType("http://a.b/c.isml")).isEqualTo(C.TYPE_SS);
 assertThat(Util.inferContentType("http://a.b/c.ism/Manifest")).isEqualTo(C.TYPE_SS);
 assertThat(Util.inferContentType("http://a.b/c.isml/manifest")).isEqualTo(C.TYPE_SS);
 assertThat(Util.inferContentType("http://a.b/c.isml/manifest(filter=x)")).isEqualTo(C.TYPE_SS);
 assertThat(Util.inferContentType("http://a.b/c.ism/prefix-manifest")).isEqualTo(C.TYPE_OTHER);
 assertThat(Util.inferContentType("http://a.b/c.ism/manifest-suffix")).isEqualTo(C.TYPE_OTHER);
}

代码示例来源:origin: TeamNewPipe/NewPipe

@NonNull
  default MediaSource buildMediaSource(@NonNull final PlayerDataSource dataSource,
                     @NonNull final String sourceUrl,
                     @NonNull final String cacheKey,
                     @NonNull final String overrideExtension,
                     @NonNull final MediaSourceTag metadata) {
    final Uri uri = Uri.parse(sourceUrl);
    @C.ContentType final int type = TextUtils.isEmpty(overrideExtension) ?
        Util.inferContentType(uri) : Util.inferContentType("." + overrideExtension);

    switch (type) {
      case C.TYPE_SS:
        return dataSource.getLiveSsMediaSourceFactory().setTag(metadata)
            .createMediaSource(uri);
      case C.TYPE_DASH:
        return dataSource.getDashMediaSourceFactory().setTag(metadata)
            .createMediaSource(uri);
      case C.TYPE_HLS:
        return dataSource.getHlsMediaSourceFactory().setTag(metadata)
            .createMediaSource(uri);
      case C.TYPE_OTHER:
        return dataSource.getExtractorMediaSourceFactory(cacheKey).setTag(metadata)
            .createMediaSource(uri);
      default:
        throw new IllegalStateException("Unsupported type: " + type);
    }
  }
}

代码示例来源:origin: google/ExoPlayer

private MediaSource buildMediaSource(Uri uri) {
 @ContentType int type = Util.inferContentType(uri);
 switch (type) {
  case C.TYPE_DASH:
   return new DashMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
  case C.TYPE_SS:
   return new SsMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
  case C.TYPE_HLS:
   return new HlsMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
  case C.TYPE_OTHER:
   return new ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
  default:
   throw new IllegalStateException("Unsupported type: " + type);
 }
}

代码示例来源:origin: jiajunhui/PlayerBase

private MediaSource getMediaSource(Uri uri, com.google.android.exoplayer2.upstream.DataSource.Factory dataSourceFactory){
  int contentType = Util.inferContentType(uri);
  switch (contentType) {
    case C.TYPE_DASH:
      return new DashMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
    case C.TYPE_SS:
      return new SsMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
    case C.TYPE_HLS:
      return new HlsMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
    case C.TYPE_OTHER:
    default:
      // This is the MediaSource representing the media to be played.
      return new ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
  }
}

代码示例来源:origin: yuliskov/SmartYouTubeTV

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

代码示例来源:origin: lizixian18/StarrySky

private DownloadHelper getDownloadHelper(Uri uri, String extension) {
    int type = Util.inferContentType(uri, extension);
    switch (type) {
//            case C.TYPE_DASH:
//                return new DashDownloadHelper(uri, dataSourceFactory);
//            case C.TYPE_SS:
//                return new SsDownloadHelper(uri, dataSourceFactory);
//            case C.TYPE_HLS:
//                return new HlsDownloadHelper(uri, dataSourceFactory);
      case C.TYPE_OTHER:
        return new ProgressiveDownloadHelper(uri);
      default:
        return null;
    }
  }
}

代码示例来源:origin: cemrich/zapp

@NonNull
private MediaSource getMediaSourceWithoutSubtitles(Uri uri) {
  int type = Util.inferContentType(uri);
  switch (type) {
    case C.TYPE_HLS:
      return new HlsMediaSource.Factory(dataSourceFactory)
        .createMediaSource(uri);
    case C.TYPE_OTHER:
      return new ExtractorMediaSource.Factory(dataSourceFactory)
        .createMediaSource(uri);
    case C.TYPE_DASH:
    case C.TYPE_SS:
    default:
      throw new IllegalStateException("Unsupported type: " + type);
  }
}

代码示例来源:origin: JarvanMo/ExoVideoView

public MediaSource buildMediaSource(Uri uri, String overrideExtension) {
  @C.ContentType 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);
    }
  }
}

代码示例来源:origin: huyongli/TigerVideo

private MediaSource buildMediaSource(Uri uri, String overrideExtension) {
  int type = Util.inferContentType(!TextUtils.isEmpty(overrideExtension) ? "." + overrideExtension
      : uri.getLastPathSegment());
  switch (type) {
    case C.TYPE_SS:
      return new SsMediaSource(uri, buildDataSourceFactory(false),
          new DefaultSsChunkSource.Factory(mMediaDataSourceFactory), mMainHandler, mEventLogger);
    case C.TYPE_DASH:
      return new DashMediaSource(uri, buildDataSourceFactory(false),
          new DefaultDashChunkSource.Factory(mMediaDataSourceFactory), mMainHandler, mEventLogger);
    case C.TYPE_HLS:
      return new HlsMediaSource(uri, mMediaDataSourceFactory, mMainHandler, mEventLogger);
    case C.TYPE_OTHER:
      return new ExtractorMediaSource(uri, mMediaDataSourceFactory, new DefaultExtractorsFactory(),
          mMainHandler, mEventLogger);
    default: {
      throw new IllegalStateException("Unsupported type: " + type);
    }
  }
}

代码示例来源:origin: lizixian18/StarrySky

private MediaSource buildMediaSource(DataSource.Factory dataSourceFactory, Uri uri, @Nullable String overrideExtension) {
  @C.ContentType int type = Util.inferContentType(uri, overrideExtension);
  switch (type) {
    case C.TYPE_DASH:
      return new DashMediaSource.Factory(dataSourceFactory)
          .setManifestParser(
              new FilteringManifestParser<>(new DashManifestParser(), getOfflineStreamKeys(uri)))
          .createMediaSource(uri);
    case C.TYPE_SS:
      return new SsMediaSource.Factory(dataSourceFactory)
          .setManifestParser(
              new FilteringManifestParser<>(new SsManifestParser(), getOfflineStreamKeys(uri)))
          .createMediaSource(uri);
    case C.TYPE_HLS:
      return new HlsMediaSource.Factory(dataSourceFactory)
          .setPlaylistParserFactory(
              new DefaultHlsPlaylistParserFactory(getOfflineStreamKeys(uri)))
          .createMediaSource(uri);
    case C.TYPE_OTHER:
      boolean isRtmpSource = uri.toString().toLowerCase().startsWith("rtmp://");
      return new ExtractorMediaSource.Factory(isRtmpSource ? new RtmpDataSourceFactory() : dataSourceFactory)
          .createMediaSource(uri);
    default: {
      throw new IllegalStateException("Unsupported type: " + type);
    }
  }
}

相关文章