2015-05-24 28 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];