我用AVAudioRecorder录制音频。我将AVAudioSessionInterruptionNotification添加到我的viewcontroller以在中断期间暂停录制。
- (void)viewDidLoad
{
[super viewDidLoad];
// Other Stuffs
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(interrupted:)
name:AVAudioSessionInterruptionNotification
object:nil];
}
-(void)interrupted:(NSNotification *) sender
{
if(recorder.isRecording)
{
// Code To Update UI
[recorder pause];
}
}
问题1:在中断期间interruped
方法被调用两次。为什么?。在第一次通话期间,录音机为零。并且在第二次调用recder.isRecording是NO。为什么?
问题2:如果应用程序在收到中断后成为操作,则[recorder record]
不会恢复录制到文件。但它开始将其记录为新的音频文件。如何解决这个问题?
答案 0 :(得分:0)
中断呼叫2次会导致它通知您关于开始中断和结束的情况。查看通知userInfo(您的发件人是通知对象),它包含密钥AVAudioSessionInterruptionTypeKey
的对象,其中包含一个值:AVAudioSessionInterruptionTypeBegan
或AVAudioSessionInterruptionTypeEnded
。您可以分析它,并在暂停和恢复时进行预测。但请记住,第二次调用没有必要,它在文档中写入,这是真的,我检查。系统可以在您恢复工作时以及在您不需要时工作。
关于记录器信息太少。