【问题标题】:Testing CarPlay Audio using the simulator使用模拟器测试 CarPlay 音频
【发布时间】:2021-08-21 23:01:21
【问题描述】:

我使用 Swift / UIKit 开发了一个 iOS 广播音频应用程序,一切正常。

我想与 CarPlay 集成并获得所需的权利。

我相信我已经设置了大部分内容,因为我可以看到 CPListTemplate 和我的 CPListItems,点击其中一个,它会转到 CPNowPlayingTemplate 并且音频开始在模拟器中播放。

虽然一切似乎都运行良好,但是有两个问题:

  1. 我似乎无法与 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
    }
  }
  1. 第二个问题再次出现在同一个屏幕上,我看不到任何元数据,例如艺术作品、歌曲名称和艺术家姓名 - 在这些的帮助下,这些再次显示在设备的锁定屏幕和命令中心代码行数:
MPNowPlayingInfoCenter.default().nowPlayingInfo = 
[MPMediaItemPropertyTitle: currentlyPlaying.getSongName(),
MPMediaItemPropertyArtist: currentlyPlaying.getSongArtist(),
MPMediaItemPropertyArtwork: artwork]

我是否需要进行其他设置,或者这些仅仅是 CarPlay 模拟器的限制?

谢谢

【问题讨论】:

标签: ios swift mpnowplayinginfocenter carplay mpremotecommandcenter


【解决方案1】:

虽然我不认为这会是最佳答案,而且有人可能会想出更好的方法,但我认为以下几点可以改善您测试 CarPlay 的方式并解释您可能面临的一些问题:

  1. 在启动 NowPlayingTemplate 之前添加这两行代码
#if targetEnvironment(simulator)
    UIApplication.shared.endReceivingRemoteControlEvents()
    UIApplication.shared.beginReceivingRemoteControlEvents()
#endif

我立即看到模拟器显示的元数据有一些改进

  1. 玩家状态无法准确反映在模拟器上

当您在 CarPlay 模拟器上启动应用程序并显示正在播放的模板时,很可能您的音频正在播放,但播放器的状态将显示,这将不会在您的 CPListTemplate 中准确显示 isPlaying 状态,如果你有一个

这里没有什么可担心的,因为它在汽车上运行良好,但是,我建议只需单击播放按钮,这样您就可以在 NowPlayingTemplate 和 CPListTemplate 屏幕中看到活动状态以及动画条

  1. 在真机上测试

虽然我认为我们大多数人不能仅仅为了测试 CarPlay 而购买汽车,但您可以考虑购买支持 CarPlay 的汽车音响,例如 Sony XAV-AX5500、Sony XAV-AX1005DB 或 lower end like this

你不能用家里的插头正常给汽车音响供电,所以我建议你在 YouTube 上播放一些视频来给它供电,但是,this was the easiest one I found using a laptop charger - 基本上我相信你需要 12V 或更高的电压

祝你好运

【讨论】:

    猜你喜欢
    • 2017-07-20
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    相关资源
    最近更新 更多