【swift】音楽ピッカー、MPMediaPickerController を使う時にハマったこと

iPhoneアプリで、swift を使って、iTunesに入っている曲にアクセスするプログラムを作ることになりました。

↓こちらを参考にさせてもらいました。

http://nackpan.net/blog/2015/09/14/ios-swift-musicplayercontroller/

それでも、調べている時にいくつかハマったことがあります。

Info.plist にプロパティを追加しないといけない

iPhoneに入っている曲にアクセスする時は、「Pricacy Music」 の設定をしないといけないのかなと思ったら、「Privacy Media 」の追加が必要でした。

↓こちらを「Info.plist」に追加する。

Privacy - Media Library Usage Description

iOS10から、前もって設定することが必要になったみたいです。

MPMediaPickerController の関数にアンダースコア

MPMediaPickerControllerDelegate の設定をしているのに、なぜ以下の関数が呼ばれないのだろう?と思っていたら、赤色の部分の「アンダースコアを忘れていた」から。

//曲が選択された時

func mediaPicker(_ mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection) {
・・・
}

//キャンセルされた時

func mediaPickerDidCancel(_ mediaPicker: MPMediaPickerController){
・・・
}

このアンダースコアによって、関数の外部名の指定が必要なくなるんですね。

たったこれだけのことで、ずっと悩んでいたら、半日潰れてしまった。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA