Tôi đang phát triển một ứng dụng Trình phát âm thanh đơn giản cho một đài phát thanh.
Tôi đã thực hiện thành công số MediaBrowser
và đã đăng ký gọi lại để nghe số playBack
- hoặc metadata
thay đổi.onMetadataChanged MediaControllerCompat.Callback không bao giờ được gọi là
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
}
}
Các playback
thay đổi được nhận khi tôi gọi
mediaSession.setPlaybackState(
PlaybackStateCompat.Builder()
.setActions(PlaybackStateCompat.ACTION_PLAY_PAUSE)
.setState(STATE_PLAYING, DEFAULT_PLAYBACK_POSITION, DEFAULT_PLAYBACK_SPEED)
.build()
)
Tuy nhiên siêu dữ liệu thay đổi thì không.
Mặc dù tôi gọi
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()
)
Tôi thiếu gì để nhận thay đổi siêu dữ liệu?
Nếu nó có thể giúp kho hoàn chỉnh có sẵn trên Github
Cảm ơn trước
Tôi có. Không chính xác – tim