Post

Replies

Boosts

Views

Activity

RemoteMediaSession started while the app is in the background no longer appears in Control Center (worked in earlier betas)
My app publishes a NowPlaying.RemoteMediaSession for music playing on speakers on the local network. While the app is in the background and someone taps play on my widget, that intent runs in my app process and wakes the app in the background — it can fetch the speaker state and start and update the remote session without any trouble. As of Beta 6, the session is created successfully but never shows up in Control Center or on the Lock Screen. It only appears the moment I bring my app to the foreground. In earlier betas the same code showed the session in control center, without needing to open the app. I don't call requestToBecomeSystemPrimary() and I don’t expect it to be set as primary, only when my app is in the foreground but at least the session should appear in control center or the lock screen as an option for the user to set it to system primary. FB24439526 has been submitted with Sysdiagnose attached.
1
2
146
1w
Setting appEntityIdentifiers on Now Playing content from a RemoteMediaSessionExtension
I'm using the new RemoteMediaSession API (iOS 27) to surface a remote device's playback (network speakers) on the Lock Screen / Control Center. I'd like to link the presented MusicContent to my App Intents entities so Siri can answer "what's playing?" / "tell me more about this artist," using appEntityIdentifiers. The problem: that property is unavailable in extensions. @available(iOSApplicationExtension, unavailable) extension MediaContentRepresentable { public var appEntityIdentifiers: [EntityIdentifier] { get set } } Result: an extension-hosted remote session seems to have no supported way to attach App Intents entity identifiers to its content. A local MediaSession can set it, but only while the app is running. Questions: Is there a supported way to associate appEntityIdentifiers with RemoteMediaSession content that I'm missing? If not, is this an intentional limitation? I've filed an enhancement request — FB24301827. Any guidance appreciated. Thanks!
0
0
430
Aug ’26
RemoteMediaSession device add/remove
Are there plans to extend the session or MediaDevice capabilities to be able to add and remove speakers via the Lock Screen and Control Center? For example, user may have multiple speakers, they start playback on a subset of them and would like to add other speakers or remove some from the session through Control Center.
1
0
322
Jun ’26
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.
0
0
724
Jul ’23
NWListener stops receiving incoming connections after a minute
I am listening to DLNA notifications over TCP and for about a minute, my NWListener instance keeps receiving new notifications but after about a minute, it stops getting the notifications. NWListener is still alive at that point and the DLNA subscription is valid as well. No such issues when listening using GCDWebserver. Am I missing something obvious with NWListener?
3
0
824
Jun ’23
Post gamepad HID events to the system
Wondering if it possible to post HID Gamepad events to the system similar to keyboard and mouse NSEvent or CGEvent. I am able to monitor gamepad events and get the usage value via IOHIDElementGetUsage (48 and 49 for the axis) and the value via IOHIDValueGetIntegerValue. I would like to generate these same events from code to simulate them without any actual controller attached to the system.
0
1
971
Jan ’22
RemoteMediaSession started while the app is in the background no longer appears in Control Center (worked in earlier betas)
My app publishes a NowPlaying.RemoteMediaSession for music playing on speakers on the local network. While the app is in the background and someone taps play on my widget, that intent runs in my app process and wakes the app in the background — it can fetch the speaker state and start and update the remote session without any trouble. As of Beta 6, the session is created successfully but never shows up in Control Center or on the Lock Screen. It only appears the moment I bring my app to the foreground. In earlier betas the same code showed the session in control center, without needing to open the app. I don't call requestToBecomeSystemPrimary() and I don’t expect it to be set as primary, only when my app is in the foreground but at least the session should appear in control center or the lock screen as an option for the user to set it to system primary. FB24439526 has been submitted with Sysdiagnose attached.
Replies
1
Boosts
2
Views
146
Activity
1w
'Path was denied by NECP policy' in RemoteMediaSessionExtension
My app is using RemoteMediaSessionExtension to control speakers over the local network via the new Now Playing framework. Starting with Beta 6, local network calls from the extension fail with 'Path was denied by NECP policy' error. Is it a bug or an intentional change in the latest beta?
Replies
3
Boosts
0
Views
313
Activity
2w
Setting appEntityIdentifiers on Now Playing content from a RemoteMediaSessionExtension
I'm using the new RemoteMediaSession API (iOS 27) to surface a remote device's playback (network speakers) on the Lock Screen / Control Center. I'd like to link the presented MusicContent to my App Intents entities so Siri can answer "what's playing?" / "tell me more about this artist," using appEntityIdentifiers. The problem: that property is unavailable in extensions. @available(iOSApplicationExtension, unavailable) extension MediaContentRepresentable { public var appEntityIdentifiers: [EntityIdentifier] { get set } } Result: an extension-hosted remote session seems to have no supported way to attach App Intents entity identifiers to its content. A local MediaSession can set it, but only while the app is running. Questions: Is there a supported way to associate appEntityIdentifiers with RemoteMediaSession content that I'm missing? If not, is this an intentional limitation? I've filed an enhancement request — FB24301827. Any guidance appreciated. Thanks!
Replies
0
Boosts
0
Views
430
Activity
Aug ’26
RemoteMediaSession device add/remove
Are there plans to extend the session or MediaDevice capabilities to be able to add and remove speakers via the Lock Screen and Control Center? For example, user may have multiple speakers, they start playback on a subset of them and would like to add other speakers or remove some from the session through Control Center.
Replies
1
Boosts
0
Views
322
Activity
Jun ’26
Integrating Siri with AppIntent that doesn't fit a pre-defined schema/domain
I have an app that controls speakers. Among others it has an action to change various settings. The intent has three parameters, setting, value (dependent on the setting selected) and speaker. Is it possible for Siri to understand phrases such as 'Turn On Night Mode in Bedroom' or 'Set Bass to 2 in Bedroom'?
Replies
1
Boosts
0
Views
320
Activity
Jun ’26
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.
Replies
0
Boosts
0
Views
724
Activity
Jul ’23
NWListener stops receiving incoming connections after a minute
I am listening to DLNA notifications over TCP and for about a minute, my NWListener instance keeps receiving new notifications but after about a minute, it stops getting the notifications. NWListener is still alive at that point and the DLNA subscription is valid as well. No such issues when listening using GCDWebserver. Am I missing something obvious with NWListener?
Replies
3
Boosts
0
Views
824
Activity
Jun ’23
Post gamepad HID events to the system
Wondering if it possible to post HID Gamepad events to the system similar to keyboard and mouse NSEvent or CGEvent. I am able to monitor gamepad events and get the usage value via IOHIDElementGetUsage (48 and 49 for the axis) and the value via IOHIDValueGetIntegerValue. I would like to generate these same events from code to simulate them without any actual controller attached to the system.
Replies
0
Boosts
1
Views
971
Activity
Jan ’22