按专辑排序MPMediaItem

时间:2013-02-04 18:30:47

标签: ios objective-c mpmediaitem

我有一首“歌曲”NSMutableArray充满了设备上的所有歌曲:

    MPMediaQuery *everything = [MPMediaQuery songsQuery];   
    NSArray *songCollections = [everything collections];

    songs = [NSMutableArray array];
    for (MPMediaItemCollection *song in songCollections) {
        MPMediaItem *representativeItem = [song representativeItem];  
        [songs addObject:representativeItem];
    }

有没有办法按专辑排序?我注意到了添加

   [everything setGroupingType:MPMediaGroupingAlbum]; 

会产生一个奇怪的结果(它只是在数组中推送每张专辑的第一首歌曲)

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以获取相册,然后通过它们进行迭代来填充歌曲数组,从而产生相对于相册排序的歌曲:

NSMutableArray *sortedSongs = [[NSMutableArray alloc] init];
MPMediaQuery *albums = [MPMediaQuery albumsQuery];
NSArray* albumObjects = [albums collections];
for(MPMediaItemCollection *album in albumObjects) {
    for(MPMediaItem *song in album.items) {
        [sortedSongs addObject:song];
    }
}

NSLog(@"sorted songs : %@", sortedSongs);

希望这有帮助