我正在为我的应用添加对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 。我希望在Service中看到另一个对onPlayFromMediaId()
方法的调用,但是没有任何回调。这意味着我无法通过选择队列中的项目来更改播放的歌曲。
我显然缺少了一些东西,但我无法弄清楚。感谢所有帮助。
谢谢!
答案 0 :(得分:0)
找到答案! MediaSessionCompat.Callback
具有方法onSkipToQueueItem(long id)
,一旦选择了当前队列中的MediaItem
,就会调用该方法。覆盖此方法,选择队列项目时会通知您。