From a1103d3d3fd299efca6323d8a9cb622edaaec383 Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 2 May 2023 15:40:10 +0800 Subject: [PATCH] Update ExoUtil.java --- .../main/java/com/fongmi/android/tv/player/ExoUtil.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java index 41732cffd..bc5368832 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java @@ -2,6 +2,7 @@ package com.fongmi.android.tv.player; import android.graphics.Color; import android.net.Uri; +import android.util.Base64; import androidx.media3.common.MediaItem; import androidx.media3.common.MimeTypes; @@ -85,11 +86,13 @@ public class ExoUtil { } private static MediaSource getSource(Map headers, String url, List subs, int errorCode) { - return new DefaultMediaSourceFactory(getDataSourceFactory(headers), getExtractorsFactory()).createMediaSource(getMediaItem(url, subs, errorCode)); + Uri uri = Uri.parse(url.trim().replace("\\", "")); + if (uri.getUserInfo() != null) headers.put(HttpHeaders.AUTHORIZATION, "Basic " + Base64.encodeToString(uri.getUserInfo().getBytes(), Base64.NO_WRAP)); + return new DefaultMediaSourceFactory(getDataSourceFactory(headers), getExtractorsFactory()).createMediaSource(getMediaItem(uri, subs, errorCode)); } - private static MediaItem getMediaItem(String url, List subs, int errorCode) { - MediaItem.Builder builder = new MediaItem.Builder().setUri(Uri.parse(url.trim().replace("\\", ""))); + private static MediaItem getMediaItem(Uri uri, List subs, int errorCode) { + MediaItem.Builder builder = new MediaItem.Builder().setUri(uri); if (errorCode == PlaybackException.ERROR_CODE_PARSING_MANIFEST_MALFORMED) builder.setMimeType(MimeTypes.APPLICATION_OCTET); else if (errorCode == PlaybackException.ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED) builder.setMimeType(MimeTypes.APPLICATION_M3U8); if (subs.size() > 0) builder.setSubtitleConfigurations(getSubtitles(subs));