我正在向我的应用添加对 Android Auto 上播放的支持。我已经成功创建了扩展 MediaBrowserServiceCompat 的服务,并且一切正常。在 Android Auto 中,我可以单击要播放的 MediaItem,然后开始播放。在“正在播放”屏幕上,如果我点击播放列表/队列按钮,我会看到以下日志:
D/GH.UnCfbMediaActivity: openQueue
D/GH.MediaModel: unsubscribe mediaId=QUEUE_ROOT
D/GH.UnCfbMediaActivity: subscribeCFAdapterToQueue
D/GH.MediaModel: subscribe mediaId=QUEUE_ROOT
unsubscribe mediaId=QUEUE_ROOT
D/GH.VnActivity: disableInteraction
D/GH.MediaModel: Loaded 10 children for QUEUE_ROOT.
显示当前队列(包含我希望看到的 10 个 MediaItem),并且我点击队列中的 MediaItem,Android Auto 返回“正在播放”屏幕,但不播放我在队列中选择的 MediaItem 。我预计会在我的服务中看到对 onPlayFromMediaId()
方法的另一次调用,但没有任何回调。这意味着我无法通过选择队列中的项目来更改正在播放的歌曲。
我显然错过了一些东西,但我无法弄清楚。感谢所有帮助。
谢谢!
最佳答案
找到答案了! MediaSessionCompat.Callback
有一个方法onSkipToQueueItem(long id)
,一旦选择了当前队列中的MediaItem
,就会调用该方法。覆盖此方法,当选择队列项目时您将收到通知。
关于android - 在 Android 自动队列中选择媒体项目没有任何作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53837783/