[iOS]耳コピ用AudioPlayer(その6) | Cocoa練習帳

[iOS]耳コピ用AudioPlayer(その6)

iPodアプリケーションのOn-The-GoインタフェースのArtistsでは、まず、Artistsのリストが表示され、あるArtistを選択するとAlbumsリストが表示され、あるAlbumを選択するのSongsリストが表示されるが、その為で情報を取得する方法を試行錯誤してみたので、それを紹介する。




- (void)viewDidLoad
{
    [super viewDidLoad];
    
    /* Artists一覧の取得 */
    MPMediaQuery    *artistsQuery = [MPMediaQuery artistsQuery];
    NSArray         *artistsArray = [artistsQuery collections];
    for (MPMediaItemCollection *mediaItemCollection in artistsArray) {
        MPMediaItem *mediaItem = [mediaItemCollection representativeItem];
        NSURL   *artistName = (NSURL*)[mediaItem valueForProperty:MPMediaItemPropertyArtist];
        NSLog(@"artist:%@", artistName);
        
        /* Albums一覧の取得 */
        MPMediaQuery    *albumsQuery = [[MPMediaQuery alloc] init];
        [albumsQuery addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:artistName
                                                                        forProperty:MPMediaItemPropertyArtist]];
        [albumsQuery setGroupingType:MPMediaGroupingAlbum];
        NSArray *albums = [albumsQuery collections];
        for (MPMediaItemCollection *album in albums) {
            MPMediaItem *representativeItem = [album representativeItem];
            NSString *albumTitle = [representativeItem valueForProperty:MPMediaItemPropertyAlbumTitle];
            NSLog(@" album:%@", albumTitle);
            
            /* Songs一覧の取得 */
            NSArray *songs = [album items];
            for (MPMediaItem *song in songs) {
                NSString *songTitle = [song valueForProperty: MPMediaItemPropertyTitle];
                NSLog(@"  song:%@", songTitle);
            }
        }
    }
}



はじめArtists一覧は木構造になっていて、Albums、Songsと辿れると予想していたのだが、そうではなくて、得られた情報から検索条件を作って取得する事になる。




ソースコード
GitHubからどうぞ。

https://github.com/murakami/workbook/tree/master/ios/AudioPlayer - GitHub



関連情報
iPhone Core Audioプログラミング

Technical Q&A QA1668Playing media while in the background using AV Foundation

iPod Library Access Programming Guide



【Cocoa練習帳】
http://www.bitz.co.jp/weblog/

http://ameblo.jp/bitz/(ミラー・サイト)
iPhone Core Audioプログラミング/ソフトバンククリエイティブ
¥4,200
Amazon.co.jp