<!--
{
  "availability" : [
    "iOS: 11.0.0 -",
    "iPadOS: 11.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.13.0 -",
    "tvOS: 11.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 4.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/AVSampleBufferRenderSynchronizer",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "c:objc(cs)AVSampleBufferRenderSynchronizer"
  },
  "title" : "AVSampleBufferRenderSynchronizer"
}
-->

# AVSampleBufferRenderSynchronizer

An object used to synchronize multiple queued sample buffers to a single timeline.

```
class AVSampleBufferRenderSynchronizer
```

## Overview

This class synchronizes multiple objects that conform to [`AVQueuedSampleBufferRendering`](/documentation/AVFoundation/AVQueuedSampleBufferRendering) to a single timeline.

## Topics

### Managing renderers

[`renderers`](/documentation/AVFoundation/AVSampleBufferRenderSynchronizer/renderers)

An array of queued sample buffer renderers currently attached to the synchronizer.

[`addRenderer(_:)`](/documentation/AVFoundation/AVSampleBufferRenderSynchronizer/addRenderer(_:))

Adds a renderer to the list of renderers under the synchronizer’s control.

[`removeRenderer(_:at:completionHandler:)`](/documentation/AVFoundation/AVSampleBufferRenderSynchronizer/removeRenderer(_:at:completionHandler:))

Removes a renderer from the synchronizer.

### Accessing time information

[`currentTime()`](/documentation/AVFoundation/AVSampleBufferRenderSynchronizer/currentTime())

Returns the current time of the synchronizer.

[`timebase`](/documentation/AVFoundation/AVSampleBufferRenderSynchronizer/timebase)

The synchronizer’s rendering timebase which determines how it interprets timestamps.

[`rate`](/documentation/AVFoundation/AVSampleBufferRenderSynchronizer/rate)

The current playback rate.

[`setRate(_:time:)`](/documentation/AVFoundation/AVSampleBufferRenderSynchronizer/setRate(_:time:))

Sets the renderer’s time and rate.

[`setRate(_:time:atHostTime:)`](/documentation/AVFoundation/AVSampleBufferRenderSynchronizer/setRate(_:time:atHostTime:))

Sets the playback rate and the relationship between the current time and host time.

[`rateDidChangeNotification`](/documentation/AVFoundation/AVSampleBufferRenderSynchronizer/rateDidChangeNotification)

The synchronizer’s rendering rate changed.

[`delaysRateChangeUntilHasSufficientMediaData`](/documentation/AVFoundation/AVSampleBufferRenderSynchronizer/delaysRateChangeUntilHasSufficientMediaData)

A Boolean value that Indicates whether the playback should start immediately on rate change requests.

### Observing time

[`addPeriodicTimeObserver(forInterval:queue:using:)`](/documentation/AVFoundation/AVSampleBufferRenderSynchronizer/addPeriodicTimeObserver(forInterval:queue:using:))

Requests invocation of a block during rendering at specified time intervals.

[`addBoundaryTimeObserver(forTimes:queue:using:)`](/documentation/AVFoundation/AVSampleBufferRenderSynchronizer/addBoundaryTimeObserver(forTimes:queue:using:))

Requests invocation of a block when specified times are traversed during normal rendering.

[`removeTimeObserver(_:)`](/documentation/AVFoundation/AVSampleBufferRenderSynchronizer/removeTimeObserver(_:))

Cancels the specified time observer.

### Configuring audio behavior

[`intendedSpatialAudioExperience`](/documentation/AVFoundation/AVSampleBufferRenderSynchronizer/intendedSpatialAudioExperience-3z7d3)

The synchronizer’s intended Spatial Audio experience.   

[`intendedSpatialAudioExperience`](/documentation/AVFoundation/AVSampleBufferRenderSynchronizer/intendedSpatialAudioExperience-2wthu)

The intended spatial audio experience applied to all AVSampleBufferAudioRenderers within this synchronizer.   



---

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