Search code examples
iosswiftmpmediapickercontroller

SWIFT - Can't set MPMediaPicker delegate


Code:

import UIKit
import MediaPlayer 

class WelcomeView: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()
var mediaPicker: MPMediaPickerController = MPMediaPickerController.self(mediaTypes:MPMediaType.Music)
mediaPicker.allowsPickingMultipleItems = false
mediapicker1 = mediaPicker

}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning() }

var mediapicker1 = MPMediaPickerController()

@IBAction func selectsong(sender: AnyObject) {
self.presentViewController(mediapicker1, animated: true, completion: nil)
}
}

the didPickMediaItems is delegate method/ how can i set the delegate to mediapicker? on the web site it writen simply but i tryed it and it doesnt work in swift. and also, after pick the song how to play it?

i used this websites to create it: media picker and some code from official apple Programming Guide about creating the "hello world" music app) to play music from allsongsquery()


Solution

  • You need to add the MPMediaPickerControllerDelegate protocol to your UIViewController class:

    class WelcomeView: UIViewController, MPMediaPickerControllerDelegate {
    

    Then you can set the delegate of your MPMediaPickerController to self:

    mediaPicker.delegate = self