<!--
{
  "availability" : [
    "iOS: 9.0.0 -",
    "iPadOS: 9.0.0 -",
    "macCatalyst: 13.0.0 -",
    "macOS: 11.0.0 -",
    "tvOS: 10.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ReplayKit",
  "identifier" : "/documentation/ReplayKit",
  "metadataVersion" : "0.1.0",
  "role" : "Framework",
  "symbol" : {
    "kind" : "Framework",
    "modules" : [
      "ReplayKit"
    ],
    "preciseIdentifier" : "ReplayKit"
  },
  "title" : "ReplayKit"
}
-->

# ReplayKit

Record or stream video from the screen, and audio from the app and microphone.

## Overview

Using the ReplayKit framework, users can record video from the screen, and audio from the app and microphone. They can then share their recordings with other users through email, messages, and social media. You can build app extensions for live broadcasting your content to sharing services. ReplayKit is incompatible with <doc://com.apple.documentation/documentation/AVFoundation/AVPlayer> content.

## Topics

### Replay Sharing

[Recording and Streaming Your macOS App](/documentation/ReplayKit/recording-and-streaming-your-macos-app)

Share screen recordings, or broadcast live audio and video of your app, by adding ReplayKit to your macOS apps and games.

[`class RPScreenRecorder`](/documentation/ReplayKit/RPScreenRecorder)

The shared recorder object that provides the ability to record audio and video of your app.

[`class RPPreviewViewController`](/documentation/ReplayKit/RPPreviewViewController)

An object that displays a user interface where users preview and edit a screen recording that you create with ReplayKit.

### Media Clip Processing

[`class RPBroadcastController`](/documentation/ReplayKit/RPBroadcastController)

An object containing methods for starting and controlling a broadcast.

[`class RPBroadcastHandler`](/documentation/ReplayKit/RPBroadcastHandler)

An object that sends messages to the broadcasting app.

[`class RPBroadcastSampleHandler`](/documentation/ReplayKit/RPBroadcastSampleHandler)

An object that processes buffer objects as received from ReplayKit.

[`class RPBroadcastMP4ClipHandler`](/documentation/ReplayKit/RPBroadcastMP4ClipHandler)

An object that processes MP4 movie clips from ReplayKit.

### Live Broadcast Implementation

[`class RPBroadcastActivityViewController`](/documentation/ReplayKit/RPBroadcastActivityViewController)

A view controller that displays a user interface where users choose a broadcast service.

[`class RPSystemBroadcastPickerView`](/documentation/ReplayKit/RPSystemBroadcastPickerView)

A view displaying a broadcast button that, when tapped, shows a broadcast picker.

[`class RPBroadcastActivityController`](/documentation/ReplayKit/RPBroadcastActivityController)

A controller object that presents the macOS broadcast picker.

[`protocol RPBroadcastActivityControllerDelegate`](/documentation/ReplayKit/RPBroadcastActivityControllerDelegate)

A protocol that defines the methods to implement to respond to selection events from a broadcast activity controller.

[`class RPBroadcastConfiguration`](/documentation/ReplayKit/RPBroadcastConfiguration)

An object used to configure the movie clips produced during a live broadcast.

### Errors

[`enum RPRecordingErrorCode`](/documentation/ReplayKit/RPRecordingErrorCode)

The ReplayKit error domain codes.

[`let RPRecordingErrorDomain: String`](/documentation/ReplayKit/RPRecordingErrorDomain)

The ReplayKit error domain.

[`let SCStreamErrorDomain: String`](/documentation/ReplayKit/SCStreamErrorDomain)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)