【问题标题】:CarPlay audio app can't start when launched from locked device从锁定的设备启动 CarPlay 音频应用程序时无法启动
【发布时间】:2019-04-10 22:02:35
【问题描述】:

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

如果我在连接到 CarPlay 的情况下从手机启动应用程序,或者如果我从 CarPlay 启动应用程序并且设备已解锁,则一切正常。如果设备被锁定应用程序开始,我可以在卡片扮演中看到列表中的元素,但是当其中一个被选择时,没有任何反应。

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

大家有没有遇到同样的问题或者有任何解决方法的提示?您是否知道 Apple 是否有一个简单的、支持 CarPlay 的音频应用程序可供测试?

【问题讨论】:

标签: ios ios12 carplay


【解决方案1】:

我解决了将代码移动到设置和激活音频会话到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 太真实了。不知道有没有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多