tom*_*Dev 5 audio background audio-streaming ios swift
我被困在使用Swift 5和Xcode 11在后台播放音频的过程中。
启用后台模式和启动AVAudioSession不再起作用,并且当您离开应用程序后,应用程序会在几秒钟后保持关闭状态。
首先,我得到了权利变暖,但是流开始了:
Error acquiring assertion: <NSError: 0x2829830f0; domain: RBSAssertionErrorDomain; code: 2; reason: "Required client entitlement is missing"> {
userInfo = {
RBSAssertionAttribute = <RBSLegacyAttribute: 0x1050a9040; requestedReason: MediaPlayback; reason: MediaPlayback; flags: PreventTaskSuspend | PreventTaskThrottleDown | WantsForegroundResourcePriority>;
}
Run Code Online (Sandbox Code Playgroud)
在背景上几秒钟后关闭时:
[ProcessSuspension] Background task expired while holding WebKit ProcessAssertion (isMainThread? 1).
Run Code Online (Sandbox Code Playgroud)
如果我保持打开应用程序的声音,无论如何都会停止:
[ProcessSuspension] 0x10dfc8848 - ProcessAssertion::processAssertionWasInvalidated()
Run Code Online (Sandbox Code Playgroud)
苹果喜欢每年更改一次。到目前为止,有人在iOS 13和Xcode 11 / Swift 5上工作过吗?
谢谢!
更新:我刚刚发现此问题仅影响通过WebViews播放的音频。我不确定这是否是iOS 13上的错误,或者苹果是否真的从多任务处理中削减了WebViews。因此,我更改了应用程序,现在通过AVPlayer播放音频。背景音频再次起作用。
小智 0
你把恢复播放音频的代码放在你的Appdelegate中吗
func applicationDidEnterBackground(_ application: UIApplication) {
do {
try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: [.mixWithOthers, .allowAirPlay])
try AVAudioSession.sharedInstance().setActive(true)
} catch {
print(error)
}
}
Run Code Online (Sandbox Code Playgroud)
此外,还可以根据您的目标功能启用音频、播放和画中画
| 归档时间: |
|
| 查看次数: |
547 次 |
| 最近记录: |