12.8. Accessing the Music Library

Problem

You want to access an item that your user picks from her music library.

Solution

Use the MPMediaPickerController class:

MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc]
                                        initWithMediaTypes:MPMediaTypeAny];

Discussion

MPMediaPickerController is a view controller that the Music app displays to the user. By instantiating MPMediaPickerController, you can present a standard view controller to your users to allow them to select whatever item they want from the library and then transfer the control to your application. This is particularly useful in games, for instance, where the user plays the game and can have your application play his favorite tracks in the background.

You can get information from the media picker controller by becoming its delegate (conforming to MPMediaPickerControllerDelegate):

#import "ViewController.h"
#import <MediaPlayer/MediaPlayer.h>

@interface ViewController () <MPMediaPickerControllerDelegate>
@property (nonatomic, strong) MPMediaPickerController *mediaPicker;
@end

@implementation ViewController

Inside your displayMediaPicker: selector, implement the code required to display an instance of the media picker controller and present it to the user as a modal view controller:

- (void) displayMediaPicker{

    self.mediaPicker = [[MPMediaPickerController alloc]
                        initWithMediaTypes:MPMediaTypeAny];

    if (self.mediaPicker != nil){

        NSLog(@"Successfully instantiated a media picker.");
        self.mediaPicker.delegate = self;

Get iOS 7 Programming Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.