0

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

しかし、UITableViewCellを選択すると音楽を再生できません。

    NSUInteger row = indexPath.row;

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

[appPlayer setQueueWithQuery:selectedSong];

[appPlayer play];

}
4

1 に答える 1

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

編集

ドキュメンテーション:

于 2011-05-07T12:02:05.360 に答える