1

我有一个“歌曲” 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]; 

产生一个奇怪的结果(它只是将每张专辑的第一首歌推入数组)

提前致谢

4

1 回答 1

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);

希望这可以帮助

于 2013-02-04T18:57:20.437 回答