我已经开发了一个使用Swift / UIKit的iOS无线电音频应用程序,一切都很好。
我想融入CarPlay,并获得所需的权利。
我相信我已经设置好了大部分的一切,因为我可以看到CPListTemplate与我的CPListItems和点击其中之一,它去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模拟器的限制?
谢谢
发布于 2021-06-11 07:51:09
虽然我不认为这将是最好的答案,而且可能有人会想出更好的方法,但我相信以下一些东西可以改进您如何测试CarPlay并解释您可能面临的一些问题:
#if targetEnvironment(simulator)
    UIApplication.shared.endReceivingRemoteControlEvents()
    UIApplication.shared.beginReceivingRemoteControlEvents()
#endif我立即看到模拟器显示的元数据有一些改进。

当您在CarPlay模拟器上启动应用程序,而现在的播放模板正在显示时,很可能您的音频将播放,但播放机的状态将显示,如果您有一个,这将无法在您的CPListTemplate中准确地显示isPlaying状态。


这里没有什么好担心的,因为它在车里工作很好,不过,我建议您只需单击play按钮,就可以在NowPlayingTemplate和CPListTemplate屏幕上看到有动画条的活动状态。


虽然我不认为我们大多数人都能买一辆汽车只是为了测试CarPlay,但你可以考虑购买一台支持CarPlay的汽车立体声音响,比如索尼XAV-AX5500、索尼XAV-AX1005DB或类似于像这样的低端之类的。
你不能正常地在家里用插头给汽车立体声供电,所以我建议你把一些视频打开,但是,这是我用笔记本电脑充电器找到的最简单的一个。 --基本上我认为你需要12V或更高的电源。
祝好运
https://stackoverflow.com/questions/67827936
复制相似问题