1

我可以使用下面的设置进行录制——它第一次工作,但是当我再次尝试时,文件总是 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 内部调用...

4

1 回答 1

1

自从发现问题是我失踪了

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

从这里iPhone SDK:调用 [AVPlayer 播放] 后 AVAudioRecorder 将不记录

于 2013-02-07T01:59:56.437 回答