Как автоматически обновлять метаданные уведомлений в exoplayer?Android

Форум для тех, кто программирует под Android
Anonymous
Как автоматически обновлять метаданные уведомлений в exoplayer?

Сообщение Anonymous »


Я пытаюсь обновить метаданные, поступающие из уведомлений медиаплеера (с помощью exoplayer). Это вызывает проблему, из-за которой список воспроизведения песен не синхронизируется с метаданными в уведомлении, а метаданные в уведомлениях не изменяются сразу после внесения изменений.

Я создал приложение для mp3-плеера, но при обновлении сведений о треке изменения не отражаются в уведомлениях, если только песня не останавливается и не возобновляется.

например, вызов onPrepare (когда песня останавливается и воспроизводится снова) заставляет все работать как обычно

... переопределить удовольствие onPrepareFromMediaId( mediaId: Строка, playWhenReady: логическое значение, дополнительные услуги: Комплект? ) { exoplayer.setMediaSource(audioPlaybackRepository.getMediaSources()) onPlaybackPrepare(audioPlaybackRepository.getMediaMetadata(mediaId)) exoplayer.prepare() exoplayer.play() } Источники мультимедиа обновляются в «playlistedMediaMetadataList» и передаются в объединяющий источник мультимедиа. опять же, если вызывается onPrepare, ошибка прекращается

переопределить fun getMediaSources(): ConcatenatingMediaSource { объединениеMediaSource.clear() playlistedMediaMetadataList.value?.forEach { метаданные -> val allTracksMediaSource = ProgressiveMediaSource.Factory(defaultDataSourceFactory) .createMediaSource( MediaItem.fromUri( метаданные.getString(MediaMetadataCompat.METADATA_KEY_MEDIA_URI) .toUri() ) ) объединениеMediaSource.addMediaSource(allTracksMediaSource) } вернуть объединение MediaSource } } Я испортил методы onPrepare, чтобы поместить их в другое место, но это привело к сбою.

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