通话后iOS背景音频录制

我正在开发一个在后台录制音频的iOS应用程序。 这很好。
问题是什么时候有来电:当我打电话给应用程序停止记录(这很好),但当通话结束时,我需要应用程序再次开始记录。

可能吗 ? 我怎样才能做到这一点 ?

谢谢大家。

UPDATE

我使用AudioQueueNewInput来录制音频。 现在我正在尝试使用此代码来接听来电:

AVAudioSession *session = [AVAudioSession sharedInstance];
NSError *categoryError = nil;
[session setActive: NO error: nil];
if (![session  setCategory:AVAudioSessionCategoryPlayAndRecord
               withOptions:AVAudioSessionCategoryOptionMixWithOthers
                     error:&categoryError]){
    NSLog(@"Error"); //no error
}
[session setActive: YES error: nil];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(handleAudioSessionInterruption:)
                                             name:AVAudioSessionInterruptionNotification
                                           object:session];

我可以通过AVAudioSessionInterruptionOptionShouldResume获取handleAudioSessionInterruption上的调用的结束,但是如何重新启动我的录音机?

我尝试再次调用AudioQueueStart,只是使用相同的功能开始录制,但我无法看到红色条(正在使用麦克风)知道该应用正在录制。 怎么了 ?


请参阅此问题:无法在iOS上以后台模式重新启动中断的音频输入队列

是的,这是可能的,但要在后台重新激活会话,音频会话必须设置AudioSessionProperty kAudioSessionProperty_OverrideCategoryMixWithOthers

OSStatus propertySetError = 0;
UInt32 allowMixing = true;
propertySetError = AudioSessionSetProperty (
                   kAudioSessionProperty_OverrideCategoryMixWithOthers,
                   sizeof (allowMixing),
                   &allowMixing);

或者应用程序必须接收远程控制命令事件:

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
链接地址: http://www.djcxy.com/p/79031.html

上一篇: iOS background audio recording after call

下一篇: Deactivate iOS audio session when not in use?