2015-05-24 32 views
6

我正在开发一款应用程序,它可以在应用程序处于前景和背景时进行一些录制。哪个在工作。但是,我注意到'系统'听起来像推送通知警报声音,振动也会在我的音频会话(见下文)处于活动状态时静音。即使应用程序处于后台,情况也是如此。使用AVAudioSession AVAudioSessionCategoryPlayAndRecord静音所有推送通知的声音和振动。即使在后台的应用程序

结果是,我停止获取标准事件(如短信)的通知声音/信息,而我的应用程序在后台并且正在录制。

AVAudioSession* session = [AVAudioSession sharedInstance]; 
[session setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&error]; 

显然这些声音/振动是不互溶的,所以我想他们得到静音:

音频会话设置如下。

有没有办法解决这个问题?如何记录并仍然让用户获得推送通知声音和振动?此外

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord 
           withOptions:(AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionDuckOthers) 
             error:nil]; 

,你可以去激活音频会话使用此进行实验:

回答

1

你可以试试这个

[[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil]; 

,然后重新启动它:

[[AVAudioSession sharedInstance] setActive:YES error:nil];