使用在设备上录制时收到的无效锚定时间错误,转换输入

时间:2011-03-07 04:45:28

标签: iphone avaudiorecorder

在iPhone 4(4.2.1)上创建录制时,我在设备控制台中收到以下错误。调用record方法后立即收到此错误。 AVAudioRecorder的init成功没有错误,prepareToRecord返回true。

<AudioQueueServer> aq@0xaf4000: ConvertInput using invalid anchor time

此错误不会一直发生,也不会在模拟器中发生。

以下是我使用的音频设置:

    self.recordSetting = [[NSMutableDictionary alloc] init];
    [recordSetting setValue:[NSNumber numberWithInt:kAudioFormatMPEG4AAC] forKey:AVFormatIDKey];
    [recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey]; 
    [recordSetting setValue:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey];
    [recordSetting setValue:[NSNumber numberWithInt:AVAudioQualityHigh] forKey:AVEncoderAudioQualityKey];

这个错误意味着什么?

1 个答案:

答案 0 :(得分:4)

我发现导致此错误的问题。我正在回答,以防其他人遇到同样的问题。

在我的录像机选项卡的viewDidLoad中,我将音频会话类别设置为AVAudioSessionCategoryRecord。录制后,我的应用程序进入播放选项卡,在viewDidLoad中,音频会话类别被重置为AVAudioSessionCategoryPlayback。返回录音机选项卡后,音频会话类别仍设置为AVAudioSessionCategoryPlayback,这会导致错误。

要解决此问题,我将音频会话类别设置为app delegate中的AVAudioSessionCategoryPlayAndRecord。