Skip to content

ScreenShareMode

Lejla Solak edited this page Feb 4, 2026 · 2 revisions



.inApp

Description

In-app screen share mode captures only your application's content. Uses RPScreenRecorder internally.

Characteristics:

  • Captures only your app's UI
  • Runs in your app's process
  • Simpler implementation, no additional setup required
  • Stops when app goes to background

Example

let options = ScreenShareOptions(mode: .inApp)
try call.startScreenShare(options)



.broadcast

Description

Broadcast screen share mode captures the entire device screen, including other apps, system UI, and notifications. Uses Apple's Broadcast Upload Extension (RPBroadcastSampleHandler) internally.

Characteristics:

  • Captures entire device screen
  • Runs in a separate process (Broadcast Upload Extension)
  • Can capture any app, games, system UI
  • Continues when your app goes to background
  • Requires additional setup:
    • Broadcast Upload Extension target in your project
    • App Group configured in both main app and extension
    • RPSystemBroadcastPickerView in your UI for user to start broadcast

Example

// Configure broadcast screen share
let options = ScreenShareOptions(mode: .broadcast, appGroup: "group.com.yourcompany.yourapp")
try call.startScreenShare(options)

// User must tap the broadcast picker to start the actual capture
let picker = RPSystemBroadcastPickerView(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
picker.preferredExtension = "com.yourcompany.yourapp.BroadcastExtension"
picker.showsMicrophoneButton = false
view.addSubview(picker)

See Also

Tutorials

Migration guides

Reference documentation

Clone this wiki locally