2016-06-30 40 views
0

我使用AVAudioRecorder录制音频。我将AVAudioSessionInterruptionNotification添加到了我的视图控制器,以便在中断期间暂停记录。AVAudioRecorder在AVAudioSessionInterruptionNotification后无法恢复

- (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方法被调用两次。为什么?。在第一次通话期间,记录器为零。而在第二次通话recoder.isRecording是没有。为什么?

问题2:如果应用程序在接收中断后变为动作,则[recorder record]不会恢复记录到文件。而是开始将它记录为新的音频文件。如何解决这个问题?

回答

0

中断调用2次会导致它通知您有关开始中断和关于结束。查看通知userInfo(您的发件人是通知对象),它包含密钥AVAudioSessionInterruptionTypeKey的对象,其中包含以下值之一:AVAudioSessionInterruptionTypeBeganAVAudioSessionInterruptionTypeEnded。您可以分析它,并在暂停和恢复时保存。但请记住,第二个电话是没有必要的,它在文档中记录,这是真的,我检查。系统可以在您恢复工作时以及不需要时提供服务。

关于录像机,太少的信息。

+0

我的问题2 [记录器记录]没有恢复记录,而是开始将其记录为新文件。 –

+0

我不能给你更多的信息,因为我没有用记录器太近+太低信息在这里工作。我建议它可能会在你的代码中出现问题。也许你会失去记录位置或在某处重新创建记录器。尝试调试所有方法。也许你会抓住一些有趣的东西,什么会回答你的问题。 – Hamster8

+0

我已经检查过'录音机'实例在整个录音过程中都是一样的'即'在进入背景之前和来到前景之前。 –