java - 安卓 : Update data on car audio

标签 java android metadata media-player android-bluetooth

抱歉我的英语不好。

我做一个 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/

相关文章:

java - 从线程更新 gui(另一个类)

java - Android 相机剩余空间

java - 如果所有元素都在同一个存储桶中,为什么会发生调整大小?

android - Kotlin - 数据类可以被继承

bash - 在进行 ffmpeg 转换时将元数据值转换为字符串

java - 通过文件夹树搜索并查找特定文件类型的递归方法

java - 如何在 Android 中进行一键登录和注册

android - 我如何编写一个旋转的圆形动画,比如这个(附图)?安卓

wcf - 使用包含 System.Exception 的自定义 FaultContract 对象会导致 'Add Service Reference' 失败

.net - Windows 资源管理器在哪里存储文件元数据?