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

时间:2018-11-07 13:06:29

标签: ios ios12 carplay

我们有一个音频应用程序,我们想向其中添加CarPlay。该应用程序基本上有一个广播流列表,用户可以选择其中一个播放。

如果我在连接到CarPlay的同时从手机启动该应用程序,或者从CarPlay启动该应用程序且设备已解锁,则一切都很好。如果设备被锁定,则应用程序将启动,我可以在CarPlay中看到列表中的元素,但是当选择其中之一时,什么也不会发生。

我已实现MPPlayableContentDelegateMPPlayableContentDataSource,并且该应用已选择了音频背景模式。从网络中获取流,然后将其缓存到磁盘。

每个人都遇到过同样的问题或对如何解决有任何暗示吗?你知道苹果是否有一个简单的音频应用程序可以支持CarPlay进行测试?

1 个答案:

答案 0 :(得分:0)

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

将其移至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)")
    }
}

我还将摘要的域添加到了Info.plist中的App Transport Security条目中,以允许HTTP(NSExceptionAllowsInsecureHTTPLoads)。之前只有Allow Arbitrary Loads声明太真实。不知道有没有帮助。