Community音响:Android:更新汽车音响数据

对不起我的毛孔英语。

我做一个广播播放器。我可以获得当前名称和标题,因此每 15 秒我就会阅读新信息并将其显示在主要活动和通知中。当我将手机连接到汽车时,第一个艺术家会很好地显示出来。第二次来临时,我的手机上的名称是正确的,但不会在汽车屏幕上更新。每次停止连接并重新启动时,名称都是正确的,但下一首歌来临时不会更新。

我的类实现 AudioManager。

我使用此代码更新元数据:

mediaSession 是一个 MediaSessionCompat

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

我认为 mediaSession 的更新不会发送到蓝牙设备。

是否有强制同步的命令?

谢谢你的帮助。

JC

0

您必须在每次跟踪信息更改时调用 MediaSession.setMetadata (MediaMetadataCompat metadata)。https://developer.android.com/guide/topics/media-apps/media-apps-overview#mediasession-and-mediacontroller要获取元数据更改的更新,您需要注册 MediaController.Callback 以调用 MediaControllerCompat.registerCallback (ControllerCallback)。因此,当您为 MediaSession>设置新的元

0

每次跟踪信息更改时,您都必须调用 MediaSession.setMetadata (MediaMetadataCompat metadata)。(在 mediasession 中调用它回调您 onPlay / onPause / onStop 从MediaSessionCompat.Callback)https://developer.android.com/guide/topics/media-apps/audio-app/mediasession-callbacks

0

我面临这个问题。问题有点。在我的情况下,我没有设置音乐的持续时间。而且总是只会到 0。经过对 google 和 stack 溢出本身的大量研究。我无法获得解决方案。但最后,我找到了它,现在它工作正常。如果你们中的一个也面临同样的问题,请通过以下解决方案。

    private fun initMediaSessionMetadata(currentTrack: MusicModel?) {
    var duration =
        (currentTrack?.duration?.toLong() ?: mMediaPlayer?.duration?.toLong()) ?: 1000
    duration = if (duration <= 0) 1000 else duration
    val info = MediaMetadataCompat.Builder()
        .putString(MediaMetadata.METADATA_KEY_MEDIA_ID, currentTrack?.id.toString())
        .putString(MediaMetadata.METADATA_KEY_TITLE, currentTrack?.name)
        .putString(MediaMetadata.METADATA_KEY_ARTIST, currentTrack?.artists)
        .putString(MediaMetadata.METADATA_KEY_ALBUM_ART_URI, currentTrack?.thumbnail)
        .putLong(MediaMetadata.METADATA_KEY_DURATION, duration)
    val metadata = info.build()
    mediaSession?.setMetadata(metadata)
}

我希望你现在能够破解它。以下行只是我的主要问题
duration = if (duration <= 0) 1000 else duration
在此之后,我的代码工作得很好。如果您有任何查询,您可以通过评论连接我。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(841)
背调后offer被取消几率:设置远程应答sdp webrtcandroid后再次创建offer
上一篇
Catia26安装教程:在android8中以编程方式安装apk(API26)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(31条)