2013-02-07 61 views
1

我可以使用下面的設置進行錄製 - 第一次使用,但是當我再次嘗試時,文件總是8192字節,即不是正確的錄製內容。使用AVAudioRecorder重新錄製

-(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裏面是否有幫助?

+0

它可能是有用的記錄任何可能的「錯誤」,而不是簡單地返回。 –

+0

@MichaelDautermann它確實,只是爲了簡潔而把它拿出來。 – daidai

+0

該設置當然看起來不錯。 「stopRecording'」方法是什麼樣的? –

回答

相關問題