gpt4 book ai didi

android - onMetadataChanged MediaControllerCompat.Callback 从未调用过

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:57:12 24 4
gpt4 key购买 nike

我正在为广播电台开发一个简单的音频播放器应用。
我已经成功制作了一个 MediaBrowser 并注册了一个回调来监听 playBack - 或 metadata 更改。

var mediaBrowser : MediaBrowserCompat by Delegates.notNull()
mediaBrowser = MediaBrowserCompat(
activity,
ComponentName(activity, MediaPlaybackService::class.java),
object : MediaBrowserCompat.ConnectionCallback() {
override fun onConnected() {
val mediaController = MediaControllerCompat(activity, mediaBrowser.sessionToken)
MediaControllerCompat.setMediaController(activity, mediaController)
mediaController.registerCallback(ControllerCallback)
mediaControllerFunc()
}
},
null
)

object ControllerCallback : MediaControllerCompat.Callback() {
override fun onMetadataChanged(metadata: MediaMetadataCompat) {
//TODO: Never called
}

override fun onPlaybackStateChanged(state: PlaybackStateCompat) {
//Called
}
}

playback 更改在我调用时收到

mediaSession.setPlaybackState(
PlaybackStateCompat.Builder()
.setActions(PlaybackStateCompat.ACTION_PLAY_PAUSE)
.setState(STATE_PLAYING, DEFAULT_PLAYBACK_POSITION, DEFAULT_PLAYBACK_SPEED)
.build()
)

但是元数据的变化不是。
即使我打电话

mediaSession.setMetadata(
MediaMetadataCompat.Builder()
.putLong(METADATA_KEY_DURATION, -1)
.putString(METADATA_KEY_TITLE, title)
.putString(METADATA_KEY_ARTIST, artist)
.putBitmap(METADATA_KEY_ALBUM_ART, albumCover)
.putString(METADATA_KEY_ALBUM_ART_URI, albumCoverUrl)
.build()
)

我缺少什么来接收元数据更改?
如果它可以帮助完整的存储库,请访问 Github

提前致谢

最佳答案

我的解决方案适用于遇到相同问题的任何人。

事实证明,我正在混合 API 的 compat(负责启动音频服务和连接到元数据的服务层)和非 compat(UI 层)变体。

特别是 Activity 。
由于我的目标是 Lollipop 及更高版本,因此我决定使用 Activity 而不是 AppCompatActivity

这显然无声地打破了 onMetadataChanged()MediaControllerCompat.Callback,但不是 onPlaybackStateChanged()
好像找不到原因?!

在代码中它就像改变一样简单:

class PlayableActivity : Activity() { ... }

到:

class PlayableActivity : AppCompatActivity() { ... }

关于android - onMetadataChanged MediaControllerCompat.Callback 从未调用过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47292459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com