<!--
{
  "availability" : [
    "iOS: 7.1.0 - 14.0.0",
    "iPadOS: 7.1.0 - 14.0.0",
    "macCatalyst: 13.1.0 - 14.0.0",
    "visionOS: 1.0.0 - 1.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "MediaPlayer",
  "identifier" : "/documentation/MediaPlayer/MPPlayableContentDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "Media Player"
    ],
    "preciseIdentifier" : "c:objc(pl)MPPlayableContentDelegate"
  },
  "title" : "MPPlayableContentDelegate"
}
-->

# MPPlayableContentDelegate

The protocol used to let external media players send playback commands to an app.

```
protocol MPPlayableContentDelegate : NSObjectProtocol
```

## Overview

After the media player determines that a media item should play, the app’s content delegate requests to initiate playback.

> Important:
> Some features of this protocol are specific to CarPlay, which requires a special entitlement issued by Apple. Apps without the correct entitlement won’t appear on the CarPlay home screen. See <http://www.apple.com/ios/carplay/> for more information.

When creating your CarPlay app, keep the following in mind:

- Transition to the Now Playing screen only when content is ready to play. Due to buffering and network conditions, it may take several seconds for audio to begin playing after a user selects it. The user’s selection remains highlighted, and the system displays a spinning activity indicator until your app informs the system that the audio is ready to play.
- Start playback as soon as possible. Playback should begin as soon as audio has sufficiently loaded, even if descriptive information is still loading. Continue loading descriptive information in the background and show it once available.
- Avoid beginning playback automatically. Unless your app’s purpose is to play a single source of audio, it shouldn’t begin playback until the user initiates it.

## Topics

### Playing a specific media item

[`-  playableContentManager:initiatePlaybackOfContentItemAtIndexPath:completionHandler:`](/documentation/MediaPlayer/MPPlayableContentDelegate/playableContentManager(_:initiatePlaybackOfContentItemAt:completionHandler:))

Asks the delegate to begin playback of the specified content item.

### Suggesting content for playback

[`-  playableContentManager:initializePlaybackQueueWithContentItems:completionHandler:`](/documentation/MediaPlayer/MPPlayableContentDelegate/playableContentManager(_:initializePlaybackQueueWithContentItems:completionHandler:))

Asks the delegate to prepare suggested content for playback.

[`-  playableContentManager:initializePlaybackQueueWithCompletionHandler:`](/documentation/MediaPlayer/MPPlayableContentDelegate/playableContentManager(_:initializePlaybackQueueWithCompletionHandler:))

Asks the delegate to prepare suggested content for playback.

### Responding to context changes

[`-  playableContentManager:didUpdateContext:`](/documentation/MediaPlayer/MPPlayableContentDelegate/playableContentManager(_:didUpdate:))

Notifies the delegate that the playable content manager’s context information has changed.

## Relationships

### Inherits From

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

---

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)