【问题标题】:Getting only null returns from MPMediaQuery albums query从 MPMediaQuery 专辑查询中仅获取空返回
【发布时间】:2018-12-13 09:03:53
【问题描述】:

好的。所以,我一直在我的iphone上运行这个。它适用于歌曲很好,我可以在 UITableview 中显示包含艺术家姓名和专辑封面的歌曲列表,但是当我尝试搜索专辑时,我只是得到空值。这是我的专辑查询代码。

    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;



    }

我尝试进行特定的专辑查询而不是一般查询并且得到相同的结果,我在这里有点困惑,如果我在下面得到这个查询以返回 mediaTitle 设置为专辑名称的 [allAlbums items] 我得到我的库中每首歌曲的专辑名称,但是如果我尝试获取收藏集,我只会得到空值,我的所有歌曲都正确定义并填写了专辑和艺术家字段,所以我知道这不是问题。

【问题讨论】:

  • MPMediaQuery *allAlbums = [[MPMediaQuery alloc] init]; 但这不是专辑查询! 您的相册查询在哪里?
  • 我可以将它切换为专辑查询,它给了我一个较短的空列表,我猜这意味着它调用专辑列表,但它们仍然是空的
  • 好吧,我不知道你的新代码是什么样子的。我的在线书籍包含一些展示如何执行专辑查询的 Objective-C 代码。 apeth.com/iOSBook/ch29.html#_exploring_the_music_library
  • 谢谢,我可能会看看

标签: ios objective-c mpmediaquery


【解决方案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];

        }

【讨论】:

  • 谢谢,花了我一段时间,但我终于到了那里,我现在觉得有点愚蠢,不认为它返回的是列表列表而不是实际的媒体项目。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多