从锁定设备启动时,CarPlay音频应用程序无法启动

Lor*_*eto 8 ios carplay ios12

我们有一个音频应用程序,我们想要添加CarPlay.该应用程序基本上有一个无线电流列表,用户可以选择一个播放.

如果我在连接到CarPlay时从手机启动应用程序,或者如果我从CarPlay启动它并且设备已解锁,那么一切都很好.如果设备被锁定,应用程序启动,我可以在CarPlay中看到列表中的元素,但是当选择其中一个元素时,没有任何反应.

我已经实现了MPPlayableContentDelegate,MPPlayableContentDataSource应用程序已选择音频背景模式.流从网络获取,然后缓存到磁盘.

每个人都遇到过同样的问题,或者对如何解决这个问题有任何暗示?你知道Apple是否有一个简单的工作音频应用程序和CarPlay支持测试?

Lor*_*eto 1

我解决了将代码移动到设置并激活音频会话的问题AppDelegate。以前这是在管理所有流的单例中处理的,是MPPlayableContentDelegateand MPPlayableContentDataSource

将其移至 AppDelegate 解决了问题,但我仍然不知道为什么:

func startAudioSession() {
    let audioSession = AVAudioSession.sharedInstance()
    do {
        try audioSession.setCategory(.playback, mode: .default)
        try audioSession.setActive(true, options: AVAudioSession.SetActiveOptions.notifyOthersOnDeactivation)
    } catch let error as NSError {
        print("Unable to activate audio session:  \(error.localizedDescription)")
    }
}
Run Code Online (Sandbox Code Playgroud)

我还将 stremaming 的域添加到 Info.plist 中的应用程序传输安全条目以允许 HTTP ( NSExceptionAllowsInsecureHTTPLoads)。之前有的只是Allow Arbitrary Loads太真实了。不知道这是否有帮助。