Как использовать файл из каталога документов приложений с "didSelectRowAtIndexPath"? - PullRequest
2 голосов
/ 29 апреля 2011

У меня есть куча mp3-файлов, отображаемых в UITableView, которые находятся в моем каталоге документов приложений.

Когда я выбираю строку, я хочу, чтобы файл загружался в AVAudioPlayer и воспроизводился.

Кто-нибудь может подсказать, как мне поступить?

Любая помощь будет принята с благодарностью.

Спасибо!

1 Ответ

1 голос
/ 05 мая 2011

Я наконец понял это:

NSArray *songs;
AVAudioPlayer *player;

- (void)viewDidLoad
{
  [self.player prepareToPlay];

  // Point to Document directory
  NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
  NSError *error = nil;
  NSArray *array = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:&error];

  if (array == nil) {
    // Handle the error
  }
  self.songs = array;
  //[array release];

  //self.title = @"Song List";
  [super viewDidLoad];
  // Do any additional setup after loading the view from its nib.
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
  NSString *applicationDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
  NSString *filePath = [applicationDocumentsDirectory stringByAppendingPathComponent: [songs objectAtIndex:indexPath.row]];
  NSURL *url = [NSURL fileURLWithPath:filePath];

  player = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];

  [player play];
}
...