AVAudioRecorder在AVAudioSessionInterruptionNotification之后没有恢复

时间:2016-06-30 10:07:07

标签: ios objective-c avaudiorecorder

我用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]不会恢复录制到文件。但它开始将其记录为新的音频文件。如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

中断呼叫2次会导致它通知您关于开始中断和结束的情况。查看通知userInfo(您的发件人是通知对象),它包含密钥AVAudioSessionInterruptionTypeKey的对象,其中包含一个值:AVAudioSessionInterruptionTypeBeganAVAudioSessionInterruptionTypeEnded。您可以分析它,并在暂停和恢复时进行预测。但请记住,第二次调用没有必要,它在文档中写入,这是真的,我检查。系统可以在您恢复工作时以及在您不需要时工作。

关于记录器信息太少。