Android Media3 Exoplayer: как установить разные файлы cookie для каждого HlsMediaSource при вызове функции addMediaItem(Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Android Media3 Exoplayer: как установить разные файлы cookie для каждого HlsMediaSource при вызове функции addMediaItem(

Сообщение Anonymous »

Недавно я пытаюсь перенести автономный SDK Exoplayer в Media3 Exoplayer.

Пока я реализую MediaLibrayService и прослушиватель обратного вызова, я могу воспроизводить обычный URL-адрес mp3 через MediaController.setMediaItem().Но моему проекту необходимо воспроизводить каждый источник HLS(.m3u8) с разными файлами cookie.

Я пытаюсь переопределить onAddMediaItems для установки файла cookie для каждого элемента мультимедиа, но он не работает и продолжает получать Вызвано: androidx.media3.datasource.HttpDataSource$InvalidResponseCodeException: Код ответа: 403.
Ниже приведена часть моего кода. Надеюсь, кто-нибудь даст мне несколько советов по решению этой проблемы.
MediaLibraryService
override fun onAddMediaItems(
mediaSession: MediaSession,
controller: MediaSession.ControllerInfo,
mediaItems: MutableList,
): ListenableFuture {
val updatedMediaItems = mediaItems.map {
val cookie = it.requestMetadata.extras?.getString("COOKIE") ?: ""
val httpSourceFactory = DefaultHttpDataSource.Factory().apply {
setDefaultRequestProperties(mapOf("Cookie" to cookie))
setUserAgent("Mozilla/5.0 (Linux; Android 12; SM-A136B Build/SP1A.210812.016; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/130.0.6723.107 Mobile Safari/537.36")
setConnectTimeoutMs(DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS)
setReadTimeoutMs(DefaultHttpDataSource.DEFAULT_READ_TIMEOUT_MILLIS)
setAllowCrossProtocolRedirects(true)
}
httpSourceFactory.createDataSource().setRequestProperty("Cookie", cookie)
val mediaSourceFactory = HlsMediaSource.Factory(httpSourceFactory)
.createMediaSource(it)

(mediaSession.player as? ExoPlayer)?.setMediaSource(mediaSourceFactory)

it
}.toMutableList()
return Futures.immediateFuture(updatedMediaItems)
}

Активность игрока
private fun playAudio() {
val controller = this.controller ?: return
val cookie: String = getString(
R.string.cookies_format,
"Axxxxxxxxxxxxxxxxxxxxxxx",
"ga______",
"eyyyyyyyyyyyyyyyyyyyyyyyyyy"
)
val cookieBundle = Bundle().apply {
putString("COOKIE", cookie)
}

val mediaMetadata = MediaMetadata.Builder()
.setAlbumTitle("SoundHelix")
.setDisplayTitle("Song 1")
.build()

val mediaItem = MediaItem.Builder()
.setUri(
"https://test.net/media/out/11111/hls/11/11111.m3u8"
)
.setRequestMetadata(
RequestMetadata.Builder()
.setExtras(cookieBundle).build()
)
.setMediaMetadata(mediaMetadata)
.build()

controller.setMediaItem(mediaItem)
controller.prepare()
controller.play()
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... iasource-w
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Видеофайл невозможно воспроизвести в Exoplayer. Ошибка androidx.media3.exoplayer.ExoPlaybackException: ошибка источника
    Anonymous » » в форуме Android
    0 Ответы
    57 Просмотры
    Последнее сообщение Anonymous
  • Cookie Cookie Cookie Cookie Core Identity ASP.NET хранится, но не разрешается - Blazor Web App
    Гость » » в форуме C#
    0 Ответы
    46 Просмотры
    Последнее сообщение Гость
  • Как использовать Glide for Media3 Уведомления Images в Media3?
    Anonymous » » в форуме Android
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Как предварительно загрузить видео с помощью media3 exoplayer в Android Kotlin?
    Anonymous » » в форуме Android
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Android: androidx.media3.exoplayer.ExoPlaybackException: ошибка источника
    Anonymous » » в форуме Android
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»