我正在尝试在iOS中使用MPMediaQuery
从iPod库中检索播放列表。
我希望在UITableView
中展示。
以下是viewDidLoad
中的代码。
MPMediaQuery *myQuery = [[MPMediaQuery alloc] init];
[myQuery setGroupingType: MPMediaGroupingPlaylist];
arrayOfPlaylist = [myQuery collections];
并在UITableViewCell
方法
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
for(int i=0;i<self.arrayOfPlaylist.count;i++)
{
dic = [self.arrayOfPlaylist objectAtIndex:0];
cell.textLabel.font = [UIFont systemFontOfSize:10];
cell.textLabel.text = [NSString stringWithFormat:@"%@",[self.arrayOfPlaylist objectAtIndex:indexPath.row]];
}
return cell;
在我编写上述代码后,在我的UITableView
中,我只收到以下消息:
<MPConcreteMediaPlaylist : 0x1e51afd0>
我不知道那是什么以及如何将播放列表名称转换为String。
当我使用NSLog
方法测试时,我的播放列表计数是正确的。
但我只在UITableView
中收到了上述消息并且没有播放列表名称。
我只是iOS的初学者。
请帮我在UITableView
显示播放列表。
答案 0 :(得分:9)
可以像这样探索播放列表:
MPMediaQuery *myQuery = [[MPMediaQuery alloc] init];
arrayOfPlaylist = [myQuery collections];
for (MPMediaPlaylist *playlist in arrayOfPlaylist) {
NSLog (@"Playlist :%@", [playlist valueForProperty: MPMediaPlaylistPropertyName]);
NSArray *songs = [playlist items];
for (MPMediaItem *song in songs) {
NSString *strSongTitle =
[song valueForProperty: MPMediaItemPropertyTitle];
NSLog (@"Title : %@", strSongTitle);
}
}
答案 1 :(得分:3)
我对自己的问题得到了答案。
就是这样。
MPMediaQuery *query = [MPMediaQuery playlistsQuery];
NSArray *playlists = [query collections];
for(int i = 0; i < [playlists count]; i++)
{
NSLog(@"Playlist : %@", [[playlists objectAtIndex:i] valueForProperty: MPMediaPlaylistPropertyName]);
}