Can't reload widgets when app is in background and having an active AVAudioSession background audio playing.

As per WidgetKit TimelineProvider documentation: "When your app is in the foreground, has an active media session, or is using the standard location service, refreshes don’t count against the widget’s daily limit. For more information about media sessions and location services, see AVAudioSession and Configuring your app to use location services."

That suggests that I should be able to reload my widget from the background with the most up to date details of the active media session.

However, that doesn't appear to be working either when trying to reload all timelines or just a specific one. All other background processing is working fine in the app otherwise, including the media playback.

Media session is started by the following code:

do {
        try AVAudioSession.sharedInstance().setCategory(.playback, options: .mixWithOthers)
            print("AVAudioSession Category Playback OK")
            try AVAudioSession.sharedInstance().setActive(true)
            print("AVAudioSession is Active")
            print(AVAudioSession.sharedInstance())
        } catch let error as NSError {
            print(error.localizedDescription)
        }
let item = AVPlayerItem(url: URL(string: "https://cdn.smartersoft-group.com/various/pull-bell-short.mp3")!)
self.queuePlayer = AVQueuePlayer(playerItem: item)
self.queuePlayer?.volume = 0.0
self.playerLooper = AVPlayerLooper(player: self.queuePlayer!, templateItem: item)
self.queuePlayer?.playImmediately(atRate: 1.0)
self.queuePlayer?.volume = 2.0

Wondering if I am misunderstanding the documentation and it's not a supported use case or a bug.

FB12782013 has been submitted.

Can't reload widgets when app is in background and having an active AVAudioSession background audio playing.
 
 
Q