我使用 Swift / UIKit 开发了一个 iOS 广播音频应用程序,一切正常。
我想与 CarPlay 集成并获得所需的权利。
我相信我大部分都设置正确,因为我可以看到带有我的 CPListItems 的 CPListTemplate 并且在点击其中一个时,它会转到 CPNowPlayingTemplate 并且音频开始在模拟器中播放。
虽然一切似乎都运行良好,但是,有两个问题:
- 我似乎无法与 CPNowPlayingTemplate 播放/暂停按钮进行交互,我只是一直看到播放按钮,但点击它什么也没做
添加此代码后,我可以在设备的锁定屏幕上和通过命令中心执行此操作:
func setupNowPlayingInfoCenter(){
UIApplication.shared.beginReceivingRemoteControlEvents()
MPRemoteCommandCenter.shared().playCommand.isEnabled = true
MPRemoteCommandCenter.shared().playCommand.addTarget { [weak self] event in
self?.reliableRadioPlayer?.play()
return .success
}
MPRemoteCommandCenter.shared().pauseCommand.isEnabled = true
MPRemoteCommandCenter.shared().pauseCommand.addTarget { [weak self] event in
self?.reliableRadioPlayer?.pause()
return .success
}
}
- 第二个问题再次出现在同一个屏幕上,我看不到任何元数据,例如艺术作品、歌曲名称和艺术家姓名 - 借助这些代码行,这些再次显示在设备的锁定屏幕和命令中心:
MPNowPlayingInfoCenter.default().nowPlayingInfo =
[MPMediaItemPropertyTitle: currentlyPlaying.getSongName(),
MPMediaItemPropertyArtist: currentlyPlaying.getSongArtist(),
MPMediaItemPropertyArtwork: artwork]
我是否需要设置其他任何东西,或者这些仅仅是 CarPlay 模拟器的限制?
谢谢