从MPMediaQuery专辑查询中仅获取空返回

时间:2018-12-13 09:03:54

标签: ios objective-c mpmediaquery

好的。所以,我一直在我的iPhone上运行它。它可以正常播放歌曲,我可以在UITableview中显示带有歌手姓名和专辑封面的完整歌曲列表,但是当我尝试搜索专辑时,我只会得到null。这是我的相册查询代码。

    NSMutableArray *AlbumsList = [[NSMutableArray alloc] init];;
    MPMediaQuery *allAlbums = [[MPMediaQuery alloc] init];
    NSArray *itemsFromAlbumQuery = [allAlbums collections];
    //NSLog(@"Albums: %@", itemsFromAlbumQuery);
    NSString* mediaTitle; //the title holder
    int whileX = 0;
    MPMediaItem* mediaItem; //the media holding object
    while(whileX != [itemsFromAlbumQuery count]){
        mediaItem = itemsFromAlbumQuery[whileX];
        mediaTitle = [mediaItem valueForProperty:MPMediaItemPropertyAlbumTitle];
            [AlbumsList addObject: mediaTitle];

        //create a list of song names

        whileX += 1;



    }

我尝试执行特定的相册查询而不是常规查询,并且结果相同,如果我在下面看到此查询以返回[allAlbums项目],并且将mediaTitle设置为“相册名称”,我对此感到有些困惑库中每首歌曲的专辑名称,但是,如果我尝试获取收藏集,我只会得到null,那么我的所有歌曲都正确定义了专辑和艺术家字段,因此我知道这不是问题。

1 个答案:

答案 0 :(得分:1)

这对我有用

MPMediaQuery *allAlbums = [MPMediaQuery albumsQuery];
NSArray *itemsFromAlbumQuery = [allAlbums collections];

        for(int i=0; i< itemsFromAlbumQuery.count;i++){
            MPMediaItemCollection* mc=itemsFromAlbumQuery[i];
            MPMediaItem* item=mc.representativeItem;
            NSString* title=[item valueForProperty:MPMediaItemPropertyAlbumTitle];

        }