0

我可以在UITableView上显示音乐库。当我选择UITableViewCell时播放音乐

songsArray = [[NSMutableArray alloc]init]; 
MPMediaQuery *playlistQuery = [[MPMediaQuery alloc]init]; 
[playlistQuery setGroupingType:MPMediaGroupingTitle]; 
songArray = [playlistQuery items]; 
for (MPMediaItem *song in songArray) { 
    NSString *songTitle = [song valueForProperty: MPMediaItemPropertyTitle];   
    [songsArray addObject:songTitle]; 
} 
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:    (NSIndexPath *)indexPath { 
    cell.textLabel.text = [songsArray objectAtIndex:row]; 
[cell.textLabel setTextColor:[UIColor whiteColor]]; 

但是,当我选择的UITableView细胞不能播放音乐。

NSUInteger row = indexPath.row; 

NSString *selectedSong = [songsArray objectAtIndex:row]; 
MPMusicPlayerController *appPlayer = [MPMusicPlayerController iPodMusicPlayer]; 

[appPlayer setQueueWithQuery:selectedSong]; 

[appPlayer play]; 

}

谁能帮我?

+0

是否MPMusiePlayerController工作没有的tableView,如果手动SEL等一首歌? – 2011-05-07 11:49:50

+0

是的,我选择了一首没有MediaPicker的歌曲。 – Sookcha 2011-05-07 11:54:41

+0

我会选择一首歌曲,如iPhone的默认音乐播放器(iPod) – Sookcha 2011-05-07 11:55:11

回答

0

阿我看到的问题:

移动此代码:

NSUInteger row = indexPath.row; 
NSString *selectedSong = [songsArray objectAtIndex:row]; 
MPMusicPlayerController *appPlayer = [MPMusicPlayerController iPodMusicPlayer]; 
[appPlayer setQueueWithQuery:selectedSong]; 
[appPlayer play]; 

到的UITableViewDelegate协议方法 'didSelectRowAtIndexPath方法' 是这样的:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSUInteger row = indexPath.row; 
    NSString *selectedSong = [songsArray objectAtIndex:row]; 
    MPMusicPlayerController *appPlayer = [MPMusicPlayerController iPodMusicPlayer]; 
    [appPlayer setQueueWithQuery:selectedSong]; 
    [appPlayer play]; 
} 

编辑

文档:

+0

谢谢,但它有警告。 – Sookcha 2011-05-07 12:05:59

+0

当传递来自不同Objective-C类型的'setQueueWithQuery:'的参数1时,期望的'struct MPMediaQuery *'不兼容Objective-C类型'struct NSString *'。怎么了? – Sookcha 2011-05-07 12:06:27

+0

setQueueWithQuery需要一个MPMediaQuery对象。请参阅Apple的文档。 – 2011-05-07 12:09:16