抱歉,我的英语口语不好。
我是广播员。我可以获得当前的名称和标题,因此每15秒钟阅读一次新信息,并将其显示在主要活动和通知中。当我将手机连接到汽车时,firtt艺术家会很好地显示。当第二次出现时,名字在我的手机上是正确的,但在汽车屏幕上没有更新。每次连接停止并重新启动时,名称都是正确的,但是下一首歌曲到来时永远不会更新。
我的班级实现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))方法。