2015-05-24 33 views
6

Zajmuję się tworzeniem aplikacji, która nagrywa zarówno gdy aplikacja jest na pierwszym planie, jak i w tle. Który działa. Zauważyłem jednak, że "system" brzmi jak dźwięki ostrzegawcze powiadomień push, a wibracje są wyciszane za każdym razem, gdy moja sesja audio (patrz poniżej) jest aktywna. Dzieje się tak nawet wtedy, gdy aplikacja jest w tle.Używanie AVAudioSession AVAudioSessionCategoryPlayAndRecord wycisza wszystkie dźwięki i wibracje powiadomień push. Nawet z aplikacją w tle

Powoduje to, że przestaję otrzymywać dźwięki powiadomień/wibracje dla standardowych rzeczy, takich jak wiadomości tekstowe, podczas gdy moja aplikacja jest w tle i nagrywanie jest włączone.

sesja audio jest ustawiony w następujący sposób:

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

Widocznie te dźwięki/wibracje są nie mieszalne i tak myślę, że dostać wyciszony.

Czy jest jakiś sposób obejścia tego (przy jednoczesnym zachowaniu aktywności nagrywania)? W jaki sposób mogę nagrywać i nadal pozwalać użytkownikowi otrzymywać dźwięki i wibracje powiadomienia Push?

Odpowiedz

1

Można spróbować to:

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

Ponadto, można eksperymentować z Deaktywacja sesji dźwięku przy użyciu to:

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

a następnie ponownie aktywując go:

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