Лучший API для мгновенного воспроизведения голоса на iPhone? - PullRequest
0 голосов
/ 17 мая 2011

Что я пытаюсь сделать:

  • iPhone продолжает контролировать канал голосового ввода
  • как только пользователь говорит (громкость записи> определенный уровень)
  • iPhone начинает запись
  • после прекращения разговора (громкость записи на одну секунду)
  • iPhone воспроизводит запись

Какой API-интерфейс iPhone или пример кода мне следует изучить? Спасибо!

1 Ответ

0 голосов
/ 23 мая 2011

Что вам нужно, это AVFoundation.Чтобы использовать его:

  1. Добавление AVFoundation.framework к вашему проекту
  2. , чтобы ваш контроллер представления соответствовал AVAudioRecorderDelegate, AVAudioPlayerDelegate, один для записи, другой для воспроизведения

Следующий фрагмент кода предназначен для записи:

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *err = nil;
[audioSession setCategory :AVAudioSessionCategoryPlayAndRecord error:&err];
[audioSession setActive:YES error:&err];
NSMutableDictionary *settings = [[NSMutableDictionary alloc] init];
[settings setValue: [NSNumber numberWithInt:kAudioFormatMPEGLayer3] forKey:AVFormatIDKey];
[settings setValue: [NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey]; 
[settings setValue: [NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];
[settings setValue: [NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
[settings setValue: [NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey];
[settings setValue: [NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey];
NSURL *url = [NSURL fileURLWithPath: filepath];
recorder = [[ AVAudioRecorder alloc] initWithURL:url settings:settings error:&err];
[settings release];
[recorder setDelegate:self];
[recorder prepareToRecord];
[recorder record];

Дополнительно необходимо реализовать - (void) audioRecorderDidFinishRecording: (AVAudioRecorder *) успешно: флаг (BOOL) для освобождения рекордера.

Подробнее см. Здесь: http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/00_Introduction.html#//apple_ref/doc/uid/TP40010188

...