2013-07-30 3 views
0

Что я пытаюсь сделать, когда пользователь забирает ячейку, я хочу, чтобы она воспроизводила звук. Пока что я не искал ее, должен быть реализован в:Воспроизведение звукового файла при нажатии на ячейку таблицы

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    [self.tableView deselectRowAtIndexPath:indexPath animated:NO]; 

} 

Я просто не знаю, как это назвать. Любая помощь будет оценена по достоинству.

+0

Это делегат таблицы, вам не нужно будет его вызывать, вам просто нужно установить делегат UITableView –

ответ

1

сделать переменную класса для аудиоплеера:

AVAudioPlayer *cellTapSound; 

в viewDidLoad (или viewWillAppear):

cellTapSound = [[AVAudioPlayer alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"cellTapSound" withExtension:@"mp3"] error:nil]; 

[cellTapSound prepareToPlay]; 

в didSelectRowAtIndexPath:

// this line will rewind the player each time you tap again before it ends playing 
// you can tap as fast as you can and play some sort of a tune 
// must have some fun while testing 

if (cellTapSound.isPlaying) [cellTapSound setCurrentTime:0.0]; 

[cellTapSound play]; 

не забывайте:

  • добавить AVFoundation.framework к вашему проекту
  • #import <AVFoundation/AVFoundation.h>
  • Drag & падения звуковой файл в пачке проекта и обновить URL для AVAudioPlayer INIT
  • читать о AVAudioPlayer, чтобы узнать, что еще вы можете делать с ним
+0

Абсолютно совершенный мой друг. – ChrisOSX

+0

Я знал как минимум достаточно, чтобы добавить эту структуру в свой проект, но это хорошо для других пользователей, у которых есть тот же вопрос. Снова спасибо :) – ChrisOSX

+0

Рад быть полезным! Cheers :) –

Смежные вопросы