audioRecorderDidFinishRecording未在设备上调用

时间:2013-10-12 04:46:09

标签: avaudiorecorder

在我的设备上使用Xcode 5.0并运行iOS 7.0.2。

我正在使用这种代码:

AVAudioRecorder *audioRecorder;
………
[audioRecorder recordForDuration:(NSTimeInterval)5.0];
………
- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag
{
        NSLog(@"audioRecorderDidFinishRecording");
}

在模拟器上,一切正常,方法audioRecorderDidFinishRecording在调用recordForDuration后5秒内按预期激发。 在设备上虽然它永远不会激发。为什么会这样?有什么想法吗?

我在网上看到过类似的问题,但不完全是这个问题,更重要的是没有对我有用的答案。

2 个答案:

答案 0 :(得分:3)

如果其他人有同样的问题。这是我找到的解决方案:

在调用recordForDuration方法之前需要以下内容。

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

奇怪的是,这不是模拟器上的问题。

答案 1 :(得分:1)

audioRecorder.stop()也需要调用