抱歉我的英语不好。
我做一个 radio 播放器。我可以获得当前的名称和标题,因此每 15 秒我就会读取新信息并将其显示在主要 Activity 和通知中。当我将手机连接到汽车时,第一个艺术家就会很好地显示出来。当第二次到来时,我的手机上的名字是正确的,但汽车屏幕上的名字没有更新。每次连接停止并重新启动时,名称都是正确的,但在下一首歌曲出现时不会更新。
我的类(class)实现了 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的更新没有发送到蓝牙设备。
有强制同步的命令吗?
感谢您的帮助。
JC
最佳答案
每次轨道信息发生变化时,您都必须调用 MediaSession.setMetadata(MediaMetadataCompat 元数据)。 https://developer.android.com/guide/topics/media-apps/media-apps-overview#mediasession-and-mediacontroller 要获取元数据更改的更新,您需要注册 MediaController.Callback 以调用 MediaControllerCompat.registerCallback(ControllerCallback)。 因此,当您为 MediaSession 设置新的元数据时,该元数据将在 MediaController.Callback 的 onMetadataChanged (MediaMetadata 元数据) 回调中收到 ( https://developer.android.com/reference/android/media/session/MediaController.Callback?hl=en#onMetadataChanged(android.media.MediaMetadata) ) 方法。
关于java - 安卓 : Update data on car audio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61689383/