<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVKit",
  "identifier" : "/documentation/AVKit/AVPlaybackUserInterfacePlaybackControllable-9he54",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "AVKit"
    ],
    "preciseIdentifier" : "s:5AVKit43AVPlaybackUserInterfacePlaybackControllableP"
  },
  "title" : "AVPlaybackUserInterfacePlaybackControllable"
}
-->

# AVPlaybackUserInterfacePlaybackControllable

Provides playback control and state management for media content.

```
@MainActor protocol AVPlaybackUserInterfacePlaybackControllable : AnyObject, Observable
```

## Topics

### Instance Properties

[`var containsLiveStreamingContent: Bool`](/documentation/AVKit/AVPlaybackUserInterfacePlaybackControllable-9he54/containsLiveStreamingContent)

Indicates whether the content is a live stream.

[`var error: (any Error)?`](/documentation/AVKit/AVPlaybackUserInterfacePlaybackControllable-9he54/error)

Error information when the source encounters a playback failure.

[`var isBuffering: Bool`](/documentation/AVKit/AVPlaybackUserInterfacePlaybackControllable-9he54/isBuffering)

Indicates whether the media source is currently stalled waiting for data.

[`var isPlaying: Bool`](/documentation/AVKit/AVPlaybackUserInterfacePlaybackControllable-9he54/isPlaying)

Indicates whether playback is active.

[`var isReady: Bool`](/documentation/AVKit/AVPlaybackUserInterfacePlaybackControllable-9he54/isReady)

Indicates whether the media source is ready to begin playback.

[`var playbackSpeed: Float`](/documentation/AVKit/AVPlaybackUserInterfacePlaybackControllable-9he54/playbackSpeed)

The user’s preferred playback speed multiplier.
This value is preserved across scanning operations.

[`var scanSpeed: Float`](/documentation/AVKit/AVPlaybackUserInterfacePlaybackControllable-9he54/scanSpeed)

The speed multiplier used during scanning (fast-forward or rewind).
This is a transient override active only while `state` is scanning. It does not affect `playbackSpeed`. When scanning ends, playback resumes at `playbackSpeed`.

[`var state: AVPlaybackUserInterfacePlaybackState`](/documentation/AVKit/AVPlaybackUserInterfacePlaybackControllable-9he54/state)

The current transport state of the playback source.

[`var supportedSeekCapabilities: AVPlaybackUserInterfaceSeekCapabilities`](/documentation/AVKit/AVPlaybackUserInterfacePlaybackControllable-9he54/supportedSeekCapabilities)

The supported timeline navigation operations.

## Relationships

### Inherited By

[`AVPlaybackUserInterfaceControllable-92fri`](/documentation/AVKit/AVPlaybackUserInterfaceControllable-92fri)

### Inherits From

[`Observable`](/documentation/Observation/Observable)

---

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)