我们有一个音频应用程序,我们想要添加CarPlay.该应用程序基本上有一个无线电流列表,用户可以选择一个播放.
如果我在连接到CarPlay时从手机启动应用程序,或者如果我从CarPlay启动它并且设备已解锁,那么一切都很好.如果设备被锁定,应用程序启动,我可以在CarPlay中看到列表中的元素,但是当选择其中一个元素时,没有任何反应.
我已经实现了MPPlayableContentDelegate,MPPlayableContentDataSource应用程序已选择音频背景模式.流从网络获取,然后缓存到磁盘.
每个人都遇到过同样的问题,或者对如何解决这个问题有任何暗示?你知道Apple是否有一个简单的工作音频应用程序和CarPlay支持测试?
我解决了将代码移动到设置并激活音频会话的问题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太真实了。不知道这是否有帮助。
| 归档时间: |
|
| 查看次数: |
253 次 |
| 最近记录: |