前回の続きです。
【iOS】iPod Library Accessの使い方(3)バックグラウンドでの再生に対応する
結構いろんなことろができるようになってきました。次は再生する曲の指定です。流れとしてはこんな感じ。
- 歌手名でiPodのライブラリを検索(MPMediaPropertyPredicateの作成)
- 検索用のクエリを準備(MPMediaQueryの作成)
- 検索の実行(addFilterPredicateのコール)
簡単ですね。アルバム名やジャンルでもforProperty:MPMediaItemPropertyXXX形式で指定できるみたい。複数のフィルターをかけたいならその分addFilterPredicateを呼べばOK。AND検索してくれます。あとどうやら完全一致検索っぽいのでpredicateWithValueにはiPodに登録されてる完全名で入れないとダメみたい。
コード
- (IBAction)pushedDebugButton:(id)sender { MPMediaPropertyPredicate *artistNamePredicate = [MPMediaPropertyPredicate predicateWithValue:@"坂本真綾" forProperty:MPMediaItemPropertyArtist]; MPMediaQuery *query = [MPMediaQuery artistsQuery]; [query addFilterPredicate:artistNamePredicate]; // ヒットした曲をすべて表示する…が、今回は1曲目を再生する for( MPMediaItem *item in [query items]) { NSLog(@"%@", [item valueForProperty:MPMediaItemPropertyTitle]); [_player setNowPlayingItem:item]; break; } }