An object that coordinates time-matched delivery of data from multiple capture outputs.


Use this class when you need to capture media from multiple capture outputs and want to receive all data samples from the same timestamp in a single delegate callback.

For example, when you use an AVCaptureDataOutputSynchronizer object to coordinate the output of AVCaptureVideoDataOutput and AVCaptureDepthDataOutput objects, you can easily match each captured video frame to depth information captured at the same moment.


Configuring Synchronized Capture

init(dataOutputs: [AVCaptureOutput])

Creates a capture output synchronizer for the specified capture outputs.

var dataOutputs: [AVCaptureOutput]

The list of data outputs governed by this data output synchronizer.

Receiving Synchronized Capture Data

func setDelegate(AVCaptureDataOutputSynchronizerDelegate?, queue: DispatchQueue?)

Designates a delegate object to receive synchronized data and a dispatch queue for delivering that data.

var delegate: AVCaptureDataOutputSynchronizerDelegate?

A delegate object that receives synchronized capture data.

var delegateCallbackQueue: DispatchQueue?

A dispatch queue for delivering synchronized capture data.

protocol AVCaptureDataOutputSynchronizerDelegate

Methods for receiving captured data from multiple capture outputs synchronized to the same timestamp.


Inherits From

Conforms To

See Also

Synchronized Capture

class AVCaptureSynchronizedDataCollection

A set of data samples from multiple capture outputs collected at the same time.

class AVCaptureSynchronizedDepthData

A container for scene depth information collected using synchronized capture.

class AVCaptureSynchronizedMetadataObjectData

A container for metadata objects collected using synchronized capture.

class AVCaptureSynchronizedSampleBufferData

A container for video or audio samples collected using synchronized capture.

class AVCaptureSynchronizedData

The abstract superclass for media samples collected using synchronized capture.


Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software