从 iOS 媒体库中获取所有艺术家的列表

Posted

技术标签:

【中文标题】从 iOS 媒体库中获取所有艺术家的列表【英文标题】:Fetch list of all artists from iOS Media Library 【发布时间】:2013-01-27 14:23:18 【问题描述】:

我希望获取用户库中所有艺术家的MPMediaItemCollectionNSArray。这是我当前的代码(显然不起作用):

- (void)viewDidLoad

    [super viewDidLoad];
    MPMediaQuery *artistsQuery = [MPMediaQuery artistsQuery];
    self.artistsArray = artistsQuery.collections;


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

    return self.artistsArray.count;


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ArtistsCell"];
    cell.textLabel.text = [(MPMediaItemCollection *)self.artistsArray[indexPath.row]   valueForProperty:MPMediaPlaylistPropertyName];
    NSLog(@"%@", cell.textLabel.text);
    return cell;

【问题讨论】:

【参考方案1】:

对于艺术家列表,使用MPMediaItemPropertyArtist 而不是MPMediaPlaylistPropertyName 作为媒体项属性键。

由于您的数据源使用MPMediaItemCollection,因此请使用representativeItem 属性来获取每个收藏的艺术家标题字符串。

然后将textLabel的文本设置为艺术家字符串。

MPMediaItemCollection *artistCollection = self.artistsArray[indexPath.row];
NSString *artistTitle = [[artistCollection representativeItem] valueForProperty:MPMediaItemPropertyArtist];
cell.textLabel.text = artistTitle;

【讨论】:

感谢您的回答,它奏效了!但是,您如何将艺术家的照片作为 cell.imageView.image 获得?在“音乐”应用中,它会显示不是专辑封面的艺术家的照片。 如果我想获得艺术家的作品,我该如何获得?

以上是关于从 iOS 媒体库中获取所有艺术家的列表的主要内容,如果未能解决你的问题,请参考以下文章

快速从 iPod 库中获取专辑列表

使用 cocoalibspotify for iOS 获取艺术家列表

使用 Spotify 中 sp.albums 的 .json 输出从同一艺术家的多个专辑中获取曲目 ID

有没有办法一次从 iPod 库中搜索多个艺术家的曲目。

从 iTunes 网络搜索中获取更大的艺术品图像

Spotify 用户专辑不匹配