【问题标题】:Play music when I select UITableViewCell当我选择 UITableViewCell 时播放音乐
【发布时间】:2011-05-07 11:43:31
【问题描述】:

我可以在 UITableView 上显示音乐库。

  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 Cell 时无法播放音乐。

    NSUInteger row = indexPath.row;

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

[appPlayer setQueueWithQuery:selectedSong];

[appPlayer play];

}

【问题讨论】:

  • 如果您手动选择歌曲,MPMusiePlayerController 是否可以在没有 tableView 的情况下工作?
  • 是的,我选择了没有 MediaPicker 的歌曲。
  • 我会选一首类似 iPhone 的默认音乐播放器(iPod)的歌曲

标签: iphone cocoa-touch mpmusicplayercontroller mpmediaitem


【解决方案1】:

啊,我看到了问题:

移动此代码:

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];
}

编辑

文档:

【讨论】:

  • 不兼容的 Objective-C 类型 'struct NSString *',当从不同的 Objective-C 类型传递 'setQueueWithQuery:' 的参数 1 时,需要 'struct MPMediaQuery *'。怎么了?
  • setQueueWithQuery 需要一个 MPMediaQuery 对象。请参阅 Apple 的文档。
  • 但是我找不到任何关于 UITableView 的文档。
  • 我添加了一些可能对您有所帮助的文档链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多