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

The jonki

呼ばれて飛び出てじょじょじょじょーんき

【iOS】iPod Library Accessの使い方(4)任意の曲を検索して再生する

前回の続きです。
【iOS】iPod Library Accessの使い方(3)バックグラウンドでの再生に対応する

結構いろんなことろができるようになってきました。次は再生する曲の指定です。流れとしてはこんな感じ。

  1. 歌手名でiPodのライブラリを検索(MPMediaPropertyPredicateの作成)
  2. 検索用のクエリを準備(MPMediaQueryの作成)
  3. 検索の実行(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;
    }
}