---
title: Media Player
framework: Media Player
role: collection
role_heading: Framework
platforms: [iOS 2.0+, iPadOS 2.0+, Mac Catalyst 13.1+, macOS 10.12.1+, tvOS 9.0+, visionOS 1.0+, watchOS 5.0+]
path: mediaplayer
---

# Media Player

Find and play songs, audio podcasts, audio books, and more from within your app.

## Overview

Overview Use the Media Player framework, which is part of MusicKit, to control playback of the user’s media from your app. If your app incorporates music, you can use this framework to search for audio content, such as songs, podcasts, and books, in the user’s library. You can then play that content directly or ask the system Music app to play it. For example, a game might give users the option to play their own music while completing a particular game level. important: To protect user privacy, users need to grant permission for your app to access their media library. Add the NSAppleMusicUsageDescription key to your app’s Info.plist file, and include a description of how you intend to use the user’s library. If this key isn’t present, the system terminates your app when it tries to access the user’s library. To play content from the user’s library using the Media Player framework, use one of the built-in MPMusicPlayerController objects: An application player plays music locally within your app. Use this player when you want greater control over the audio you play for the user. This player doesn’t change the state of the built-in Music app. The system player employs the Music app to play audio on your behalf. Use this player when you want audio to continue playing even when the user switches away from your app. Use media queries to retrieve the items you want to play and to populate the queue for the media player you select. After a user gives your app permission to access their Apple Music account, it can add songs, create playlists, and play songs from Apple Music. If your app detects that the user isn’t an Apple Music subscriber, it can offer a trial. You can’t play video media items directly using the Media Player framework. To play videos containing MPMediaItem objects, use an AVPlayer object from AVFoundation. The system player also provides a way to play video items using the system apps. important: Only use this framework to facilitate playback of the user’s audio content within your app. Don’t gather information about the user’s audio content for any other purpose. For more information about accessing Apple Music content, see the App Store review guidelines.

## Topics

### Essentials

- [NSAppleMusicUsageDescription](bundleresources/information-property-list/nsapplemusicusagedescription.md)

### Built-in music playback

- [Playing audio using the built-in music player](mediaplayer/playing-audio-using-the-built-in-music-player.md)
- [MPMusicPlayerController](mediaplayer/mpmusicplayercontroller.md)
- [MPMediaPlayback](mediaplayer/mpmediaplayback.md)
- [MPSystemMusicPlayerController](mediaplayer/mpsystemmusicplayercontroller.md)

### Media library synchronization

- [MPMediaLibrary](mediaplayer/mpmedialibrary.md)

### Media item queries

- [Using filters to create specialized queries](mediaplayer/using-filters-to-create-specialized-queries.md)
- [MPMediaQuery](mediaplayer/mpmediaquery.md)
- [MPMediaQuerySection](mediaplayer/mpmediaquerysection.md)
- [MPMediaPropertyPredicate](mediaplayer/mpmediapropertypredicate.md)
- [MPMediaPredicate](mediaplayer/mpmediapredicate.md)

### Media player queues

- [MPMusicPlayerControllerQueue](mediaplayer/mpmusicplayercontrollerqueue.md)
- [MPMusicPlayerControllerMutableQueue](mediaplayer/mpmusicplayercontrollermutablequeue.md)
- [MPMusicPlayerApplicationController](mediaplayer/mpmusicplayerapplicationcontroller.md)
- [MPMusicPlayerMediaItemQueueDescriptor](mediaplayer/mpmusicplayermediaitemqueuedescriptor.md)
- [MPMusicPlayerStoreQueueDescriptor](mediaplayer/mpmusicplayerstorequeuedescriptor.md)
- [MPMusicPlayerPlayParametersQueueDescriptor](mediaplayer/mpmusicplayerplayparametersqueuedescriptor.md)
- [MPMusicPlayerQueueDescriptor](mediaplayer/mpmusicplayerqueuedescriptor.md)

### Media items and playlists

- [Providing animated artwork for media items](mediaplayer/providing-animated-artwork-for-media-items.md)
- [MPMediaItem](mediaplayer/mpmediaitem.md)
- [MPMediaItemArtwork](mediaplayer/mpmediaitemartwork.md)
- [MPMediaItemAnimatedArtwork](mediaplayer/mpmediaitemanimatedartwork.md)
- [MPMediaItemCollection](mediaplayer/mpmediaitemcollection.md)
- [MPMediaPlaylist](mediaplayer/mpmediaplaylist.md)
- [MPMediaPlaylistCreationMetadata](mediaplayer/mpmediaplaylistcreationmetadata.md)
- [MPMediaEntity](mediaplayer/mpmediaentity.md)

### Media player user interface

- [Displaying a media picker from your app](mediaplayer/displaying-a-media-picker-from-your-app.md)
- [MPMediaPickerController](mediaplayer/mpmediapickercontroller.md)
- [MPVolumeView](mediaplayer/mpvolumeview.md)

### Now Playing information

- [Becoming a now playable app](mediaplayer/becoming-a-now-playable-app.md)
- [MPNowPlayingSession](mediaplayer/mpnowplayingsession.md)
- [MPNowPlayingInfoCenter](mediaplayer/mpnowplayinginfocenter.md)
- [MPNowPlayingInfoLanguageOption](mediaplayer/mpnowplayinginfolanguageoption.md)
- [MPNowPlayingInfoLanguageOptionGroup](mediaplayer/mpnowplayinginfolanguageoptiongroup.md)
- [Language option characteristic constants](mediaplayer/language-option-characteristic-constants.md)

### External player and system event handling

- [Handling external player events notifications](mediaplayer/handling-external-player-events-notifications.md)
- [Remote command center events](mediaplayer/remote-command-center-events.md)
- [Track navigation events](mediaplayer/track-navigation-events.md)
- [Media playback mode events](mediaplayer/media-playback-mode-events.md)
- [Feedback and rating events](mediaplayer/feedback-and-rating-events.md)

### External media player items

- [MPContentItem](mediaplayer/mpcontentitem.md)

### Media player errors

- [MPError](mediaplayer/mperror.md)

### Deprecated

- [Deprecated types](mediaplayer/deprecated-types.md)

### Classes

- [MPAppEntityIdentifier](mediaplayer/mpappentityidentifier.md)

### Variables

- [MPNowPlayingInfoPropertyAppEntityIdentifiers](mediaplayer/mpnowplayinginfopropertyappentityidentifiers.md)
