Android: обновить данные по автомобильной аудиосистеме. - PullRequest
0 голосов
/ 09 мая 2020

Извините за мою пору engli sh.

Я вообще радио плеер. Я могу получить текущее имя и заголовок, поэтому каждые 15 секунд я читаю новую информацию и отображаю ее в основном действии и в уведомлении. Когда я подключаю телефон к машине, хорошо отображается firdt artist. Когда приходит второй, имя на моем телефоне правильное, но не обновляется на экране автомобиля. Каждый раз, когда соединение останавливается и перезапускается, имя правильное, но никогда не обновляется, когда приходит следующая песня.

Мой класс реализует AudioManager.

Я использую этот код для обновления метаданных:

mediaSession - это MediaSessionCompat

   mediaSession.setMetadata(new MediaMetadataCompat.Builder()
    .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, strArtist)
    .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, strAlbum)
    .putString(MediaMetadataCompat.METADATA_KEY_TITLE, strTitle)
    .build()); 

Я думаю, что обновление mediaSession не отправляется на устройство bluetooth.

Есть ли команда для принудительной синхронизации c?

Спасибо за любую помощь.

J C

Ответы [ 2 ]

0 голосов
/ 23 июля 2020

Вы должны вызывать MediaSession.setMetadata (метаданные MediaMetadataCompat) каждый раз, когда отслеживаете изменение информации. (назовите его в callback'ах mediasession onPlay / onPause / onStop из MediaSessionCompat.Callback ) https://developer.android.com/guide/topics/media-apps/audio-app/mediasession-callbacks

0 голосов
/ 12 июня 2020

Вы должны вызывать MediaSession.setMetadata (метаданные MediaMetadataCompat) каждый раз, когда отслеживаете изменение информации. https://developer.android.com/guide/topics/media-apps/media-apps-overview#mediasession -and-mediacontroller Чтобы получить обновление для изменения метаданных, вам необходимо зарегистрироваться в MediaController.Callback для вызова MediaControllerCompat.registerCallback (ControllerCallback). Поэтому, когда вы устанавливаете новые метаданные для MediaSession, эти метаданные будут получены в обратном вызове onMetadataChanged (метаданные MediaMetadata) метода MediaController.Callback (https://developer.android.com/reference/android/media/session/MediaController.Callback?hl=en#onMetadataChanged (android .media.MediaMetadata) ).

...