使用AVAudioRecorder重新录制

时间:2013-02-07 01:05:13

标签: iphone ios objective-c avaudiorecorder

我可以使用下面的设置进行录制 - 它第一次工作,但是当我再次尝试时,文件总是8192字节,即不正确的录制。

-(void) startRecording
{

    NSDictionary *settings = [NSDictionary dictionaryWithObjectsAndKeys:
                          [NSNumber numberWithFloat: 11025.0f],                     AVSampleRateKey,
                          [NSNumber numberWithInt: kAudioFormatMPEG4AAC],           AVFormatIDKey,
                          [NSNumber numberWithInt: 2],                              AVNumberOfChannelsKey,
                          [NSNumber numberWithInt: AVAudioQualityLow],              AVEncoderAudioQualityKey,
                          nil];

    NSString *filenameBasedOnTime = [[NSDate date] description];

    if (_recordedFileURL) _recordedFileURL = nil;

   _recordedFileURL = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingString:filenameBasedOnTime]];

   NSError* error;

   if (_audioRecorder) _audioRecorder = nil;

   _audioRecorder = [[AVAudioRecorder alloc] initWithURL:_recordedFileURL settings:settings error:&error];
   _audioRecorder.delegate = self;

   if (error)
   {    
     return;
   }

   [_audioRecorder prepareToRecord];
   _audioRecorder.meteringEnabled = YES;
   [_audioRecorder record];
}

-(void) stopRecord
{
   [_audioRecorder stop];
}

- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag
{
    [self saveRecording];
}

-(void) saveRecording
{   
    NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:_recordedFileURL.relativeString]];

    NSLog(@"Recording data size = %i", [data length]);
}

如果有帮助,则在UIPopoverController内部调用...

1 个答案:

答案 0 :(得分:1)

自从发现问题是我失踪后

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:NULL];

从这里iPhone SDK: AVAudioRecorder will not record after calling [AVPlayer play]