---
title: AVPlaybackCoordinator
framework: avfoundation
role: symbol
role_heading: Class
path: avfoundation/avplaybackcoordinator
---

# AVPlaybackCoordinator

An object that coordinates the playback of players in a connected group.

## Declaration

```swift
class AVPlaybackCoordinator
```

## Overview

Overview The framework provides two playback coordinator subclasses that manage different types of player objects: AVPlayerPlaybackCoordinator coordinates the state of AVPlayer objects. If your app uses AVPlayer, continue to use its standard interfaces to control playback. The coordinator intercepts changes to the player’s rate and time, and propagates them to other players in the group. AVDelegatingPlaybackCoordinator coordinates the state of custom player objects. If your app uses a custom player, such as one that renders media using AVSampleBufferDisplayLayer and AVSampleBufferAudioRenderer, use this object to coordinate group playback. Adopt the coordinator’s delegate protocol so that your player responds to the commands that the coordinator issues. note: Use the Group Activities framework to connect a playback coordinator to its peers.

## Topics

### Configuring playback policies

- [participantLimitForWaitingOutSuspensions(withReason:)](avfoundation/avplaybackcoordinator/participantlimitforwaitingoutsuspensions(withreason:).md)
- [setParticipantLimit(_:forWaitingOutSuspensionsWithReason:)](avfoundation/avplaybackcoordinator/setparticipantlimit(_:forwaitingoutsuspensionswithreason:).md)
- [suspensionReasonsThatTriggerWaiting](avfoundation/avplaybackcoordinator/suspensionreasonsthattriggerwaiting.md)
- [pauseSnapsToMediaTimeOfOriginator](avfoundation/avplaybackcoordinator/pausesnapstomediatimeoforiginator.md)

### Suspending state coordination

- [beginSuspension(for:)](avfoundation/avplaybackcoordinator/beginsuspension(for:).md)
- [AVCoordinatedPlaybackSuspension](avfoundation/avcoordinatedplaybacksuspension.md)
- [expectedItemTime(atHostTime:)](avfoundation/avplaybackcoordinator/expecteditemtime(athosttime:).md)

### Observing suspension reasons

- [suspensionReasons](avfoundation/avplaybackcoordinator/suspensionreasons.md)
- [suspensionReasonsDidChangeNotification](avfoundation/avplaybackcoordinator/suspensionreasonsdidchangenotification.md)

### Observing other participants

- [otherParticipants](avfoundation/avplaybackcoordinator/otherparticipants.md)
- [AVCoordinatedPlaybackParticipant](avfoundation/avcoordinatedplaybackparticipant.md)
- [otherParticipantsDidChangeNotification](avfoundation/avplaybackcoordinator/otherparticipantsdidchangenotification.md)

### Coordinating with group sessions

- [coordinateWithSession(_:)](avfoundation/avplaybackcoordinator/coordinatewithsession(_:).md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Inherited By

- [AVDelegatingPlaybackCoordinator](avfoundation/avdelegatingplaybackcoordinator.md)
- [AVPlayerPlaybackCoordinator](avfoundation/avplayerplaybackcoordinator.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### SharePlay

- [Destination Video](visionos/destination-video.md)
- [Supporting coordinated media playback](avfoundation/supporting-coordinated-media-playback.md)
- [AVPlayerPlaybackCoordinator](avfoundation/avplayerplaybackcoordinator.md)
- [AVDelegatingPlaybackCoordinator](avfoundation/avdelegatingplaybackcoordinator.md)
- [AVPlaybackCoordinationMedium](avfoundation/avplaybackcoordinationmedium.md)
