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

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

本文整理了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

  1. /**
  2. * Makes a best guess to infer the type from a {@link Uri}.
  3. *
  4. * @param uri The {@link Uri}.
  5. * @param overrideExtension If not null, used to infer the type.
  6. * @return The content type.
  7. */
  8. @C.ContentType
  9. public static int inferContentType(Uri uri, String overrideExtension) {
  10. return TextUtils.isEmpty(overrideExtension)
  11. ? inferContentType(uri)
  12. : inferContentType("." + overrideExtension);
  13. }

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

  1. /**
  2. * Makes a best guess to infer the type from a {@link Uri}.
  3. *
  4. * @param uri The {@link Uri}.
  5. * @return The content type.
  6. */
  7. @C.ContentType
  8. public static int inferContentType(Uri uri) {
  9. String path = uri.getPath();
  10. return path == null ? C.TYPE_OTHER : inferContentType(path);
  11. }

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

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

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

  1. @Test
  2. public void testInferContentType() {
  3. assertThat(Util.inferContentType("http://a.b/c.ism")).isEqualTo(C.TYPE_SS);
  4. assertThat(Util.inferContentType("http://a.b/c.isml")).isEqualTo(C.TYPE_SS);
  5. assertThat(Util.inferContentType("http://a.b/c.ism/Manifest")).isEqualTo(C.TYPE_SS);
  6. assertThat(Util.inferContentType("http://a.b/c.isml/manifest")).isEqualTo(C.TYPE_SS);
  7. assertThat(Util.inferContentType("http://a.b/c.isml/manifest(filter=x)")).isEqualTo(C.TYPE_SS);
  8. assertThat(Util.inferContentType("http://a.b/c.ism/prefix-manifest")).isEqualTo(C.TYPE_OTHER);
  9. assertThat(Util.inferContentType("http://a.b/c.ism/manifest-suffix")).isEqualTo(C.TYPE_OTHER);
  10. }

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

  1. @NonNull
  2. default MediaSource buildMediaSource(@NonNull final PlayerDataSource dataSource,
  3. @NonNull final String sourceUrl,
  4. @NonNull final String cacheKey,
  5. @NonNull final String overrideExtension,
  6. @NonNull final MediaSourceTag metadata) {
  7. final Uri uri = Uri.parse(sourceUrl);
  8. @C.ContentType final int type = TextUtils.isEmpty(overrideExtension) ?
  9. Util.inferContentType(uri) : Util.inferContentType("." + overrideExtension);
  10. switch (type) {
  11. case C.TYPE_SS:
  12. return dataSource.getLiveSsMediaSourceFactory().setTag(metadata)
  13. .createMediaSource(uri);
  14. case C.TYPE_DASH:
  15. return dataSource.getDashMediaSourceFactory().setTag(metadata)
  16. .createMediaSource(uri);
  17. case C.TYPE_HLS:
  18. return dataSource.getHlsMediaSourceFactory().setTag(metadata)
  19. .createMediaSource(uri);
  20. case C.TYPE_OTHER:
  21. return dataSource.getExtractorMediaSourceFactory(cacheKey).setTag(metadata)
  22. .createMediaSource(uri);
  23. default:
  24. throw new IllegalStateException("Unsupported type: " + type);
  25. }
  26. }
  27. }

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

  1. private MediaSource buildMediaSource(Uri uri) {
  2. @ContentType int type = Util.inferContentType(uri);
  3. switch (type) {
  4. case C.TYPE_DASH:
  5. return new DashMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
  6. case C.TYPE_SS:
  7. return new SsMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
  8. case C.TYPE_HLS:
  9. return new HlsMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
  10. case C.TYPE_OTHER:
  11. return new ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
  12. default:
  13. throw new IllegalStateException("Unsupported type: " + type);
  14. }
  15. }

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

  1. private MediaSource getMediaSource(Uri uri, com.google.android.exoplayer2.upstream.DataSource.Factory dataSourceFactory){
  2. int contentType = Util.inferContentType(uri);
  3. switch (contentType) {
  4. case C.TYPE_DASH:
  5. return new DashMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
  6. case C.TYPE_SS:
  7. return new SsMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
  8. case C.TYPE_HLS:
  9. return new HlsMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
  10. case C.TYPE_OTHER:
  11. default:
  12. // This is the MediaSource representing the media to be played.
  13. return new ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
  14. }
  15. }

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

  1. private MediaSource buildMediaSource(Uri uri, String overrideExtension) {
  2. int type = TextUtils.isEmpty(overrideExtension) ? Util.inferContentType(uri) : Util.inferContentType("." + overrideExtension);
  3. switch (type) {
  4. case C.TYPE_SS:
  5. return new SsMediaSource(uri, buildDataSourceFactory(false), new DefaultSsChunkSource.Factory(mediaDataSourceFactory), mainHandler,
  6. eventLogger);
  7. case C.TYPE_DASH:
  8. return new DashMediaSource(uri, buildDataSourceFactory(false), new DefaultDashChunkSource.Factory(mediaDataSourceFactory),
  9. mainHandler, eventLogger);
  10. case C.TYPE_HLS:
  11. return new HlsMediaSource(uri, mediaDataSourceFactory, mainHandler, eventLogger);
  12. case C.TYPE_OTHER:
  13. return new ExtractorMediaSource(uri, mediaDataSourceFactory, new DefaultExtractorsFactory(), mainHandler, eventLogger);
  14. default: {
  15. throw new IllegalStateException("Unsupported type: " + type);
  16. }
  17. }
  18. }

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

  1. private DownloadHelper getDownloadHelper(Uri uri, String extension) {
  2. int type = Util.inferContentType(uri, extension);
  3. switch (type) {
  4. // case C.TYPE_DASH:
  5. // return new DashDownloadHelper(uri, dataSourceFactory);
  6. // case C.TYPE_SS:
  7. // return new SsDownloadHelper(uri, dataSourceFactory);
  8. // case C.TYPE_HLS:
  9. // return new HlsDownloadHelper(uri, dataSourceFactory);
  10. case C.TYPE_OTHER:
  11. return new ProgressiveDownloadHelper(uri);
  12. default:
  13. return null;
  14. }
  15. }
  16. }

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

  1. @NonNull
  2. private MediaSource getMediaSourceWithoutSubtitles(Uri uri) {
  3. int type = Util.inferContentType(uri);
  4. switch (type) {
  5. case C.TYPE_HLS:
  6. return new HlsMediaSource.Factory(dataSourceFactory)
  7. .createMediaSource(uri);
  8. case C.TYPE_OTHER:
  9. return new ExtractorMediaSource.Factory(dataSourceFactory)
  10. .createMediaSource(uri);
  11. case C.TYPE_DASH:
  12. case C.TYPE_SS:
  13. default:
  14. throw new IllegalStateException("Unsupported type: " + type);
  15. }
  16. }

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

  1. public MediaSource buildMediaSource(Uri uri, String overrideExtension) {
  2. @C.ContentType int type = TextUtils.isEmpty(overrideExtension) ? Util.inferContentType(uri)
  3. : Util.inferContentType("." + overrideExtension);
  4. switch (type) {
  5. case C.TYPE_SS:
  6. return new SsMediaSource(uri, buildDataSourceFactory(false),
  7. new DefaultSsChunkSource.Factory(mediaDataSourceFactory), mainHandler, eventLogger);
  8. case C.TYPE_DASH:
  9. return new DashMediaSource(uri, buildDataSourceFactory(false),
  10. new DefaultDashChunkSource.Factory(mediaDataSourceFactory), mainHandler, eventLogger);
  11. case C.TYPE_HLS:
  12. return new HlsMediaSource(uri, mediaDataSourceFactory, mainHandler, eventLogger);
  13. case C.TYPE_OTHER:
  14. return new ExtractorMediaSource(uri, mediaDataSourceFactory, new DefaultExtractorsFactory(),
  15. mainHandler, eventLogger);
  16. default: {
  17. throw new IllegalStateException("Unsupported type: " + type);
  18. }
  19. }
  20. }

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

  1. private MediaSource buildMediaSource(Uri uri, String overrideExtension) {
  2. int type = Util.inferContentType(!TextUtils.isEmpty(overrideExtension) ? "." + overrideExtension
  3. : uri.getLastPathSegment());
  4. switch (type) {
  5. case C.TYPE_SS:
  6. return new SsMediaSource(uri, buildDataSourceFactory(false),
  7. new DefaultSsChunkSource.Factory(mMediaDataSourceFactory), mMainHandler, mEventLogger);
  8. case C.TYPE_DASH:
  9. return new DashMediaSource(uri, buildDataSourceFactory(false),
  10. new DefaultDashChunkSource.Factory(mMediaDataSourceFactory), mMainHandler, mEventLogger);
  11. case C.TYPE_HLS:
  12. return new HlsMediaSource(uri, mMediaDataSourceFactory, mMainHandler, mEventLogger);
  13. case C.TYPE_OTHER:
  14. return new ExtractorMediaSource(uri, mMediaDataSourceFactory, new DefaultExtractorsFactory(),
  15. mMainHandler, mEventLogger);
  16. default: {
  17. throw new IllegalStateException("Unsupported type: " + type);
  18. }
  19. }
  20. }

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

  1. private MediaSource buildMediaSource(DataSource.Factory dataSourceFactory, Uri uri, @Nullable String overrideExtension) {
  2. @C.ContentType int type = Util.inferContentType(uri, overrideExtension);
  3. switch (type) {
  4. case C.TYPE_DASH:
  5. return new DashMediaSource.Factory(dataSourceFactory)
  6. .setManifestParser(
  7. new FilteringManifestParser<>(new DashManifestParser(), getOfflineStreamKeys(uri)))
  8. .createMediaSource(uri);
  9. case C.TYPE_SS:
  10. return new SsMediaSource.Factory(dataSourceFactory)
  11. .setManifestParser(
  12. new FilteringManifestParser<>(new SsManifestParser(), getOfflineStreamKeys(uri)))
  13. .createMediaSource(uri);
  14. case C.TYPE_HLS:
  15. return new HlsMediaSource.Factory(dataSourceFactory)
  16. .setPlaylistParserFactory(
  17. new DefaultHlsPlaylistParserFactory(getOfflineStreamKeys(uri)))
  18. .createMediaSource(uri);
  19. case C.TYPE_OTHER:
  20. boolean isRtmpSource = uri.toString().toLowerCase().startsWith("rtmp://");
  21. return new ExtractorMediaSource.Factory(isRtmpSource ? new RtmpDataSourceFactory() : dataSourceFactory)
  22. .createMediaSource(uri);
  23. default: {
  24. throw new IllegalStateException("Unsupported type: " + type);
  25. }
  26. }
  27. }

相关文章