假设我想按名称命名所有来自特定歌曲的歌曲,例如“我的播放列表”,播放列表和该播放列表中的播放歌曲。
有可能吗?
答案 0 :(得分:3)
我没有对此进行过测试,但下面的代码是检索播放列表并播放其第100个项目的开始。但是,它不会通过tite对播放列表进行排序。为此,您可以迭代播放列表项,检索所有名称,并将名称放入一个字典中,MPMediaItem
个对象作为键(不知道是否有效)。然后,您可以通过在字典上调用-keysSortedByValueUsingSelector:
来按歌曲标题进行排序,该字典将返回一系列媒体项目。从该数组中取出第100个元素并将其提供给音乐播放器。
NSString *playlistToPlay = @"My playlist";
MPMediaQuery *playlistsQuery = [MPMediaQuery playlistsQuery];
NSArray *playlists = [playlistsQuery collections];
for (MPMediaPlaylist *playlist in playlists) {
NSString *playlistName = [playlist valueForProperty:MPMediaPlaylistPropertyName];
if ([playlistName isEqualToString:playlistToPlay]) {
// This is the playlist we are looking for
MPMusicPlayerController *player = [MPMusicPlayerController iPodMusicPlayer];
[player stop];
[player setQueueWithItemCollection:playlist];
// Play the 100th song in the playlist
MPMediaItem *songToPlay = [[playlist items] objectAtIndex:99];
player.nowPlayingItem = songToPlay;
[player play];
// Exit the loop
break;
}
}