<!--
{
  "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/MPPlayableContentManager",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Media Player"
    ],
    "preciseIdentifier" : "c:objc(cs)MPPlayableContentManager"
  },
  "title" : "MPPlayableContentManager"
}
-->

# MPPlayableContentManager

A shared content manager for controlling interactions between your media app and system-provided or external media player interfaces.

```
class MPPlayableContentManager
```

## Overview> Important:
> Some features of this class 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.

The app provides data to the content manager so that the media player can browse the content provided. A delegate provides the media player the ability to perform actions that manage the app’s playback queue.

You don’t create a new content manager directly, instead you grab the shared content manager using the [`shared()`](/documentation/MediaPlayer/MPPlayableContentManager/shared()) method. After getting the shared content manager, your next step depends on the features your app supports:

- To provide content navigation and suggested content for CarPlay, immediately set both the [`dataSource`](/documentation/MediaPlayer/MPPlayableContentManager/dataSource) and [`delegate`](/documentation/MediaPlayer/MPPlayableContentManager/delegate) properties. After setting these properties, use the [`beginUpdates()`](/documentation/MediaPlayer/MPPlayableContentManager/beginUpdates()) and [`endUpdates()`](/documentation/MediaPlayer/MPPlayableContentManager/endUpdates()) methods to load the information from the data source.
- To provide suggested content when the user connects headphones, a Bluetooth stereo, or another output device, set only the [`delegate`](/documentation/MediaPlayer/MPPlayableContentManager/delegate) property. After you set a delegate, iOS automatically calls methods in the [`MPPlayableContentDelegate`](/documentation/MediaPlayer/MPPlayableContentDelegate) protocol allowing you to suggest appropriate content.

## Topics

### Providing playable content

[`dataSource`](/documentation/MediaPlayer/MPPlayableContentManager/dataSource)

The data source provided by the app.

[`MPPlayableContentDataSource`](/documentation/MediaPlayer/MPPlayableContentDataSource)

The data source providing media metadata to external media players so they can build user interfaces displaying your app’s content.

### Responding to playback events

[`delegate`](/documentation/MediaPlayer/MPPlayableContentManager/delegate)

A delegate that lets the media player manage the app’s playback queue.

[`MPPlayableContentDelegate`](/documentation/MediaPlayer/MPPlayableContentDelegate)

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

### Setting the content manager

[`+  sharedContentManager`](/documentation/MediaPlayer/MPPlayableContentManager/shared())

Returns the current content manager instance.

### Updating data

[`-  beginUpdates`](/documentation/MediaPlayer/MPPlayableContentManager/beginUpdates())

Updates several Media Player content items at once.

[`-  endUpdates`](/documentation/MediaPlayer/MPPlayableContentManager/endUpdates())

Ends a synchronized update.

[`-  reloadData`](/documentation/MediaPlayer/MPPlayableContentManager/reloadData())

Reloads the data from the data source.

### Retrieving information on currently playing items

[`context`](/documentation/MediaPlayer/MPPlayableContentManager/context)

The current state of the playable content endpoint.

[`nowPlayingIdentifiers`](/documentation/MediaPlayer/MPPlayableContentManager/nowPlayingIdentifiers)

The content items currently playing based on their identifiers.

## Relationships

### Conforms To

[`CVarArg`](/documentation/Swift/CVarArg)

[`Equatable`](/documentation/Swift/Equatable)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

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

[`Hashable`](/documentation/Swift/Hashable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

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)