<!--
{
  "availability" : [
    "tvOS: -",
    "visionOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "AVKit",
  "identifier" : "/documentation/AVKit/AVInterfacePlaybackControllable",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "AVKit"
    ],
    "preciseIdentifier" : "c:objc(pl)AVInterfacePlaybackControllable"
  },
  "title" : "AVInterfacePlaybackControllable"
}
-->

# AVInterfacePlaybackControllable

Provides playback control and state management for media content.

```
@protocol AVInterfacePlaybackControllable <NSObject>
```

## Topics

### Instance Properties

[`@property (nonatomic, readonly, getter=isBuffering) BOOL buffering;`](/documentation/AVKit/AVInterfacePlaybackControllable/buffering)

Indicates whether the media source is currently buffering content. Returns YES when the source is loading data and cannot immediately continue playback. Must be key-value observable.

[`@property (nonatomic, readonly) BOOL containsLiveStreamingContent;`](/documentation/AVKit/AVInterfacePlaybackControllable/containsLiveStreamingContent)

Indicates whether the content contains live streaming content. Returns YES for live streams and NO for on-demand content. Must be key-value observable.

[`@property (nonatomic, readwrite) float defaultPlaybackSpeed;`](/documentation/AVKit/AVInterfacePlaybackControllable/defaultPlaybackSpeed)

The default playback speed to use when playback begins.
This value is used to set the initial playback rate when starting playback.
A value of 1.0 represents normal speed. Must be key-value observable.

[`@property (nonatomic, readonly, nullable) NSError * playbackError;`](/documentation/AVKit/AVInterfacePlaybackControllable/playbackError)

Error information when the source encounters a playback failure. Nil when playback is functioning normally. Must be key-value observable.

[`@property (nonatomic, readwrite) float playbackSpeed;`](/documentation/AVKit/AVInterfacePlaybackControllable/playbackSpeed)

The current playback speed multiplier. A value of 1.0 represents normal speed, values greater than 1.0 represent faster playback, and values between 0.0 and 1.0 represent slower playback. Must be key-value observable.

[`@property (nonatomic, readwrite, getter=isPlaying) BOOL playing;`](/documentation/AVKit/AVInterfacePlaybackControllable/playing)

Indicates whether the media is currently playing. Setting this property starts or pauses playback. Must be key-value observable.

[`@property (nonatomic, readonly, getter=isReady) BOOL ready;`](/documentation/AVKit/AVInterfacePlaybackControllable/ready)

Indicates whether the media source is ready for playback operations. Returns YES when the source has sufficient data and is prepared to begin playback.
Use this property to determine when playback controls should be enabled and when the media can respond to play requests. Must be key-value observable.

[`@property (nonatomic, readwrite) float scanSpeed;`](/documentation/AVKit/AVInterfacePlaybackControllable/scanSpeed)

The scanning speed multiplier used during fast-forward or rewind operations. A positive value indicates forward scanning, negative indicates backward scanning. Must be key-value observable.

[`@property (nonatomic, readwrite) AVInterfacePlaybackState state;`](/documentation/AVKit/AVInterfacePlaybackControllable/state)

The current operational state of the interface source. Must be key-value observable.

[`@property (nonatomic, readonly) AVInterfaceSeekCapabilities supportedSeekCapabilities;`](/documentation/AVKit/AVInterfacePlaybackControllable/supportedSeekCapabilities)

An option set indicating which timeline navigation operations are supported by this media source.
This property defines the available navigation capabilities, including precise seeking to specific time positions and accelerated scanning for fast-forward/rewind operations.
The supported modes may vary based on content type, licensing restrictions, or technical limitations of the underlying media format. Must be key-value observable.

## Relationships

### Inherits From

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

### Inherited By

[`AVInterfaceControllable`](/documentation/AVKit/AVInterfaceControllable)

---

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)