iosswiftswift3presentviewcontrollermpmediapickercontroller

How Do I Present a Music Library With a View Controller for a MPMediaPickerControllerDelegate using Swift 3 iOS10?


I am trying to follow a recent post on using a MPMediaPickerControllerDelegate to present a music selection list.

The tutorial is found at this URL:

http://www.justindoan.com/tutorials/

I am using this code:

import UIKit
import MediaPlayer

class ViewController: UIViewController, MPMediaPickerControllerDelegate  {

    var mediapicker1: MPMediaPickerController!

    override func viewDidLoad() {
        super.viewDidLoad()


        let mediaPicker: MPMediaPickerController = MPMediaPickerController.self(mediaTypes:MPMediaType.music)
        mediaPicker.allowsPickingMultipleItems = false
        mediapicker1 = mediaPicker
        mediaPicker.delegate = self
        self.presentViewController(mediapicker1, animated: true, completion: nil)
        }
}

However I have found that the:

self.presentViewController(mediapicker1, animated: true, completion: nil)

does not work. Unfortunately, Swift 3's suggested automatic solution does not work either:

self.present(mediapicker1, animated: true, completion: nil)

Furthermore, the iOS 10 Beta Release Notes, found at:

https://www.scribd.com/doc/315770725/IOS-10-Beta-Release-Notes

says on page 10 of 18,

An MPMediaPickerController object may not display as expected.

I have spent a great deal of time looking to solve this issue on my own with no success.

Any suggestions?


Solution

  • Go through the steps:

    1. Add 'NSAppleMusicUsageDescription' to your Info.plist for the privacy authority.
    2. Make sure your Music app is available in your iPhone. It will not work in the simulator.