我的应用程序已经是手机上当前的“正在播放的应用程序”(即所有必需的信息都已提供给MPNowPlayingInfoCenter
),并且它正确显示在锁定屏幕中,包括艺术家姓名、曲目标题、艺术品图像等。
根据文档,填充MPNowPlayingInfoCenter.default().nowPlayingInfo
和添加正确的目标/操作MPRemoteCommandCenter
应该足以确保当用户点击Now Playing
图标时在 CarPlay 中调用您的应用程序。
在 iOS 14 上,我设法通过推送到堆栈来实现上述目标CPNowPlayingTemplate
,这要归功于我在本文中发现的一些巧妙技巧。
不过,在 iOS 13 上,一切都基于可怕的MPPlayableContentManager
API,并且没有CPTemplateApplicationSceneDelegate
为基于音频的应用程序调用任何方法,我根本找不到方法来检测是否/何时显示“正在播放”屏幕。
MPNowPlayingInfoCenter
并且MPRemoteCommandCenter
配置正确 - 如上所述 - 但在 iOS 13 上点击 CarPlay 中的“正在播放”图标时,我的应用程序没有被拾取。
我认为这个 API会帮助我,但我不知道如何(它总是返回一个空数组)。
唯一的解决方法似乎是添加<key>UIBrowsableContentSupportsImmediatePlayback</key><true/>
到您的Info.plist
: Now Playing 得到正确显示,但它立即开始播放,这不是我想要的。
谁能提供一个可行的解决方案?