AVAudioRecorder prepareToRecord工作,但记录失败

时间:2011-02-01 11:18:37

标签: avaudiorecorder

我刚刚构建并测试了一个基本的AVAudioRecorder / AVAudioPlayer录音机和播放器。最终我得到了这个设备,以及模拟器。我的播放器/录像机代码在一个UIView子类中。不幸的是,当我将类复制到我的主项目中时,它不再有效(在设备上 - 模拟器很好)。 prepareToRecord工作正常,但record不是。这是一些代码:

    audioRecorder = [[ AVAudioRecorder alloc] initWithURL:url settings:recordSettings error:&error];
        if ([audioRecorder prepareToRecord]){
            audioRecorder.meteringEnabled = YES;
            if(![audioRecorder record])NSLog(@"recording failed!");
        }else {
            int errorCode = CFSwapInt32HostToBig ([error code]); 
            NSLog(@"preparedToRecord=NO Error: %@ [%4.4s])" , [error localizedDescription], (char*)&errorCode); 
...

我得到“录音失败”。任何人都有任何想法为什么会这样?

1 个答案:

答案 0 :(得分:1)

完整的解决方案是将[SimpleAudioEngine sharedEngine]初始化移至我自己的AVAudioSession setCategory之前。我想在SimpleAudioEngine的某个地方做了setCategory :AVAudioSessionCategoryAmbient。用我自己的setCategory :AVAudioSessionCategoryPlayAndRecord覆盖它会使一切正常。