# https://developer.apple.com/documentation/screencapturekit Framework # ScreenCaptureKit Filter and select screen content and stream it to your app. ## Overview Use the ScreenCaptureKit framework to add support for high-performance frame capture of screen and audio content to your Mac app. The framework gives you fine-grained control to select and stream only the content that you want to capture. As a stream captures new video frames and audio samples, it passes them to your app as `CMSampleBuffer` objects that contain the media data and its related metadata. ScreenCaptureKit also provides a macOS-integrated picker for streaming selection and management, `SCContentSharingPicker`. ## Topics ### Essentials ScreenCaptureKit updates Learn about important changes to ScreenCaptureKit. `Persistent Content Capture` A Boolean value that indicates whether a Virtual Network Computing (VNC) app needs persistent access to screen capture. Capturing screen content in macOS Stream desktop content like displays, apps, and windows by adopting screen capture in your app. ### Shareable content `class SCShareableContent` An instance that represents a set of displays, apps, and windows that your app can capture. `class SCShareableContentInfo` An instance that provides information for the content in a given stream. `enum SCShareableContentStyle` The style of content presented in a stream. `class SCDisplay` An instance that represents a display device. `class SCRunningApplication` An instance that represents an app running on a device. `class SCWindow` An instance that represents an onscreen window. ### Content capture `class SCStream` An instance that represents a stream of shareable content. `class SCStreamConfiguration` An instance that provides the output configuration for a stream. `class SCContentFilter` An instance that filters the content a stream captures. `protocol SCStreamDelegate` A delegate protocol your app implements to respond to stream events. `class SCScreenshotManager` An instance for the capture of single frames from a stream. `class SCScreenshotConfiguration` `class SCScreenshotOutput` ### Output processing `protocol SCStreamOutput` A delegate protocol your app implements to receive capture stream output events. `enum SCStreamOutputType` Constants that represent output types for a stream frame. `struct SCStreamFrameInfo` An instance that defines metadata keys for a stream frame. `enum SCFrameStatus` Status values for a frame from a stream. ### System content-sharing picker `class SCContentSharingPicker` An instance of a picker presented by the operating system for managing frame-capture streams. `struct SCContentSharingPickerConfiguration` An instance for configuring the system content-sharing picker. `struct SCContentSharingPickerMode` Available modes for selecting streaming content from a picker presented by the operating system. `protocol SCContentSharingPickerObserver` An observer protocol your app implements to receive messages from the operating system’s content picker. ### Stream errors `let SCStreamErrorDomain: String` A string representation of the error domain. `struct SCStreamError` An instance representing a ScreenCaptureKit framework error. --- # https://developer.apple.com/documentation/screencapturekit/ Framework # ScreenCaptureKit Filter and select screen content and stream it to your app. ## Overview Use the ScreenCaptureKit framework to add support for high-performance frame capture of screen and audio content to your Mac app. The framework gives you fine-grained control to select and stream only the content that you want to capture. As a stream captures new video frames and audio samples, it passes them to your app as `CMSampleBuffer` objects that contain the media data and its related metadata. ScreenCaptureKit also provides a macOS-integrated picker for streaming selection and management, `SCContentSharingPicker`. ## Topics ### Essentials ScreenCaptureKit updates Learn about important changes to ScreenCaptureKit. `Persistent Content Capture` A Boolean value that indicates whether a Virtual Network Computing (VNC) app needs persistent access to screen capture. Capturing screen content in macOS Stream desktop content like displays, apps, and windows by adopting screen capture in your app. ### Shareable content `class SCShareableContent` An instance that represents a set of displays, apps, and windows that your app can capture. `class SCShareableContentInfo` An instance that provides information for the content in a given stream. `enum SCShareableContentStyle` The style of content presented in a stream. `class SCDisplay` An instance that represents a display device. `class SCRunningApplication` An instance that represents an app running on a device. `class SCWindow` An instance that represents an onscreen window. ### Content capture `class SCStream` An instance that represents a stream of shareable content. `class SCStreamConfiguration` An instance that provides the output configuration for a stream. `class SCContentFilter` An instance that filters the content a stream captures. `protocol SCStreamDelegate` A delegate protocol your app implements to respond to stream events. `class SCScreenshotManager` An instance for the capture of single frames from a stream. `class SCScreenshotConfiguration` `class SCScreenshotOutput` ### Output processing `protocol SCStreamOutput` A delegate protocol your app implements to receive capture stream output events. `enum SCStreamOutputType` Constants that represent output types for a stream frame. `struct SCStreamFrameInfo` An instance that defines metadata keys for a stream frame. `enum SCFrameStatus` Status values for a frame from a stream. ### System content-sharing picker `class SCContentSharingPicker` An instance of a picker presented by the operating system for managing frame-capture streams. `struct SCContentSharingPickerConfiguration` An instance for configuring the system content-sharing picker. `struct SCContentSharingPickerMode` Available modes for selecting streaming content from a picker presented by the operating system. `protocol SCContentSharingPickerObserver` An observer protocol your app implements to receive messages from the operating system’s content picker. ### Stream errors `let SCStreamErrorDomain: String` A string representation of the error domain. `struct SCStreamError` An instance representing a ScreenCaptureKit framework error. --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker - ScreenCaptureKit - SCContentSharingPicker Class # SCContentSharingPicker An instance of a picker presented by the operating system for managing frame-capture streams. class SCContentSharingPicker ## Overview ## Topics ### Shared system picker `class var shared: SCContentSharingPicker` The system-provided picker UI instance for capturing display and audio content from someone’s Mac. ### Picker availability `var isActive: Bool` A Boolean value that indicates if the picker is active. ### Stream configuration `func setConfiguration(SCContentSharingPickerConfiguration?, for: SCStream)` Sets the configuration for the content capture picker for a capture stream, providing allowed selection modes and content excluded from selection. `var configuration: SCContentSharingPickerConfiguration?` Sets the configuration for the content capture picker for all streams, providing allowed selection modes and content excluded from selection. `var defaultConfiguration: SCContentSharingPickerConfiguration` The default configuration to use for the content capture picker. `var maximumStreamCount: Int?` The maximum number of streams the content capture picker allows. ### Manage observers `func add(any SCContentSharingPickerObserver)` Adds an observer instance to notify of changes in the content-sharing picker. `func remove(any SCContentSharingPickerObserver)` Removes an observer instance from the content-sharing picker. ### Picker display `func present()` Displays the picker with no active selection for capture. `func present(for: SCStream)` Displays the picker with an already running capture stream. `func present(using: SCShareableContentStyle)` Displays the picker for a single type of capture selection. `func present(for: SCStream, using: SCShareableContentStyle)` Displays the picker with an existing capture stream, allowing for a single type of capture selection. ## Relationships ### Inherits From - `NSObject` ### Conforms To - `CVarArg` - `CustomDebugStringConvertible` - `CustomStringConvertible` - `Equatable` - `Hashable` - `NSObjectProtocol` ## See Also ### System content-sharing picker `struct SCContentSharingPickerConfiguration` An instance for configuring the system content-sharing picker. `struct SCContentSharingPickerMode` Available modes for selecting streaming content from a picker presented by the operating system. `protocol SCContentSharingPickerObserver` An observer protocol your app implements to receive messages from the operating system’s content picker. --- # https://developer.apple.com/documentation/screencapturekit/capturing-screen-content-in-macos - ScreenCaptureKit - Capturing screen content in macOS Sample Code # Capturing screen content in macOS Stream desktop content like displays, apps, and windows by adopting screen capture in your app. Download Xcode 16.0+ ## Overview This sample shows how to add high-performance screen capture to your Mac app by using ScreenCaptureKit. The sample explores how to create content filters to capture the displays, apps, and windows you choose. It then shows how to configure your stream output, retrieve video frames and audio samples, and update a running stream. ### Configure the sample code project To run this sample app, you’ll need the following: - A Mac with macOS 15 or later - Xcode 16 or later The first time you run this sample, the system prompts you to grant the app Screen Recording permission. After you grant permission, you need to restart the app to enable capture. ### Create a content filter Displays, running apps, and windows are the shareable content on a device. The sample uses the `SCShareableContent` class to retrieve the items in the form of `SCDisplay`, `SCRunningApplication`, and `SCWindow` objects respectively. // Retrieve the available screen content to capture. let availableContent = try await SCShareableContent.excludingDesktopWindows(false, onScreenWindowsOnly: true) Before the sample begins capture, it creates an `SCContentFilter` object to specify the content to capture. The sample provides two options that allow for capturing either a single window or an entire display. When the capture type is set to capture a window, the app creates a content filter that only includes that window. // Create a content filter that includes a single window. filter = SCContentFilter(desktopIndependentWindow: window) When a user specifies to capture the entire display, the sample creates a filter to capture only content from the main display. To illustrate filtering a running app, the sample contains a toggle to specify whether to exclude the sample app from the stream. var excludedApps = SCRunningApplication // If a user chooses to exclude the app from the stream, // exclude it by matching its bundle identifier. if isAppExcluded { excludedApps = availableApps.filter { app in Bundle.main.bundleIdentifier == app.bundleIdentifier } } // Create a content filter with excluded apps. filter = SCContentFilter(display: display, excludingApplications: excludedApps, exceptingWindows: []) ### Create a stream configuration An `SCStreamConfiguration` object provides properties to configure the stream’s output size, pixel format, audio capture settings, and more. The app’s configuration throttles frame updates to 60 fps, and configures the number of frames to keep in the queue at 5. Specifying more frames uses more memory, but may allow for processing frame data without stalling the display stream. The default value is 3 and shouldn’t exceed 8 frames. var streamConfig = SCStreamConfiguration() if let dynamicRangePreset = selectedDynamicRangePreset?.scDynamicRangePreset { streamConfig = SCStreamConfiguration(preset: dynamicRangePreset) } // Configure audio capture. streamConfig.capturesAudio = isAudioCaptureEnabled streamConfig.excludesCurrentProcessAudio = isAppAudioExcluded streamConfig.captureMicrophone = isMicCaptureEnabled // Configure the display content width and height. if captureType == .display, let display = selectedDisplay { streamConfig.width = display.width * scaleFactor streamConfig.height = display.height * scaleFactor } // Configure the window content width and height. if captureType == .window, let window = selectedWindow { streamConfig.width = Int(window.frame.width) * 2 streamConfig.height = Int(window.frame.height) * 2 } // Set the capture interval at 60 fps. streamConfig.minimumFrameInterval = CMTime(value: 1, timescale: 60) // Increase the depth of the frame queue to ensure high fps at the expense of increasing // the memory footprint of WindowServer. streamConfig.queueDepth = 5 ### Start the capture session The sample uses the content filter and stream configuration to initialize a new instance of `SCStream`. To retrieve audio and video sample data, the app adds stream outputs that capture media of the specified type. When the stream captures new sample buffers, it delivers them to its stream output object on the indicated dispatch queues. stream = SCStream(filter: filter, configuration: configuration, delegate: streamOutput) // Add a stream output to capture screen content. try stream?.addStreamOutput(streamOutput, type: .screen, sampleHandlerQueue: videoSampleBufferQueue) try stream?.addStreamOutput(streamOutput, type: .audio, sampleHandlerQueue: audioSampleBufferQueue) try stream?.addStreamOutput(streamOutput, type: .microphone, sampleHandlerQueue: micSampleBufferQueue) stream?.startCapture() After the stream starts, further changes to its configuration and content filter don’t require restarting it. Instead, after you update the capture configuration in the user interface, the sample creates new stream configuration and content filter objects and applies them to the running stream to update its state. try await stream?.updateConfiguration(configuration) try await stream?.updateContentFilter(filter) ### Process the output When a stream captures a new audio or video sample buffer, it calls the stream output’s `stream(_:didOutputSampleBuffer:of:)` method, passing it the captured data and an indicator of its type. The stream output evaluates and processes the sample buffer as shown below. func stream(_ stream: SCStream, didOutputSampleBuffer sampleBuffer: CMSampleBuffer, of outputType: SCStreamOutputType) { // Return early if the sample buffer is invalid. guard sampleBuffer.isValid else { return } // Determine which type of data the sample buffer contains. switch outputType { case .screen: // Process the screen content. case .audio: // Process the audio content. } } ### Process a video sample buffer If the sample buffer contains video data, it retrieves the sample buffer attachments that describe the output video frame. // Retrieve the array of metadata attachments from the sample buffer. guard let attachmentsArray = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, createIfNecessary: false) as? [[SCStreamFrameInfo: Any]], let attachments = attachmentsArray.first else { return nil } An `SCStreamFrameInfo` structure defines dictionary keys that the sample uses to retrieve metadata attached to a sample buffer. Metadata includes information about the frame’s display time, scale factor, status, and more. To determine whether a frame is available for processing, the sample inspects the status for `SCFrameStatus.complete`. // Validate the status of the frame. If it isn't `.complete`, return nil. guard let statusRawValue = attachments[SCStreamFrameInfo.status] as? Int, let status = SCFrameStatus(rawValue: statusRawValue), status == .complete else { return nil } The sample buffer wraps a `CVPixelBuffer` that’s backed by an `IOSurface`. The sample casts the surface reference to an `IOSurface` that it later sets as the layer content of an `NSView`. // Get the pixel buffer that contains the image data. guard let pixelBuffer = sampleBuffer.imageBuffer else { return nil } // Get the backing IOSurface. guard let surfaceRef = CVPixelBufferGetIOSurface(pixelBuffer)?.takeUnretainedValue() else { return nil } let surface = unsafeBitCast(surfaceRef, to: IOSurface.self) // swiftlint:disable force_cast // Retrieve the content rectangle, scale, and scale factor. guard let contentRectDict = attachments[.contentRect], let contentRect = CGRect(dictionaryRepresentation: contentRectDict as! CFDictionary), let contentScale = attachments[.contentScale] as? CGFloat, let scaleFactor = attachments[.scaleFactor] as? CGFloat else { return nil } // Create a new frame with the relevant data. let frame = CapturedFrame(surface: surface, contentRect: contentRect, contentScale: contentScale, scaleFactor: scaleFactor) ### Process an audio sample buffer If the sample buffer contains audio, it retrieves the data as an `AudioBufferList` as shown below. // Create an AVAudioPCMBuffer from an audio sample buffer. try? buffer.withAudioBufferList { audioBufferList, blockBuffer in guard let description = buffer.formatDescription?.audioStreamBasicDescription, let format = AVAudioFormat(standardFormatWithSampleRate: description.mSampleRate, channels: description.mChannelsPerFrame), let samples = AVAudioPCMBuffer(pcmFormat: format, bufferListNoCopy: audioBufferList.unsafePointer) else { return } pcmBufferHandler?(samples) } } The app retrieves the audio stream basic description that it uses to create an `AVAudioFormat`. It then uses the format and the audio buffer list to create a new instance of `AVAudioPCMBuffer`. If you enable audio capture in the user interface, the sample uses the buffer to calculate average levels for the captured audio to display in a simple level meter. ## See Also ### Essentials ScreenCaptureKit updates Learn about important changes to ScreenCaptureKit. `Persistent Content Capture` A Boolean value that indicates whether a Virtual Network Computing (VNC) app needs persistent access to screen capture. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent - ScreenCaptureKit - SCShareableContent Class # SCShareableContent An instance that represents a set of displays, apps, and windows that your app can capture. class SCShareableContent ## Overview Use the `displays`, `windows`, and `applications` properties to create a `SCContentFilter` object that specifies what display content to capture. You apply the filter to an instance of `SCStream` to limit its output to only the content matching your filter. ## Topics ### Retrieving shareable content Retrieves the displays, apps, and windows that your app can capture. Retrieves the displays, apps, and windows that match your criteria. Retrieves the displays, apps, and windows that are in front of the specified window. Retrieves the displays, apps, and windows that are behind the specified window. Retrieves any available sharable content information that matches the provided filter. ### Inspecting shareable content [`var windows: [SCWindow]`](https://developer.apple.com/documentation/screencapturekit/scshareablecontent/windows) The windows available for capture. [`var displays: [SCDisplay]`](https://developer.apple.com/documentation/screencapturekit/scshareablecontent/displays) The displays available for capture. [`var applications: [SCRunningApplication]`](https://developer.apple.com/documentation/screencapturekit/scshareablecontent/applications) The apps available for capture. ## Relationships ### Inherits From - `NSObject` ### Conforms To - `CVarArg` - `CustomDebugStringConvertible` - `CustomStringConvertible` - `Equatable` - `Hashable` - `NSObjectProtocol` ## See Also ### Shareable content `class SCShareableContentInfo` An instance that provides information for the content in a given stream. `enum SCShareableContentStyle` The style of content presented in a stream. `class SCDisplay` An instance that represents a display device. `class SCRunningApplication` An instance that represents an app running on a device. `class SCWindow` An instance that represents an onscreen window. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentinfo - ScreenCaptureKit - SCShareableContentInfo Class # SCShareableContentInfo An instance that provides information for the content in a given stream. class SCShareableContentInfo ## Topics ### Shared content properties `var contentRect: CGRect` The size and location of content for the stream. `var pointPixelScale: Float` The scaling from points to output pixel resolution for the stream. `var style: SCShareableContentStyle` The current presentation style of the stream. ## Relationships ### Inherits From - `NSObject` ### Conforms To - `CVarArg` - `CustomDebugStringConvertible` - `CustomStringConvertible` - `Equatable` - `Hashable` - `NSObjectProtocol` ## See Also ### Shareable content `class SCShareableContent` An instance that represents a set of displays, apps, and windows that your app can capture. `enum SCShareableContentStyle` The style of content presented in a stream. `class SCDisplay` An instance that represents a display device. `class SCRunningApplication` An instance that represents an app running on a device. `class SCWindow` An instance that represents an onscreen window. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentstyle - ScreenCaptureKit - SCShareableContentStyle Enumeration # SCShareableContentStyle The style of content presented in a stream. enum SCShareableContentStyle ## Topics ### Content styles `case application` The stream is currently presenting one or more applications. `case display` The stream is currently presenting a complete display. `case none` The stream isn’t currently presenting any content. `case window` The stream is currently presenting one or more windows. ### Initializers `init?(rawValue: Int)` ## Relationships ### Conforms To - `BitwiseCopyable` - `Equatable` - `Hashable` - `RawRepresentable` - `Sendable` - `SendableMetatype` ## See Also ### Shareable content `class SCShareableContent` An instance that represents a set of displays, apps, and windows that your app can capture. `class SCShareableContentInfo` An instance that provides information for the content in a given stream. `class SCDisplay` An instance that represents a display device. `class SCRunningApplication` An instance that represents an app running on a device. `class SCWindow` An instance that represents an onscreen window. --- # https://developer.apple.com/documentation/screencapturekit/scdisplay - ScreenCaptureKit - SCDisplay Class # SCDisplay An instance that represents a display device. class SCDisplay ## Overview A display object represents a physical display connected to a Mac. Query the display to retrieve its unique identifier and onscreen coordinates. Retrieve the available displays from an instance of `SCShareableContent`. Select a display to capture and use it to create an instance of `SCContentFilter`. Apply the filter to an instance of `SCStream` to limit its output to content matching your criteria. ## Topics ### Identifying displays `var displayID: CGDirectDisplayID` The Core Graphics display identifier. ### Accessing dimensions `var frame: CGRect` The frame of the display. `var width: Int` The width of the display in points. `var height: Int` The height of the display in points. ## Relationships ### Inherits From - `NSObject` ### Conforms To - `CVarArg` - `CustomDebugStringConvertible` - `CustomStringConvertible` - `Equatable` - `Hashable` - `NSObjectProtocol` ## See Also ### Shareable content `class SCShareableContent` An instance that represents a set of displays, apps, and windows that your app can capture. `class SCShareableContentInfo` An instance that provides information for the content in a given stream. `enum SCShareableContentStyle` The style of content presented in a stream. `class SCRunningApplication` An instance that represents an app running on a device. `class SCWindow` An instance that represents an onscreen window. --- # https://developer.apple.com/documentation/screencapturekit/scrunningapplication - ScreenCaptureKit - SCRunningApplication Class # SCRunningApplication An instance that represents an app running on a device. class SCRunningApplication ## Overview Retrieve the available apps from an instance of `SCShareableContent`. Select one or more apps to capture and use them to create an instance of `SCContentFilter`. Apply the filter to an instance of `SCStream` to limit its output to content matching your criteria. ## Topics ### Inspecting an app `var processID: pid_t` The system process identifier of the app. `var bundleIdentifier: String` The unique bundle identifier of the app. `var applicationName: String` The display name of the app. ## Relationships ### Inherits From - `NSObject` ### Conforms To - `CVarArg` - `CustomDebugStringConvertible` - `CustomStringConvertible` - `Equatable` - `Hashable` - `NSObjectProtocol` ## See Also ### Shareable content `class SCShareableContent` An instance that represents a set of displays, apps, and windows that your app can capture. `class SCShareableContentInfo` An instance that provides information for the content in a given stream. `enum SCShareableContentStyle` The style of content presented in a stream. `class SCDisplay` An instance that represents a display device. `class SCWindow` An instance that represents an onscreen window. --- # https://developer.apple.com/documentation/screencapturekit/scwindow - ScreenCaptureKit - SCWindow Class # SCWindow An instance that represents an onscreen window. class SCWindow ## Overview Retrieve the available windows from an instance of `SCShareableContent`. Select one or more windows to capture and use them to create an instance of `SCContentFilter`. Apply the filter to an instance of `SCStream` to limit its output to content matching your criteria. ## Topics ### Identifying windows `var windowID: CGWindowID` The Core Graphics window identifier. `var title: String?` The string that displays in a window’s title bar. `var owningApplication: SCRunningApplication?` The app that owns the window. `var windowLayer: Int` The layer of the window relative to other windows. ### Accessing dimensions `var frame: CGRect` A rectangle the represents the frame of the window within a display. ### Determining visibility `var isOnScreen: Bool` A Boolean value that indicates whether the window is on screen. `var isActive: Bool` A Boolean value that indicates if the window is currently streaming. ## Relationships ### Inherits From - `NSObject` ### Conforms To - `CVarArg` - `CustomDebugStringConvertible` - `CustomStringConvertible` - `Equatable` - `Hashable` - `NSObjectProtocol` ## See Also ### Shareable content `class SCShareableContent` An instance that represents a set of displays, apps, and windows that your app can capture. `class SCShareableContentInfo` An instance that provides information for the content in a given stream. `enum SCShareableContentStyle` The style of content presented in a stream. `class SCDisplay` An instance that represents a display device. `class SCRunningApplication` An instance that represents an app running on a device. --- # https://developer.apple.com/documentation/screencapturekit/scstream - ScreenCaptureKit - SCStream Class # SCStream An instance that represents a stream of shareable content. class SCStream ## Overview Use a stream to capture video of screen content like apps and windows. Create a content stream by passing it an instance of `SCContentFilter` and an `SCStreamConfiguration` object. The stream uses the filter to determine which screen content to capture, and uses the configuration data to configure the output. ## Topics ### Creating a stream `init(filter: SCContentFilter, configuration: SCStreamConfiguration, delegate: (any SCStreamDelegate)?)` Creates a stream with a content filter and configuration. ### Updating stream configuration Updates the stream with a new configuration. Updates the stream by applying a new content filter. ### Adding and removing stream output `func addStreamOutput(any SCStreamOutput, type: SCStreamOutputType, sampleHandlerQueue: dispatch_queue_t?) throws` Adds a destination that receives the stream output. `func removeStreamOutput(any SCStreamOutput, type: SCStreamOutputType) throws` Removes a destination from receiving stream output. ### Adding and removing recording output `func addRecordingOutput(SCRecordingOutput) throws` `func removeRecordingOutput(SCRecordingOutput) throws` `class SCRecordingOutput` ### Starting and stopping a stream Starts the stream with a call) Stops the stream. ### Stream synchronization `var synchronizationClock: CMClock?` A clock to use for output synchronization. ## Relationships ### Inherits From - `NSObject` ### Conforms To - `CVarArg` - `CustomDebugStringConvertible` - `CustomStringConvertible` - `Equatable` - `Hashable` - `NSObjectProtocol` ## See Also ### Content capture `class SCStreamConfiguration` An instance that provides the output configuration for a stream. `class SCContentFilter` An instance that filters the content a stream captures. `protocol SCStreamDelegate` A delegate protocol your app implements to respond to stream events. `class SCScreenshotManager` An instance for the capture of single frames from a stream. `class SCScreenshotConfiguration` `class SCScreenshotOutput` --- # https://developer.apple.com/documentation/screencapturekit/scstreamconfiguration - ScreenCaptureKit - SCStreamConfiguration Class # SCStreamConfiguration An instance that provides the output configuration for a stream. class SCStreamConfiguration ## Overview Creating an instance of this class provides a default configuration for a stream. Only configure its properties if you need to customize the output. ## Topics ### Specifying dimensions `var width: Int` The width of the output. `var height: Int` The height of the output. `var scalesToFit: Bool` A Boolean value that indicates whether to scale the output to fit the configured width and height. `var sourceRect: CGRect` A rectangle that specifies the source area to capture. `var destinationRect: CGRect` A rectangle that specifies a destination into which to write the output. `var preservesAspectRatio: Bool` A Boolean value that determines if the stream preserves aspect ratio. ### Configuring colors `var pixelFormat: OSType` A pixel format for sample buffers that a stream outputs. `var colorMatrix: CFString` A color matrix to apply to the output surface. `var colorSpaceName: CFString` A color space to use for the output buffer. `var backgroundColor: CGColor` A background color for the output. ### Configuring captured elements `var showsCursor: Bool` A Boolean value that determines whether the cursor is visible in the stream. `var shouldBeOpaque: Bool` A Boolean value that indicates if semitransparent content presents as opaque. `var capturesShadowsOnly: Bool` A Boolean value that indicates if the stream only captures shadows. `var ignoreShadowsDisplay: Bool` A Boolean value that indicates if the stream ignores the capturing of window shadows when streaming in display style. `var ignoreShadowsSingleWindow: Bool` A Boolean value that indicates if the stream ignores the capturing of window shadows when streaming in window style. `var ignoreGlobalClipDisplay: Bool` A Boolean value that indicates if the stream ignores content clipped past the edge of a display, when streaming in display style. `var ignoreGlobalClipSingleWindow: Bool` A Boolean value that indicates if the stream ignores content clipped past the edge of a display, when streaming in window style. ### Configuring captured frames `var queueDepth: Int` The maximum number of frames for the queue to store. `var minimumFrameInterval: CMTime` The desired minimum time between frame updates, in seconds. `var captureResolution: SCCaptureResolutionType` The resolution at which to capture source content. `enum SCCaptureResolutionType` Available resolutions for content capture. ### Configuring audio `var capturesAudio: Bool` A Boolean value that indicates whether to capture audio. `var sampleRate: Int` The sample rate for audio capture. `var channelCount: Int` The number of audio channels to capture. `var excludesCurrentProcessAudio: Bool` A Boolean value that indicates whether to exclude audio from your app during capture. ### Identifying a stream `var streamName: String?` A name that you provide for identifying the stream. ### Notifying presenters `var presenterOverlayPrivacyAlertSetting: SCPresenterOverlayAlertSetting` A value indicating if alerts appear to presenters while using Presenter Overlay. `enum SCPresenterOverlayAlertSetting` Configures how to present streaming notifications to a streamer of Presenter Overlay. ### Enumerations `enum SCCaptureDynamicRange` `enum Preset` ### Initializers `convenience init(preset: SCStreamConfiguration.Preset)` ### Instance Properties `var captureDynamicRange: SCCaptureDynamicRange` `var captureMicrophone: Bool` `var includeChildWindows: Bool` `var microphoneCaptureDeviceID: String?` `var showMouseClicks: Bool` ## Relationships ### Inherits From - `NSObject` ### Conforms To - `CVarArg` - `CustomDebugStringConvertible` - `CustomStringConvertible` - `Equatable` - `Hashable` - `NSObjectProtocol` ## See Also ### Content capture `class SCStream` An instance that represents a stream of shareable content. `class SCContentFilter` An instance that filters the content a stream captures. `protocol SCStreamDelegate` A delegate protocol your app implements to respond to stream events. `class SCScreenshotManager` An instance for the capture of single frames from a stream. `class SCScreenshotConfiguration` `class SCScreenshotOutput` --- # https://developer.apple.com/documentation/screencapturekit/sccontentfilter - ScreenCaptureKit - SCContentFilter Class # SCContentFilter An instance that filters the content a stream captures. class SCContentFilter ## Overview Use a content filter to limit an `SCStream` object’s output to only that matching your filter criteria. Retrieve the displays, apps, and windows that your app can capture from an instance of `SCShareableContent`. ## Topics ### Creating a filter `init(desktopIndependentWindow: SCWindow)` Creates a filter that captures only the specified window. [`init(display: SCDisplay, including: [SCWindow])`](https://developer.apple.com/documentation/screencapturekit/sccontentfilter/init(display:including:)) Creates a filter that captures only specific windows from a display. [`init(display: SCDisplay, excludingWindows: [SCWindow])`](https://developer.apple.com/documentation/screencapturekit/sccontentfilter/init(display:excludingwindows:)) Creates a filter that captures the contents of a display, excluding the specified windows. [`init(display: SCDisplay, including: [SCRunningApplication], exceptingWindows: [SCWindow])`](https://developer.apple.com/documentation/screencapturekit/sccontentfilter/init(display:including:exceptingwindows:)) Creates a filter that captures a display, including only windows of the specified apps. [`init(display: SCDisplay, excludingApplications: [SCRunningApplication], exceptingWindows: [SCWindow])`](https://developer.apple.com/documentation/screencapturekit/sccontentfilter/init(display:excludingapplications:exceptingwindows:)) Creates a filter that captures a display, excluding windows of the specified apps. ### Filter properties `var contentRect: CGRect` The size and location of the content to filter, in screen points. `var pointPixelScale: Float` The scaling factor used to translate screen points into pixels. `var streamType: SCStreamType` The type of the streaming content. Deprecated `enum SCStreamType` The display type of the presented stream. `var style: SCShareableContentStyle` The display style of the sharable content. ### Instance Properties `var includeMenuBar: Bool` [`var includedApplications: [SCRunningApplication]`](https://developer.apple.com/documentation/screencapturekit/sccontentfilter/includedapplications) [`var includedDisplays: [SCDisplay]`](https://developer.apple.com/documentation/screencapturekit/sccontentfilter/includeddisplays) [`var includedWindows: [SCWindow]`](https://developer.apple.com/documentation/screencapturekit/sccontentfilter/includedwindows) ## Relationships ### Inherits From - `NSObject` ### Conforms To - `CVarArg` - `CustomDebugStringConvertible` - `CustomStringConvertible` - `Equatable` - `Hashable` - `NSObjectProtocol` ## See Also ### Content capture `class SCStream` An instance that represents a stream of shareable content. `class SCStreamConfiguration` An instance that provides the output configuration for a stream. `protocol SCStreamDelegate` A delegate protocol your app implements to respond to stream events. `class SCScreenshotManager` An instance for the capture of single frames from a stream. `class SCScreenshotConfiguration` `class SCScreenshotOutput` --- # https://developer.apple.com/documentation/screencapturekit/scstreamdelegate - ScreenCaptureKit - SCStreamDelegate Protocol # SCStreamDelegate A delegate protocol your app implements to respond to stream events. protocol SCStreamDelegate : NSObjectProtocol ## Topics ### Responding to Presenter Overlay `func outputVideoEffectDidStart(for: SCStream)` Tells the delegate that Presenter Overlay started. `func outputVideoEffectDidStop(for: SCStream)` Tells the delegate that Presenter Overlay stopped. ### Responding to stream stoppage `func stream(SCStream, didStopWithError: any Error)` Tells the delegate that the stream stopped with an error. ### Instance Methods `func streamDidBecomeActive(SCStream)` `func streamDidBecomeInactive(SCStream)` ## Relationships ### Inherits From - `NSObjectProtocol` ## See Also ### Content capture `class SCStream` An instance that represents a stream of shareable content. `class SCStreamConfiguration` An instance that provides the output configuration for a stream. `class SCContentFilter` An instance that filters the content a stream captures. `class SCScreenshotManager` An instance for the capture of single frames from a stream. `class SCScreenshotConfiguration` `class SCScreenshotOutput` --- # https://developer.apple.com/documentation/screencapturekit/scscreenshotmanager - ScreenCaptureKit - SCScreenshotManager Class # SCScreenshotManager An instance for the capture of single frames from a stream. class SCScreenshotManager ## Topics ### Individual frame capture Captures a single frame from a stream as an image, using a filter. Captures a single frame directly from a stream’s buffer, using a filter. ## Relationships ### Inherits From - `NSObject` ### Conforms To - `CVarArg` - `CustomDebugStringConvertible` - `CustomStringConvertible` - `Equatable` - `Hashable` - `NSObjectProtocol` ## See Also ### Content capture `class SCStream` An instance that represents a stream of shareable content. `class SCStreamConfiguration` An instance that provides the output configuration for a stream. `class SCContentFilter` An instance that filters the content a stream captures. `protocol SCStreamDelegate` A delegate protocol your app implements to respond to stream events. `class SCScreenshotConfiguration` `class SCScreenshotOutput` --- # https://developer.apple.com/documentation/screencapturekit/scscreenshotconfiguration - ScreenCaptureKit - SCScreenshotConfiguration Class # SCScreenshotConfiguration Mac CatalystmacOS class SCScreenshotConfiguration ## Topics ### Instance Properties `var contentType: UTTypeReference` `var destinationRect: CGRect` `var displayIntent: SCScreenshotConfiguration.DisplayIntent` `var dynamicRange: SCScreenshotConfiguration.DynamicRange` `var fileURL: URL?` `var height: Int` `var ignoreClipping: Bool` `var ignoreShadows: Bool` `var includeChildWindows: Bool` `var showsCursor: Bool` `var sourceRect: CGRect` `var width: Int` ### Type Properties [`class var supportedContentTypes: [UTType]`](https://developer.apple.com/documentation/screencapturekit/scscreenshotconfiguration/supportedcontenttypes) ### Enumerations `enum DisplayIntent` `enum DynamicRange` ## Relationships ### Inherits From - `NSObject` ### Conforms To - `CVarArg` - `CustomDebugStringConvertible` - `CustomStringConvertible` - `Equatable` - `Hashable` - `NSObjectProtocol` ## See Also ### Content capture `class SCStream` An instance that represents a stream of shareable content. `class SCStreamConfiguration` An instance that provides the output configuration for a stream. `class SCContentFilter` An instance that filters the content a stream captures. `protocol SCStreamDelegate` A delegate protocol your app implements to respond to stream events. `class SCScreenshotManager` An instance for the capture of single frames from a stream. `class SCScreenshotOutput` --- # https://developer.apple.com/documentation/screencapturekit/scscreenshotoutput - ScreenCaptureKit - SCScreenshotOutput Class # SCScreenshotOutput Mac CatalystmacOS class SCScreenshotOutput ## Topics ### Instance Properties `var fileURL: NSURL?` `var hdrImage: CGImage?` `var sdrImage: CGImage?` ## Relationships ### Inherits From - `NSObject` ### Conforms To - `CVarArg` - `CustomDebugStringConvertible` - `CustomStringConvertible` - `Equatable` - `Hashable` - `NSObjectProtocol` ## See Also ### Content capture `class SCStream` An instance that represents a stream of shareable content. `class SCStreamConfiguration` An instance that provides the output configuration for a stream. `class SCContentFilter` An instance that filters the content a stream captures. `protocol SCStreamDelegate` A delegate protocol your app implements to respond to stream events. `class SCScreenshotManager` An instance for the capture of single frames from a stream. `class SCScreenshotConfiguration` --- # https://developer.apple.com/documentation/screencapturekit/scstreamoutput - ScreenCaptureKit - SCStreamOutput Protocol # SCStreamOutput A delegate protocol your app implements to receive capture stream output events. protocol SCStreamOutput : NSObjectProtocol ## Overview The `SCStreamOutput` protocol provides a way to retrieve output from an `SCStream`. After you call `startCapture(completionHandler:)`, the system provides frame data through the `stream(_:didOutputSampleBuffer:of:)` method. You can inspect the `CMSampleBuffer` to retrieve image data, and inspect the sample buffer for metadata about the frame. ## Topics ### Receiving stream output `func stream(SCStream, didOutputSampleBuffer: CMSampleBuffer, of: SCStreamOutputType)` Tells the delegate that a capture stream produced a frame. ## Relationships ### Inherits From - `NSObjectProtocol` ## See Also ### Output processing `enum SCStreamOutputType` Constants that represent output types for a stream frame. `struct SCStreamFrameInfo` An instance that defines metadata keys for a stream frame. `enum SCFrameStatus` Status values for a frame from a stream. --- # https://developer.apple.com/documentation/screencapturekit/scstreamoutputtype - ScreenCaptureKit - SCStreamOutputType Enumeration # SCStreamOutputType Constants that represent output types for a stream frame. enum SCStreamOutputType ## Topics ### Output types `case screen` An output type that represents a screen capture sample buffer. `case audio` An output type that represents an audio capture sample buffer. ### Enumeration Cases `case microphone` ### Initializers `init?(rawValue: Int)` ## Relationships ### Conforms To - `BitwiseCopyable` - `Equatable` - `Hashable` - `RawRepresentable` - `Sendable` - `SendableMetatype` ## See Also ### Output processing `protocol SCStreamOutput` A delegate protocol your app implements to receive capture stream output events. `struct SCStreamFrameInfo` An instance that defines metadata keys for a stream frame. `enum SCFrameStatus` Status values for a frame from a stream. --- # https://developer.apple.com/documentation/screencapturekit/scstreamframeinfo - ScreenCaptureKit - SCStreamFrameInfo Structure # SCStreamFrameInfo An instance that defines metadata keys for a stream frame. struct SCStreamFrameInfo ## Overview Use `SCStreamFrameInfo` keys to retrieve values from the dictionary of metadata attached to the sample buffers that a stream produces. For example, you can retrieve the display time, content scale, and scaling factor, as shown below: // A dictionary of attachments for a streamed sample buffer. let attachments: [SCStreamFrameInfo: Any] = // Retrieve attachments from a sample buffer. let displayTime = attachments[.displayTime] as? UInt64 ?? 0 let contentScale = attachments[.contentScale] as? Double ?? 0.0 let scaleFactor = attachments[.scaleFactor] as? Double ?? 0.0 ## Topics ### Frame information constants `static let status: SCStreamFrameInfo` A key to retrieve the status of a video frame. `static let displayTime: SCStreamFrameInfo` A key to retrieve the display time of a video frame. `static let scaleFactor: SCStreamFrameInfo` A key to retrieve the scale factor of a video frame. `static let contentScale: SCStreamFrameInfo` A key to retrieve the content scale of a video frame. `static let contentRect: SCStreamFrameInfo` A key to retrieve the content rectangle of a video frame. `static let boundingRect: SCStreamFrameInfo` A key to retrieve the bounding rectangle for a video frame. `static let screenRect: SCStreamFrameInfo` A key to retrieve the onscreen location of captured content. `static let dirtyRects: SCStreamFrameInfo` A key to retrieve the areas of a video frame that contain changes. `static let presenterOverlayContentRect: SCStreamFrameInfo` ### Initializers `init(rawValue: String)` Creates a new instance with a raw value. ## Relationships ### Conforms To - `Equatable` - `Hashable` - `RawRepresentable` - `Sendable` - `SendableMetatype` ## See Also ### Output processing `protocol SCStreamOutput` A delegate protocol your app implements to receive capture stream output events. `enum SCStreamOutputType` Constants that represent output types for a stream frame. `enum SCFrameStatus` Status values for a frame from a stream. --- # https://developer.apple.com/documentation/screencapturekit/scframestatus - ScreenCaptureKit - SCFrameStatus Enumeration # SCFrameStatus Status values for a frame from a stream. enum SCFrameStatus ## Overview You create a frame status by initializing it with the value you retrieve for the `status` from the sample buffer’s attachments dictionary. if let statusRawValue = attachments[SCStreamFrameInfo.status] as? Int { // Create status value. let status = SCFrameStatus(rawValue: statusRawValue) ... } ## Topics ### Status values `case complete` A status that indicates the system successfully generated a new frame. `case idle` A status that indicates the system didn’t generate a new frame because the display didn’t change. `case blank` A status that indicates the system didn’t generate a new frame because the display is blank. `case started` A status that indicates the frame is the first one sent after the stream starts. `case suspended` A status that indicates the system didn’t generate a new frame because you suspended updates. `case stopped` A status that indicates the frame is in a stopped state. ### Initializers `init?(rawValue: Int)` ## Relationships ### Conforms To - `BitwiseCopyable` - `Equatable` - `Hashable` - `RawRepresentable` - `Sendable` - `SendableMetatype` ## See Also ### Output processing `protocol SCStreamOutput` A delegate protocol your app implements to receive capture stream output events. `enum SCStreamOutputType` Constants that represent output types for a stream frame. `struct SCStreamFrameInfo` An instance that defines metadata keys for a stream frame. --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpickerconfiguration-swift.struct - ScreenCaptureKit - SCContentSharingPickerConfiguration Structure # SCContentSharingPickerConfiguration An instance for configuring the system content-sharing picker. struct SCContentSharingPickerConfiguration ## Topics ### Initializers `init()` Initializes a picker configuration with default values. ### Control streaming selections `var allowedPickerModes: SCContentSharingPickerMode` The content-selection modes supported by the picker. `var allowsChangingSelectedContent: Bool` A Boolean value that indicates if the present stream can change to a different source. A list of bundle IDs to exclude from the sharing picker. A list of window IDs to exclude from the sharing picker. ## See Also ### System content-sharing picker `class SCContentSharingPicker` An instance of a picker presented by the operating system for managing frame-capture streams. `struct SCContentSharingPickerMode` Available modes for selecting streaming content from a picker presented by the operating system. `protocol SCContentSharingPickerObserver` An observer protocol your app implements to receive messages from the operating system’s content picker. --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpickermode - ScreenCaptureKit - SCContentSharingPickerMode Structure # SCContentSharingPickerMode Available modes for selecting streaming content from a picker presented by the operating system. struct SCContentSharingPickerMode ## Topics ### Initializers `init(rawValue: UInt)` Initializes a sharing-picker mode. ### Picker selection modes `static var multipleApplications: SCContentSharingPickerMode` The mode allowing the selection of multiple applications through the presented picker. `static var multipleWindows: SCContentSharingPickerMode` The mode allowing the selection of multiple windows through the presented picker. `static var singleApplication: SCContentSharingPickerMode` The mode allowing the selection of a single application through the presented picker. `static var singleDisplay: SCContentSharingPickerMode` The mode allowing the selection of a single display through the presented picker. `static var singleWindow: SCContentSharingPickerMode` The mode allowing the selection of a single window through the presented picker. ## Relationships ### Conforms To - `BitwiseCopyable` - `Equatable` - `ExpressibleByArrayLiteral` - `OptionSet` - `RawRepresentable` - `Sendable` - `SendableMetatype` - `SetAlgebra` ## See Also ### System content-sharing picker `class SCContentSharingPicker` An instance of a picker presented by the operating system for managing frame-capture streams. `struct SCContentSharingPickerConfiguration` An instance for configuring the system content-sharing picker. `protocol SCContentSharingPickerObserver` An observer protocol your app implements to receive messages from the operating system’s content picker. --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpickerobserver - ScreenCaptureKit - SCContentSharingPickerObserver Protocol # SCContentSharingPickerObserver An observer protocol your app implements to receive messages from the operating system’s content picker. protocol SCContentSharingPickerObserver : NSObjectProtocol ## Topics ### Observing events `func contentSharingPicker(SCContentSharingPicker, didCancelFor: SCStream?)` Tells the observer that a sharing picker canceled selection for a stream. **Required** `func contentSharingPicker(SCContentSharingPicker, didUpdateWith: SCContentFilter, for: SCStream?)` Tells the observer that a sharing picker updated the content filter for a stream. ### Observing errors `func contentSharingPickerStartDidFailWithError(any Error)` Tells the observer that a sharing picker was unable to start. ## Relationships ### Inherits From - `NSObjectProtocol` ## See Also ### System content-sharing picker `class SCContentSharingPicker` An instance of a picker presented by the operating system for managing frame-capture streams. `struct SCContentSharingPickerConfiguration` An instance for configuring the system content-sharing picker. `struct SCContentSharingPickerMode` Available modes for selecting streaming content from a picker presented by the operating system. --- # https://developer.apple.com/documentation/screencapturekit/scstreamerrordomain - ScreenCaptureKit - SCStreamErrorDomain Global Variable # SCStreamErrorDomain A string representation of the error domain. let SCStreamErrorDomain: String ## See Also ### Stream errors `struct SCStreamError` An instance representing a ScreenCaptureKit framework error. --- # https://developer.apple.com/documentation/screencapturekit/scstreamerror - ScreenCaptureKit - SCStreamError Structure # SCStreamError An instance representing a ScreenCaptureKit framework error. struct SCStreamError ## Overview ## Topics ### Error inspection Error code constants for framework operations. `enum Code` Codes for user cancellation events and errors that can occur in ScreenCaptureKit. `static var errorDomain: String` ## Relationships ### Conforms To - `CustomNSError` - `Equatable` - `Error` - `Hashable` - `Sendable` - `SendableMetatype` ## See Also ### Stream errors `let SCStreamErrorDomain: String` A string representation of the error domain. --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker). --- # https://developer.apple.com/documentation/screencapturekit/capturing-screen-content-in-macos) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent) --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentinfo) --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentstyle) --- # https://developer.apple.com/documentation/screencapturekit/scdisplay) --- # https://developer.apple.com/documentation/screencapturekit/scrunningapplication) --- # https://developer.apple.com/documentation/screencapturekit/scwindow) --- # https://developer.apple.com/documentation/screencapturekit/scstream) --- # https://developer.apple.com/documentation/screencapturekit/scstreamconfiguration) --- # https://developer.apple.com/documentation/screencapturekit/sccontentfilter) --- # https://developer.apple.com/documentation/screencapturekit/scstreamdelegate) --- # https://developer.apple.com/documentation/screencapturekit/scscreenshotmanager) --- # https://developer.apple.com/documentation/screencapturekit/scscreenshotconfiguration) --- # https://developer.apple.com/documentation/screencapturekit/scscreenshotoutput) --- # https://developer.apple.com/documentation/screencapturekit/scstreamoutput) --- # https://developer.apple.com/documentation/screencapturekit/scstreamoutputtype) --- # https://developer.apple.com/documentation/screencapturekit/scstreamframeinfo) --- # https://developer.apple.com/documentation/screencapturekit/scframestatus) --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker) --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpickerconfiguration-swift.struct) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpickermode) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpickerobserver) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scstreamerrordomain) --- # https://developer.apple.com/documentation/screencapturekit/scstreamerror) --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentinfo/contentrect - ScreenCaptureKit - SCShareableContentInfo - contentRect Instance Property # contentRect The size and location of content for the stream. var contentRect: CGRect { get } ## See Also ### Shared content properties `var pointPixelScale: Float` The scaling from points to output pixel resolution for the stream. `var style: SCShareableContentStyle` The current presentation style of the stream. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentinfo/pointpixelscale - ScreenCaptureKit - SCShareableContentInfo - pointPixelScale Instance Property # pointPixelScale The scaling from points to output pixel resolution for the stream. var pointPixelScale: Float { get } ## See Also ### Shared content properties `var contentRect: CGRect` The size and location of content for the stream. `var style: SCShareableContentStyle` The current presentation style of the stream. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentinfo/style - ScreenCaptureKit - SCShareableContentInfo - style Instance Property # style The current presentation style of the stream. var style: SCShareableContentStyle { get } ## See Also ### Shared content properties `var contentRect: CGRect` The size and location of content for the stream. `var pointPixelScale: Float` The scaling from points to output pixel resolution for the stream. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentinfo/contentrect) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentinfo/pointpixelscale) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentinfo/style) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scrunningapplication/processid - ScreenCaptureKit - SCRunningApplication - processID Instance Property # processID The system process identifier of the app. var processID: pid_t { get } ## See Also ### Inspecting an app `var bundleIdentifier: String` The unique bundle identifier of the app. `var applicationName: String` The display name of the app. --- # https://developer.apple.com/documentation/screencapturekit/scrunningapplication/bundleidentifier - ScreenCaptureKit - SCRunningApplication - bundleIdentifier Instance Property # bundleIdentifier The unique bundle identifier of the app. var bundleIdentifier: String { get } ## See Also ### Inspecting an app `var processID: pid_t` The system process identifier of the app. `var applicationName: String` The display name of the app. --- # https://developer.apple.com/documentation/screencapturekit/scrunningapplication/applicationname - ScreenCaptureKit - SCRunningApplication - applicationName Instance Property # applicationName The display name of the app. var applicationName: String { get } ## See Also ### Inspecting an app `var processID: pid_t` The system process identifier of the app. `var bundleIdentifier: String` The unique bundle identifier of the app. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent). --- # https://developer.apple.com/documentation/screencapturekit/sccontentfilter). --- # https://developer.apple.com/documentation/screencapturekit/scrunningapplication/processid) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scrunningapplication/bundleidentifier) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scrunningapplication/applicationname) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scdisplay/displayid - ScreenCaptureKit - SCDisplay - displayID Instance Property # displayID The Core Graphics display identifier. var displayID: CGDirectDisplayID { get } --- # https://developer.apple.com/documentation/screencapturekit/scdisplay/frame - ScreenCaptureKit - SCDisplay - frame Instance Property # frame The frame of the display. var frame: CGRect { get } ## See Also ### Accessing dimensions `var width: Int` The width of the display in points. `var height: Int` The height of the display in points. --- # https://developer.apple.com/documentation/screencapturekit/scdisplay/width - ScreenCaptureKit - SCDisplay - width Instance Property # width The width of the display in points. var width: Int { get } ## See Also ### Accessing dimensions `var frame: CGRect` The frame of the display. `var height: Int` The height of the display in points. --- # https://developer.apple.com/documentation/screencapturekit/scdisplay/height - ScreenCaptureKit - SCDisplay - height Instance Property # height The height of the display in points. var height: Int { get } ## See Also ### Accessing dimensions `var frame: CGRect` The frame of the display. `var width: Int` The width of the display in points. --- # https://developer.apple.com/documentation/screencapturekit/scdisplay/displayid) --- # https://developer.apple.com/documentation/screencapturekit/scdisplay/frame) --- # https://developer.apple.com/documentation/screencapturekit/scdisplay/width) --- # https://developer.apple.com/documentation/screencapturekit/scdisplay/height) --- # https://developer.apple.com/documentation/screencapturekit/scstream/init(filter:configuration:delegate:) #app-main) - ScreenCaptureKit - SCStream - init(filter:configuration:delegate:) Initializer # init(filter:configuration:delegate:) Creates a stream with a content filter and configuration. init( filter contentFilter: SCContentFilter, configuration streamConfig: SCStreamConfiguration, delegate: (any SCStreamDelegate)? ) ## Parameters `contentFilter` The content to capture. `streamConfig` The configuration to apply to the stream. `delegate` An optional object that responds to stream events. --- # https://developer.apple.com/documentation/screencapturekit/scstream/updateconfiguration(_:completionhandler:) #app-main) - ScreenCaptureKit - SCStream - updateConfiguration(\_:completionHandler:) Instance Method # updateConfiguration(\_:completionHandler:) Updates the stream with a new configuration. func updateConfiguration( _ streamConfig: SCStreamConfiguration, ) func updateConfiguration(_ streamConfig: SCStreamConfiguration) async throws ## Parameters `streamConfig` An object that provides the updated stream configuration. `completionHandler` A completion handler the system calls when this method completes. It includes an error if the update fails. ## See Also ### Updating stream configuration Updates the stream by applying a new content filter. --- # https://developer.apple.com/documentation/screencapturekit/scstream/updatecontentfilter(_:completionhandler:) #app-main) - ScreenCaptureKit - SCStream - updateContentFilter(\_:completionHandler:) Instance Method # updateContentFilter(\_:completionHandler:) Updates the stream by applying a new content filter. func updateContentFilter( _ contentFilter: SCContentFilter, ) func updateContentFilter(_ contentFilter: SCContentFilter) async throws ## Parameters `contentFilter` The content filter to apply. `completionHandler` A completion handler the system calls when this method completes. It includes an error if the update fails. ## See Also ### Updating stream configuration Updates the stream with a new configuration. --- # https://developer.apple.com/documentation/screencapturekit/scstream/addstreamoutput(_:type:samplehandlerqueue:) #app-main) - ScreenCaptureKit - SCStream - addStreamOutput(\_:type:sampleHandlerQueue:) Instance Method # addStreamOutput(\_:type:sampleHandlerQueue:) Adds a destination that receives the stream output. func addStreamOutput( _ output: any SCStreamOutput, type: SCStreamOutputType, sampleHandlerQueue: dispatch_queue_t? ) throws ## Parameters `output` The object that conforms to the stream output protocol. `type` The stream output type. `sampleHandlerQueue` The queue that receives the stream output. ## Discussion Use this method to attach an object that conforms to `SCStreamOutput` to receive stream content. Optionally, provide a `DispatchQueue` to send output to a queue that’s responsible for processing the output. ## See Also ### Adding and removing stream output `func removeStreamOutput(any SCStreamOutput, type: SCStreamOutputType) throws` Removes a destination from receiving stream output. --- # https://developer.apple.com/documentation/screencapturekit/scstream/removestreamoutput(_:type:) #app-main) - ScreenCaptureKit - SCStream - removeStreamOutput(\_:type:) Instance Method # removeStreamOutput(\_:type:) Removes a destination from receiving stream output. func removeStreamOutput( _ output: any SCStreamOutput, type: SCStreamOutputType ) throws ## Parameters `output` The object to remove that conforms to the stream output protocol. `type` The stream output type. ## See Also ### Adding and removing stream output `func addStreamOutput(any SCStreamOutput, type: SCStreamOutputType, sampleHandlerQueue: dispatch_queue_t?) throws` Adds a destination that receives the stream output. --- # https://developer.apple.com/documentation/screencapturekit/scstream/addrecordingoutput(_:) #app-main) - ScreenCaptureKit - SCStream - addRecordingOutput(\_:) Instance Method # addRecordingOutput(\_:) func addRecordingOutput(_ recordingOutput: SCRecordingOutput) throws ## See Also ### Adding and removing recording output `func removeRecordingOutput(SCRecordingOutput) throws` `class SCRecordingOutput` --- # https://developer.apple.com/documentation/screencapturekit/scstream/removerecordingoutput(_:) #app-main) - ScreenCaptureKit - SCStream - removeRecordingOutput(\_:) Instance Method # removeRecordingOutput(\_:) func removeRecordingOutput(_ recordingOutput: SCRecordingOutput) throws ## See Also ### Adding and removing recording output `func addRecordingOutput(SCRecordingOutput) throws` `class SCRecordingOutput` --- # https://developer.apple.com/documentation/screencapturekit/screcordingoutput - ScreenCaptureKit - SCRecordingOutput Class # SCRecordingOutput class SCRecordingOutput ## Topics ### Creating a recording output `init(configuration: SCRecordingOutputConfiguration, delegate: any SCRecordingOutputDelegate)` `class SCRecordingOutputConfiguration` `protocol SCRecordingOutputDelegate` ### Configuring the recording output `var recordedDuration: CMTime` `var recordedFileSize: Int` ## Relationships ### Inherits From - `NSObject` ### Conforms To - `CVarArg` - `CustomDebugStringConvertible` - `CustomStringConvertible` - `Equatable` - `Hashable` - `NSObjectProtocol` ## See Also ### Adding and removing recording output `func addRecordingOutput(SCRecordingOutput) throws` `func removeRecordingOutput(SCRecordingOutput) throws` --- # https://developer.apple.com/documentation/screencapturekit/scstream/startcapture(completionhandler:) #app-main) - ScreenCaptureKit - SCStream - startCapture(completionHandler:) Instance Method # startCapture(completionHandler:) Starts the stream with a call\#parameters) `completionHandler` A completion handler that provides an error if the stream fails to start. ## See Also ### Starting and stopping a stream Stops the stream. --- # https://developer.apple.com/documentation/screencapturekit/scstream/stopcapture(completionhandler:) #app-main) - ScreenCaptureKit - SCStream - stopCapture(completionHandler:) Instance Method # stopCapture(completionHandler:) Stops the stream. func stopCapture() async throws ## Parameters `completionHandler` A completion handler that provides an error if the stream fails to stop. ## See Also ### Starting and stopping a stream Starts the stream with a call --- # https://developer.apple.com/documentation/screencapturekit/scstream/synchronizationclock - ScreenCaptureKit - SCStream - synchronizationClock Instance Property # synchronizationClock A clock to use for output synchronization. var synchronizationClock: CMClock? { get } ## Discussion The synchronization clock provides the timebase for sample buffers that the stream outputs. Use it to synchronize with the clocks of other media sources, such as the `synchronizationClock` of `AVCaptureSession`. --- # https://developer.apple.com/documentation/screencapturekit/scstream/init(filter:configuration:delegate:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scstream/updateconfiguration(_:completionhandler:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scstream/updatecontentfilter(_:completionhandler:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scstream/addstreamoutput(_:type:samplehandlerqueue:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scstream/removestreamoutput(_:type:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scstream/addrecordingoutput(_:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scstream/removerecordingoutput(_:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/screcordingoutput) --- # https://developer.apple.com/documentation/screencapturekit/scstream/startcapture(completionhandler:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scstream/stopcapture(completionhandler:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scstream/synchronizationclock) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/displays - ScreenCaptureKit - SCShareableContent - displays Instance Property # displays The displays available for capture. var displays: [SCDisplay] { get } ## See Also ### Inspecting shareable content [`var windows: [SCWindow]`](https://developer.apple.com/documentation/screencapturekit/scshareablecontent/windows) The windows available for capture. [`var applications: [SCRunningApplication]`](https://developer.apple.com/documentation/screencapturekit/scshareablecontent/applications) The apps available for capture. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/windows - ScreenCaptureKit - SCShareableContent - windows Instance Property # windows The windows available for capture. var windows: [SCWindow] { get } ## See Also ### Inspecting shareable content [`var displays: [SCDisplay]`](https://developer.apple.com/documentation/screencapturekit/scshareablecontent/displays) The displays available for capture. [`var applications: [SCRunningApplication]`](https://developer.apple.com/documentation/screencapturekit/scshareablecontent/applications) The apps available for capture. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/applications - ScreenCaptureKit - SCShareableContent - applications Instance Property # applications The apps available for capture. var applications: [SCRunningApplication] { get } ## See Also ### Inspecting shareable content [`var windows: [SCWindow]`](https://developer.apple.com/documentation/screencapturekit/scshareablecontent/windows) The windows available for capture. [`var displays: [SCDisplay]`](https://developer.apple.com/documentation/screencapturekit/scshareablecontent/displays) The displays available for capture. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/getwithcompletionhandler(_:) #app-main) - ScreenCaptureKit - SCShareableContent - getWithCompletionHandler(\_:) Type Method # getWithCompletionHandler(\_:) Retrieves the displays, apps, and windows that your app can capture. class var current: SCShareableContent { get async throws } ## Parameters `completionHandler` A callback the system invokes with the shareable content, or an error if a failure occurs. ## Discussion Use this method to retrieve the onscreen content that your app can capture. If the call is successful, the system returns the shareable content to the completion handler; otherwise, it returns an error that describes the failure. ## See Also ### Retrieving shareable content Retrieves the displays, apps, and windows that match your criteria. Retrieves the displays, apps, and windows that are in front of the specified window. Retrieves the displays, apps, and windows that are behind the specified window. Retrieves any available sharable content information that matches the provided filter. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/getexcludingdesktopwindows(_:onscreenwindowsonly:completionhandler:) #app-main) - ScreenCaptureKit - SCShareableContent - getExcludingDesktopWindows(\_:onScreenWindowsOnly:completionHandler:) Type Method # getExcludingDesktopWindows(\_:onScreenWindowsOnly:completionHandler:) Retrieves the displays, apps, and windows that match your criteria. class func getExcludingDesktopWindows( _ excludeDesktopWindows: Bool, onScreenWindowsOnly: Bool, ) class func excludingDesktopWindows( _ excludeDesktopWindows: Bool, onScreenWindowsOnly: Bool ## Parameters `excludeDesktopWindows` A Boolean value that indicates whether to exclude desktop windows like Finder, Dock, and Desktop from the set of shareable content. `onScreenWindowsOnly` A Boolean value that indicates whether to include only onscreen windows in the set of shareable content. `completionHandler` A callback the system invokes with the shareable content, or an error if a failure occurs. ## Discussion Use this method to retrieve the onscreen content matching your filtering criteria. If the call is successful, the system passes an `SCShareableContent` instance to the completion handler; otherwise, it returns an error that describes the failure. ## See Also ### Retrieving shareable content Retrieves the displays, apps, and windows that your app can capture. Retrieves the displays, apps, and windows that are in front of the specified window. Retrieves the displays, apps, and windows that are behind the specified window. Retrieves any available sharable content information that matches the provided filter. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/getexcludingdesktopwindows(_:onscreenwindowsonlyabove:completionhandler:) #app-main) - ScreenCaptureKit - SCShareableContent - getExcludingDesktopWindows(\_:onScreenWindowsOnlyAbove:completionHandler:) Type Method # getExcludingDesktopWindows(\_:onScreenWindowsOnlyAbove:completionHandler:) Retrieves the displays, apps, and windows that are in front of the specified window. class func getExcludingDesktopWindows( _ excludeDesktopWindows: Bool, onScreenWindowsOnlyAbove window: SCWindow, ) class func excludingDesktopWindows( _ excludeDesktopWindows: Bool, onScreenWindowsOnlyAbove window: SCWindow ## Parameters `excludeDesktopWindows` A Boolean value that indicates whether to exclude desktop windows like Finder, Dock, and Desktop from the set of shareable content. `window` The window above which to retrieve shareable content. `completionHandler` A callback the system invokes with the shareable content, or an error if a failure occurs. ## Discussion Use this method to retrieve the onscreen content matching your filtering criteria. If the call is successful, the system passes an `SCShareableContent` instance to the completion handler; otherwise, it returns an error that describes the failure. ## See Also ### Retrieving shareable content Retrieves the displays, apps, and windows that your app can capture. Retrieves the displays, apps, and windows that match your criteria. Retrieves the displays, apps, and windows that are behind the specified window. Retrieves any available sharable content information that matches the provided filter. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/getexcludingdesktopwindows(_:onscreenwindowsonlybelow:completionhandler:) #app-main) - ScreenCaptureKit - SCShareableContent - getExcludingDesktopWindows(\_:onScreenWindowsOnlyBelow:completionHandler:) Type Method # getExcludingDesktopWindows(\_:onScreenWindowsOnlyBelow:completionHandler:) Retrieves the displays, apps, and windows that are behind the specified window. class func getExcludingDesktopWindows( _ excludeDesktopWindows: Bool, onScreenWindowsOnlyBelow window: SCWindow, ) class func excludingDesktopWindows( _ excludeDesktopWindows: Bool, onScreenWindowsOnlyBelow window: SCWindow ## Parameters `excludeDesktopWindows` A Boolean value that indicates whether to exclude desktop windows from the set of shareable content. `window` The window above which to retrieve shareable content. `completionHandler` A callback the system invokes with the shareable content, or an error if a failure occurs. ## Discussion Use this method to retrieve the onscreen content matching your filtering criteria. If the call is successful, the system passes an `SCShareableContent` instance to the completion handler; otherwise, it returns an error that describes the failure. ## See Also ### Retrieving shareable content Retrieves the displays, apps, and windows that your app can capture. Retrieves the displays, apps, and windows that match your criteria. Retrieves the displays, apps, and windows that are in front of the specified window. Retrieves any available sharable content information that matches the provided filter. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/info(for:) #app-main) - ScreenCaptureKit - SCShareableContent - info(for:) Type Method # info(for:) Retrieves any available sharable content information that matches the provided filter. ## Parameters `filter` The filter to match current sharable content against. ## Return Value The sharable content matching the filter, or `nil` if none is found. ## See Also ### Retrieving shareable content Retrieves the displays, apps, and windows that your app can capture. Retrieves the displays, apps, and windows that match your criteria. Retrieves the displays, apps, and windows that are in front of the specified window. Retrieves the displays, apps, and windows that are behind the specified window. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/getcurrentprocessshareablecontent(completionhandler:) #app-main) - ScreenCaptureKit - SCShareableContent - getCurrentProcessShareableContent(completionHandler:) Type Method # getCurrentProcessShareableContent(completionHandler:) class var currentProcess: SCShareableContent { get async throws } --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/displays), ,#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/windows), ,#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/applications) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/getwithcompletionhandler(_:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/getexcludingdesktopwindows(_:onscreenwindowsonly:completionhandler:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/getexcludingdesktopwindows(_:onscreenwindowsonlyabove:completionhandler:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/getexcludingdesktopwindows(_:onscreenwindowsonlybelow:completionhandler:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/info(for:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/windows) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/displays) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontent/getcurrentprocessshareablecontent(completionhandler:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scwindow/windowid - ScreenCaptureKit - SCWindow - windowID Instance Property # windowID The Core Graphics window identifier. var windowID: CGWindowID { get } ## See Also ### Identifying windows `var title: String?` The string that displays in a window’s title bar. `var owningApplication: SCRunningApplication?` The app that owns the window. `var windowLayer: Int` The layer of the window relative to other windows. --- # https://developer.apple.com/documentation/screencapturekit/scwindow/title - ScreenCaptureKit - SCWindow - title Instance Property # title The string that displays in a window’s title bar. var title: String? { get } ## See Also ### Identifying windows `var windowID: CGWindowID` The Core Graphics window identifier. `var owningApplication: SCRunningApplication?` The app that owns the window. `var windowLayer: Int` The layer of the window relative to other windows. --- # https://developer.apple.com/documentation/screencapturekit/scwindow/owningapplication - ScreenCaptureKit - SCWindow - owningApplication Instance Property # owningApplication The app that owns the window. var owningApplication: SCRunningApplication? { get } ## See Also ### Identifying windows `var windowID: CGWindowID` The Core Graphics window identifier. `var title: String?` The string that displays in a window’s title bar. `var windowLayer: Int` The layer of the window relative to other windows. --- # https://developer.apple.com/documentation/screencapturekit/scwindow/windowlayer - ScreenCaptureKit - SCWindow - windowLayer Instance Property # windowLayer The layer of the window relative to other windows. var windowLayer: Int { get } ## See Also ### Identifying windows `var windowID: CGWindowID` The Core Graphics window identifier. `var title: String?` The string that displays in a window’s title bar. `var owningApplication: SCRunningApplication?` The app that owns the window. --- # https://developer.apple.com/documentation/screencapturekit/scwindow/frame - ScreenCaptureKit - SCWindow - frame Instance Property # frame A rectangle the represents the frame of the window within a display. var frame: CGRect { get } --- # https://developer.apple.com/documentation/screencapturekit/scwindow/isonscreen - ScreenCaptureKit - SCWindow - isOnScreen Instance Property # isOnScreen A Boolean value that indicates whether the window is on screen. var isOnScreen: Bool { get } ## Discussion This value represents the macOS window server’s onscreen status of the window. ## See Also ### Determining visibility `var isActive: Bool` A Boolean value that indicates if the window is currently streaming. --- # https://developer.apple.com/documentation/screencapturekit/scwindow/isactive - ScreenCaptureKit - SCWindow - isActive Instance Property # isActive A Boolean value that indicates if the window is currently streaming. var isActive: Bool { get } ## Discussion When this value is `true`, the window is currently streaming, even if offscreen. ## See Also ### Determining visibility `var isOnScreen: Bool` A Boolean value that indicates whether the window is on screen. --- # https://developer.apple.com/documentation/screencapturekit/scwindow/windowid) --- # https://developer.apple.com/documentation/screencapturekit/scwindow/title) --- # https://developer.apple.com/documentation/screencapturekit/scwindow/owningapplication) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scwindow/windowlayer) --- # https://developer.apple.com/documentation/screencapturekit/scwindow/frame) --- # https://developer.apple.com/documentation/screencapturekit/scwindow/isonscreen) --- # https://developer.apple.com/documentation/screencapturekit/scwindow/isactive) --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/shared - ScreenCaptureKit - SCContentSharingPicker - shared Type Property # shared The system-provided picker UI instance for capturing display and audio content from someone’s Mac. class var shared: SCContentSharingPicker { get } ## Discussion The picker gives a person control over what information on their Mac they wish to let your app view or record such as specific applications, displays, and windows. --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/isactive - ScreenCaptureKit - SCContentSharingPicker - isActive Instance Property # isActive A Boolean value that indicates if the picker is active. var isActive: Bool { get set } ## Discussion When this value is `true`, the capture stream picker is active, available for managing capture. The default value is `false`. --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/setconfiguration(_:for:) #app-main) - ScreenCaptureKit - SCContentSharingPicker - setConfiguration(\_:for:) Instance Method # setConfiguration(\_:for:) Sets the configuration for the content capture picker for a capture stream, providing allowed selection modes and content excluded from selection. func setConfiguration( _ configuration: SCContentSharingPickerConfiguration?, for stream: SCStream ) ## Parameters `configuration` The configuration to set for the given capture stream. When this value is `nil`, changes the stream configuration to use `defaultConfiguration`. `stream` The capture stream to set a configuration for. When this value is `nil`, applies to all currently active streams. ## See Also ### Stream configuration `var configuration: SCContentSharingPickerConfiguration?` Sets the configuration for the content capture picker for all streams, providing allowed selection modes and content excluded from selection. `var defaultConfiguration: SCContentSharingPickerConfiguration` The default configuration to use for the content capture picker. `var maximumStreamCount: Int?` The maximum number of streams the content capture picker allows. --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/configuration - ScreenCaptureKit - SCContentSharingPicker - configuration Instance Property # configuration Sets the configuration for the content capture picker for all streams, providing allowed selection modes and content excluded from selection. var configuration: SCContentSharingPickerConfiguration? { get set } ## See Also ### Stream configuration `func setConfiguration(SCContentSharingPickerConfiguration?, for: SCStream)` Sets the configuration for the content capture picker for a capture stream, providing allowed selection modes and content excluded from selection. `var defaultConfiguration: SCContentSharingPickerConfiguration` The default configuration to use for the content capture picker. `var maximumStreamCount: Int?` The maximum number of streams the content capture picker allows. --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/defaultconfiguration-94q2b - ScreenCaptureKit - SCContentSharingPicker - defaultConfiguration Instance Property # defaultConfiguration The default configuration to use for the content capture picker. var defaultConfiguration: SCContentSharingPickerConfiguration { get set } ## See Also ### Stream configuration `func setConfiguration(SCContentSharingPickerConfiguration?, for: SCStream)` Sets the configuration for the content capture picker for a capture stream, providing allowed selection modes and content excluded from selection. `var configuration: SCContentSharingPickerConfiguration?` Sets the configuration for the content capture picker for all streams, providing allowed selection modes and content excluded from selection. `var maximumStreamCount: Int?` The maximum number of streams the content capture picker allows. --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/maximumstreamcount-2kuaa - ScreenCaptureKit - SCContentSharingPicker - maximumStreamCount Instance Property # maximumStreamCount The maximum number of streams the content capture picker allows. var maximumStreamCount: Int? { get set } ## Discussion The default value is `1`. ## See Also ### Stream configuration `func setConfiguration(SCContentSharingPickerConfiguration?, for: SCStream)` Sets the configuration for the content capture picker for a capture stream, providing allowed selection modes and content excluded from selection. `var configuration: SCContentSharingPickerConfiguration?` Sets the configuration for the content capture picker for all streams, providing allowed selection modes and content excluded from selection. `var defaultConfiguration: SCContentSharingPickerConfiguration` The default configuration to use for the content capture picker. --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/add(_:) #app-main) - ScreenCaptureKit - SCContentSharingPicker - add(\_:) Instance Method # add(\_:) Adds an observer instance to notify of changes in the content-sharing picker. func add(_ observer: any SCContentSharingPickerObserver) ## Parameters `observer` The observer instance to send notifications to. ## See Also ### Manage observers `func remove(any SCContentSharingPickerObserver)` Removes an observer instance from the content-sharing picker. --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/remove(_:) #app-main) - ScreenCaptureKit - SCContentSharingPicker - remove(\_:) Instance Method # remove(\_:) Removes an observer instance from the content-sharing picker. func remove(_ observer: any SCContentSharingPickerObserver) ## Parameters `observer` The observer instance to remove. ## See Also ### Manage observers `func add(any SCContentSharingPickerObserver)` Adds an observer instance to notify of changes in the content-sharing picker. --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/present() #app-main) - ScreenCaptureKit - SCContentSharingPicker - present() Instance Method # present() Displays the picker with no active selection for capture. func present() ## See Also ### Picker display `func present(for: SCStream)` Displays the picker with an already running capture stream. `func present(using: SCShareableContentStyle)` Displays the picker for a single type of capture selection. `func present(for: SCStream, using: SCShareableContentStyle)` Displays the picker with an existing capture stream, allowing for a single type of capture selection. --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/present(for:) #app-main) - ScreenCaptureKit - SCContentSharingPicker - present(for:) Instance Method # present(for:) Displays the picker with an already running capture stream. func present(for stream: SCStream) ## Parameters `stream` The capture stream to display in the picker. ## See Also ### Picker display `func present()` Displays the picker with no active selection for capture. `func present(using: SCShareableContentStyle)` Displays the picker for a single type of capture selection. `func present(for: SCStream, using: SCShareableContentStyle)` Displays the picker with an existing capture stream, allowing for a single type of capture selection. --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/present(using:) #app-main) - ScreenCaptureKit - SCContentSharingPicker - present(using:) Instance Method # present(using:) Displays the picker for a single type of capture selection. func present(using contentStyle: SCShareableContentStyle) ## Parameters `contentStyle` The type of streaming content selection allowed through the presented picker. ## See Also ### Picker display `func present()` Displays the picker with no active selection for capture. `func present(for: SCStream)` Displays the picker with an already running capture stream. `func present(for: SCStream, using: SCShareableContentStyle)` Displays the picker with an existing capture stream, allowing for a single type of capture selection. --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/present(for:using:) #app-main) - ScreenCaptureKit - SCContentSharingPicker - present(for:using:) Instance Method # present(for:using:) Displays the picker with an existing capture stream, allowing for a single type of capture selection. func present( for stream: SCStream, using contentStyle: SCShareableContentStyle ) ## Parameters `stream` The stream to display in the picker. `contentStyle` The type of streaming content selection allowed through the presented picker. ## See Also ### Picker display `func present()` Displays the picker with no active selection for capture. `func present(for: SCStream)` Displays the picker with an already running capture stream. `func present(using: SCShareableContentStyle)` Displays the picker for a single type of capture selection. --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/shared) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/isactive) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/setconfiguration(_:for:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/configuration) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/defaultconfiguration-94q2b) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/maximumstreamcount-2kuaa) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/add(_:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/remove(_:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/present()) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/present(for:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/present(using:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/sccontentsharingpicker/present(for:using:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentstyle/application - ScreenCaptureKit - SCShareableContentStyle - SCShareableContentStyle.application Case # SCShareableContentStyle.application The stream is currently presenting one or more applications. case application ## See Also ### Content styles `case display` The stream is currently presenting a complete display. `case none` The stream isn’t currently presenting any content. `case window` The stream is currently presenting one or more windows. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentstyle/display - ScreenCaptureKit - SCShareableContentStyle - SCShareableContentStyle.display Case # SCShareableContentStyle.display The stream is currently presenting a complete display. case display ## See Also ### Content styles `case application` The stream is currently presenting one or more applications. `case none` The stream isn’t currently presenting any content. `case window` The stream is currently presenting one or more windows. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentstyle/none - ScreenCaptureKit - SCShareableContentStyle - SCShareableContentStyle.none Case # SCShareableContentStyle.none The stream isn’t currently presenting any content. case none ## See Also ### Content styles `case application` The stream is currently presenting one or more applications. `case display` The stream is currently presenting a complete display. `case window` The stream is currently presenting one or more windows. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentstyle/window - ScreenCaptureKit - SCShareableContentStyle - SCShareableContentStyle.window Case # SCShareableContentStyle.window The stream is currently presenting one or more windows. case window ## See Also ### Content styles `case application` The stream is currently presenting one or more applications. `case display` The stream is currently presenting a complete display. `case none` The stream isn’t currently presenting any content. --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentstyle/init(rawvalue:) #app-main) - ScreenCaptureKit - SCShareableContentStyle - init(rawValue:) Initializer # init(rawValue:) init?(rawValue: Int) --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentstyle/application) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentstyle/display) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentstyle/none) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentstyle/window) # The page you're looking for can't be found. Search developer.apple.comSearch Icon --- # https://developer.apple.com/documentation/screencapturekit/scshareablecontentstyle/init(rawvalue:)) )#app-main) # The page you're looking for can't be found. Search developer.apple.comSearch Icon ---