Yar_Rick
@Yar_Rick
yareg.com

Как обновить метаданные для проигрываемого медиа без прерывания воспроизведения?

Я работаю с библиотеками androidx.media3 и разрабатываю сервис на основе MediaSessionService. В своем колбеке MediaSessionCallback, я пытаюсь обработать запрос на изменение рейтинга медиа:

override fun onSetRating(
    session: MediaSession,
    controller: ControllerInfo,
    rating: Rating
): ListenableFuture<SessionResult> {

    val item = session.player.currentMediaItem

    item?.let {
        val metadata  = it.mediaMetadata.buildUpon().setUserRating(rating).build()
        val mediaItem = it.buildUpon().setMediaMetadata(metadata).build()
        session.player.setMediaItem(mediaItem, false)
    }
    
    return Futures.immediateFuture(SessionResult(SessionResult.RESULT_SUCCESS))
}

Всё работает, но звук на мгновение прерывается, что неудивительно, ведь я по сути устанавливаю в плеер новый трек. Вопрос в том, как просто обновить текущие метаданные в плеере? Или вопрос шире - как должна работать эта фича с рейтингом в MediaSession?
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы