惊人的音频引擎AERecorder没有录音

时间:2013-08-28 19:43:27

标签: iphone ios objective-c audio ios6.0

我正在使用The Amazing Audio Engine类AERecorder来录制内置麦克风的音频。我检查了下载附带的示例项目。我还实现了TAAE documentation for using the AERecorder中提供的代码。

据我所知,我拥有录制音频所需的一切。唉,创建了文件,标题就在那里,但没有音频数据。我只能想到AEAudioController或我的Xcode项目中的某些设置有问题。

作为参考,我的项目正在使用ARC,我相信我按照文档中的说明将-fno-objc-arc编译器标志添加到导入的任何源中。

有没有其他人遇到过这个问题,如果是,那么它是如何解决的?

我会尝试在TAAE论坛上提出这个问题,但我无法注册。

以下是不愿意关注该链接的人的代码。

编辑:以下代码已更新,以显示之前缺少的详细信息。

- (void)viewDidLoad
{
   [super viewDidLoad]
   self.audioController = [[AEAudioController alloc] 
                       initWithAudioDescription:[AEAudioController nonInterleavedFloatStereoAudioDescription] 
                                   inputEnabled:YES];
   //************************
   // This is the crucial bit of code that was missing
   NSError *error;
   [audioController start:&error];
   //************************
}

- (void)beginRecording {
   // Init recorder
   self.recorder = [[AERecorder alloc] initWithAudioController:_audioController];
   NSString *documentsFolder = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) 
                               objectAtIndex:0];
   NSString *filePath = [documentsFolder stringByAppendingPathComponent:@"Recording.aiff"];
   // Start the recording process
   NSError *error = NULL;
   if ( ![_recorder beginRecordingToFileAtPath:filePath 
                                     fileType:kAudioFileAIFFType 
                                        error:&error] ) {
      // Report error
      return;
   }
   // Receive both audio input and audio output. Note that if you're using
   // AEPlaythroughChannel, mentioned above, you may not need to receive the input again.
   [_audioController addInputReceiver:_recorder];
   [_audioController addOutputReceiver:_recorder];
}
-(void)stopRecording
{
    [_recorder finishRecording];
    [_audioController removeInputReceiver:_recorder];
    [_audioController removeOutputReceiver:_recorder];
    self.recorder = nil;
}

1 个答案:

答案 0 :(得分:2)

我已经找到了问题,这应该是显而易见的。我没有在我的代码中的任何地方调用[audioController start:&error]。现在它就像一个魅力。希望这有助于某人。我不得不说,这是一些非常好的软件。