AVCaptureSession multitasking camera access on iPhone without VoIP background mode

I'm developing an iPhone screen-recording application that simultaneously records the front-facing camera and displays the live camera feed using Picture in Picture while the user navigates other apps.

The implementation uses AVFoundation (AVCaptureSession) for camera capture and a system Picture in Picture controller for the floating window.

I've encountered the following behavior on a physical iPhone:

With voip declared in UIBackgroundModes, isMultitaskingCameraAccessSupported returns true, and the front camera continues capturing while another app is foregrounded.

Without voip, isMultitaskingCameraAccessSupported returns false.

When the application enters the background, the capture session is interrupted and camera frames stop.

Screen recording and the Picture in Picture window continue, but the camera feed freezes or becomes blank.

Apple App Review has confirmed that declaring voip without actual VoIP functionality is not permitted under Guideline 2.5.4.

I understand and respect that restriction and do not want to misuse background modes.

My question:

Is there a supported public API, entitlement, or configuration that allows a non-VoIP iPhone application to continue capturing front-camera video while another application is in the foreground?

Does Picture in Picture provide any supported mechanism for this use case, or is multitasking camera capture unavailable to non-VoIP applications on iPhone?

I'm looking for a supported implementation rather than a workaround that violates App Review guidelines.

Any guidance from Apple's AVFoundation engineers would be greatly appreciated.

Answered by DTS Engineer in 914633022

Hello @magerm77,

Is there a supported public API, entitlement, or configuration that allows a non-VoIP iPhone application to continue capturing front-camera video while another application is in the foreground?

The documentation for isMultitaskingCameraAccessSupported spells out the scenarios where this property will return true:

Query this property to determine whether you can use the camera while multitasking by setting the state of the isMultitaskingCameraAccessEnabled property to true.

In iOS and iPadOS, this property is true for any of the following cases:

  • The app runs on an iPad that supports Stage Manager with an extended display.
  • The app links against iOS 18 or later and uses voip as one of its UIBackgroundModes.
  • The app has the com.apple.developer.avfoundation.multitasking-camera-access entitlement.

In tvOS, this property is always true.

com.apple.developer.avfoundation.multitasking-camera-access is deprecated, and, importantly, also documents that "Usage of this entitlement is restricted to apps that use voip as one of their UIBackgroundModes."

Therefore, the direct answer to your question is, no, there is no supported public API, entitlement, or configuration that allows a non-VoIP iPhone application to continue capturing front-camera video while another application is in the foreground.

I want to make a very specific callout/exception to what I've stated above for iPhone Duo, which I'm told does report true for isMultitaskingCameraAccessSupported, no entitlement or background mode necessary. I haven't confirmed this myself, but it is simple enough to test if you have a device available!

So given all of that, I think you should file an enhancement request using Feedback Assistant to explain your use-case to our engineering team.

-- Greg

Accepted Answer

Hello @magerm77,

Is there a supported public API, entitlement, or configuration that allows a non-VoIP iPhone application to continue capturing front-camera video while another application is in the foreground?

The documentation for isMultitaskingCameraAccessSupported spells out the scenarios where this property will return true:

Query this property to determine whether you can use the camera while multitasking by setting the state of the isMultitaskingCameraAccessEnabled property to true.

In iOS and iPadOS, this property is true for any of the following cases:

  • The app runs on an iPad that supports Stage Manager with an extended display.
  • The app links against iOS 18 or later and uses voip as one of its UIBackgroundModes.
  • The app has the com.apple.developer.avfoundation.multitasking-camera-access entitlement.

In tvOS, this property is always true.

com.apple.developer.avfoundation.multitasking-camera-access is deprecated, and, importantly, also documents that "Usage of this entitlement is restricted to apps that use voip as one of their UIBackgroundModes."

Therefore, the direct answer to your question is, no, there is no supported public API, entitlement, or configuration that allows a non-VoIP iPhone application to continue capturing front-camera video while another application is in the foreground.

I want to make a very specific callout/exception to what I've stated above for iPhone Duo, which I'm told does report true for isMultitaskingCameraAccessSupported, no entitlement or background mode necessary. I haven't confirmed this myself, but it is simple enough to test if you have a device available!

So given all of that, I think you should file an enhancement request using Feedback Assistant to explain your use-case to our engineering team.

-- Greg

Hi Greg,

Thank you for the detailed explanation and for confirming the current limitations of multitasking camera access on iPhone.

It's disappointing because simultaneous screen and front-camera recording is the core functionality of SplitTake, but I appreciate having a definitive answer before investing further development time.

I'll submit an enhancement request through Feedback Assistant as suggested. Hopefully Apple will consider supporting this use case for non-VoIP applications in a future iOS release.

Thanks again for taking the time to respond!