병갈이 블록

iOS 음악 선택 - PickerController 실행(Music App. 음악앱 내 음악을 선택할 수 있는 피커 컨트롤러 실행) 본문

IT(Old)/iOS & Swift

iOS 음악 선택 - PickerController 실행(Music App. 음악앱 내 음악을 선택할 수 있는 피커 컨트롤러 실행)

woojang 2020. 12. 9. 00:30

1. 뷰 컨트롤러 MPMediaPickerControllerDelegate 상속 추가.
class ViewController: UIViewController, MPMediaPickerControllerDelegate

2. PickerController 실행 코드 삽입.
let controller = MPMediaPickerController(mediaTypes: .music)      //Picker Controller 가져오기
controller.allowsPickingMultipleItems = true                                   //MultiSelect 여부
controller.popoverPresentationController?.sourceView = sender    //??????
controller.delegate = self                                                                  //Delegate 세팅
present(controller, animated: true)                                                  //Picker Controller 실행.

3. Delegate 함수 재정의 - 선택 완료시
func mediaPicker(_ mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection) {
    //item을 선택했을 떄
    // Get the system music player.
    //  
    let musicPlayer = MPMusicPlayerController.systemMusicPlayer   //Music Player 가져오기
    musicPlayer.setQueue(with: mediaItemCollection)                       //선택한 음악 리스트 세팅.
    mediaPicker.dismiss(animated: true)                                            //Picker Controller 닫기
    // Begin playback.
    musicPlayer.play()                                                                         //음악 플레이
}

4. Delegate 함수 재정의 - 선택 취소시
func mediaPickerDidCancel(_ mediaPicker: MPMediaPickerController) {
    mediaPicker.dismiss(animated: true)                                            //Picker Controller 닫기
}

 

Comments