Advertisement
solodroid

ExoPlayer buildMediaSource Method

Apr 11th, 2025
392
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.49 KB | None | 0 0
  1.     @SuppressLint("SwitchIntDef")
  2.     private MediaSource buildMediaSource(Uri uri, DefaultDataSource.Factory dataSourceFactory) {
  3.         MediaItem mMediaItem = MediaItem.fromUri(Uri.parse(String.valueOf(uri)));
  4.         int type = TextUtils.isEmpty(null) ? Util.inferContentType(uri) : Util.inferContentType("." + null);
  5.         switch (type) {
  6.             case C.TYPE_DASH:
  7.                 return new DashMediaSource.Factory(dataSourceFactory)
  8.                         .createMediaSource(mMediaItem);
  9.             case C.TYPE_HLS:
  10.                 return new HlsMediaSource.Factory(dataSourceFactory)
  11.                         .setAllowChunklessPreparation(true)
  12.                         .createMediaSource(mMediaItem);
  13.             case C.TYPE_OTHER:
  14.                 if (uri.toString().contains(".m3u8")) {
  15.                     return new HlsMediaSource.Factory(dataSourceFactory)
  16.                             .setAllowChunklessPreparation(true)
  17.                             .createMediaSource(mMediaItem);
  18.                 } else {
  19.                     return new ProgressiveMediaSource.Factory(dataSourceFactory, new DefaultExtractorsFactory())
  20.                             .createMediaSource(mMediaItem);
  21.                 }
  22.             case C.TYPE_RTSP:
  23.                 return new RtspMediaSource.Factory()
  24.                         .createMediaSource(MediaItem.fromUri(uri));
  25.             default: {
  26.                 throw new IllegalStateException("Unsupported type: " + type);
  27.             }
  28.         }
  29.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement