在我的设备上使用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秒内按预期激发。 在设备上虽然它永远不会激发。为什么会这样?有什么想法吗?
我在网上看到过类似的问题,但不完全是这个问题,更重要的是没有对我有用的答案。
答案 0 :(得分:3)
如果其他人有同样的问题。这是我找到的解决方案:
在调用recordForDuration方法之前需要以下内容。
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
奇怪的是,这不是模拟器上的问题。
答案 1 :(得分:1)
audioRecorder.stop()
也需要调用