iOS 13 - WkWebView: audio stops when in background

倖福魔咒の 提交于 2020-05-09 17:57:46

问题


I've an app that uses WkWebView to play audio from Soundcloud, on iOS 13 Beta 6 the audio stops when the app is not in foreground, even when Audio is on in Background Modes.

When starting the playback this assertions is thrown:

Error acquiring assertion: <NSError: 0x282cf67c0; domain: RBSAssertionErrorDomain; code: 2; reason: "Required client entitlement is missing"> {
userInfo = {
    RBSAssertionAttribute = <RBSLegacyAttribute: 0x1592432e0; requestedReason: MediaPlayback; reason: MediaPlayback; flags: PreventTaskSuspend | PreventTaskThrottleDown | WantsForegroundResourcePriority>;
} 

And after entering background state the following assertion is thrown and audio suspended:

Can't end BackgroundTask: no background task exists with identifier 13 (0xd), or it may have already been ended. Break in UIApplicationEndBackgroundTaskError() to debug. 
[ProcessSuspension] Background task expired while holding WebKit ProcessAssertion (isMainThread? 1).

This is not happening in iOS 12, where the audio plays normally when in background.


回答1:


I guess you are using Capacitor.

I'm running into the same issue as you and it looks like the last error about 'no background task exists' has something to do with Capacitor's BackgroundTask Plugin, wether you're using it or not (BackgroundTask.swift)

It's clear something changed between iOS 12 and iOS 13, but so far haven't figured out how to define the required entitlements for background audio.

EDIT: It only happens when using HTML5 Audio.



来源:https://stackoverflow.com/questions/57526699/ios-13-wkwebview-audio-stops-when-in-background

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!