読者です 読者をやめる 読者になる 読者になる

gl5_progのメモ

自分のためのメモとかまとめとか

iPodライブラリプログラミングメモ

まとめ

  • iPodライブラリの曲を再生するには MPMusicPlayerController クラスを使う
  • MPMusicPlayerControllerは2つの種類が存在
    • アプリケーション音楽プレイヤー : 組み込みのiPodアプリと状態が共有されない音楽プレイヤー
    • iPod音楽プレイヤー : 組み込みのiPodアプリと状態が共有される音楽プレイヤー
  • iPadライブラリの情報を取得するにはMPMediaQueryを使う
  • MPMediaQueryにフィルターとグループを設定した上でitemsまたはcollectionsメソッドを呼び出すことでMPMediaItemまたはMPMediaItemCollectionの配列を取得できる
  • フィルターとグループの設定はともに任意で、どちらも指定しない場合すべてにマッチする
  • フィルターはMPMediaPropertyPredicateで表され、"MPMediaItemのどのプロパティ"(=property)が"特定の値"(=value) と"一致する"または"含む"か(=comparisonType)を指定する。
  • MPMediaPropertyPredicateのpropertyには以下のキー(文字列)を使用する。
  • MPMusicPlayerControllerを使って音楽を再生する場合、MPMediaQueryを渡す方法とMPMediaItemCollectionを渡す方法がある。
  • アルバム情報を取得するには
    • MPMediaQueryの設定をグループをMPMediaGroupingAlbumにする
    • collectionsでクエリを実行する(NSArrayが返ってくる)
    • 返ってきたNSArrayの要素をMPMediaItemCollectionにキャストしてアクセスする
      • MPMediaItemCollectionが持つプロパティはMPMediaItemPropertyPersistentIDのみしか存在せず、MPMediaItemCollection自身はとくにアルバムの情報をプロパティとしては持っていない。
      • そこで、アルバム名などの情報を取得するにはrepresentativeItemで取得したMPMediaItemのMPMediaItemPropertyAlbumTitleプロパティなどを参照する
      • しかし、iPodライブラリにおいてアルバムとは単一のアーティストによるものという前提があるようなので、一般的な意味でのアルバムの情報を取得するには、すべての曲のMPMediaItemPropertyAlbumTitleから上手い具合に独自のアルバム情報を作っていくしかないようだ。

クラス