2011-05-17 222 views
1

我試圖播放iPod庫中的幾首歌曲。我可以使用此代碼播放一首歌曲:從iPod庫播放歌曲

MPMusicPlayerController *musicPlayer = [MPMusicPlayerController applicationMusicPlayer]; 
MPMediaPropertyPredicate *artist = [MPMediaPropertyPredicate predicateWithValue:@"Poker Face" forProperty:MPMediaItemPropertyTitle]; 

MPMediaQuery *myArtistQuery = [[MPMediaQuery alloc] init]; 
[myArtistQuery addFilterPredicate:artist]; 

[musicPlayer setQueueWithQuery:myArtistQuery]; 
[musicPlayer play]; 

它起着一個歌曲「撲克臉」,當我加入到以前的代碼

MPMediaPropertyPredicate *artist1 = [MPMediaPropertyPredicate predicateWithValue:@"Born This Way" forProperty:MPMediaItemPropertyTitle] 

[myArtistQuery addFilterPredicate:artist1]; 

它起着什麼。我有一些歌曲標題,如果它們存在,我想播放它們。

我該怎麼做?

謝謝。

回答

7

這裏是解決方案。從播放的iPod庫兩首歌曲的藝術家

MPMusicPlayerController *musicPlayer = [MPMusicPlayerController applicationMusicPlayer]; MPMediaQuery *everything = [[MPMediaQuery alloc] init]; MPMediaPropertyPredicate *artist = [MPMediaPropertyPredicate predicateWithValue:@"AC/DC" forProperty:MPMediaItemPropertyArtist]; [everything addFilterPredicate:artist]; NSArray *itemsFromGenericQuery = [everything items]; NSMutableArray *array = [[NSMutableArray alloc] init]; for (MPMediaItem *song in itemsFromGenericQuery) { NSString *songTitle = [song valueForProperty: MPMediaItemPropertyTitle]; if ([songTitle isEqualToString:@"Highway to Hell"]) { NSLog (@"%@", songTitle); [array addObject:song]; } if ([songTitle isEqualToString:@"Thunderstruck"]) { NSLog (@"%@", songTitle); [array addObject:song]; } } MPMediaItemCollection *collection = [[MPMediaItemCollection alloc] initWithItems:array]; [musicPlayer setQueueWithItemCollection:collection]; // NSLog(@"%@", [[MPMediaQuery songsQuery].items); [musicPlayer play];

+4

+1從庫中拉AC/DC的... – PruitIgoe 2013-05-02 18:19:36