2016-06-22 28 views
8

Tak więc pracowałem nad aplikacją do przechwytywania wideo, która odtwarza dźwięk w tle (z Spotify lub Apple Music) i mam mały problem z niewielką przerwą w dźwięku po otwarciu aplikacji podczas odtwarzania dźwięku jest odtwarzany.Dźwięk w tle dla aplikacji wideo na iOS

Oto co mam do umożliwienia dźwięku tła do gry (znajduje się w moich didFinishLaunchingWithOptions w moim AppDelegate Klasa:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord 
           withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker |  AVAudioSessionCategoryOptionMixWithOthers 
             error:nil]; 
[[AVAudioSession sharedInstance] setActive:YES error:nil]; 

żadnych wskazówek do zatrzymania tego początku przerwania Dzięki !!

EDIT

?

Należy również wspomnieć po ustawieniu AVAudioSession I ustawiam moją AVCaptureSession. Inicjuję go, a następnie ustawię właściwości.

self.session.usesApplicationAudioSession = YES; 
self.session.automaticallyConfiguresApplicationAudioSession = NO; 
+1

Zamiast podawać w 'nil' dla błędu, dlaczego nie użyć' NSError' i sprawdzić, czy błąd został zwrócony? – JAL

+0

@JAL nie otrzymuje żadnego błędu –

+0

Czy zauważyłeś tę przerwę tylko w spotify? – NeverHopeless

Odpowiedz

2

Myślę, że powodem przerwy jest aktualizowanie kategorii w każdym przypadku. Możesz użyć poniższej funkcji, aby sprawdzić i zaktualizować kategorię tylko wtedy, gdy jest potrzebna.

-(BOOL) checkAndUpdateCategory { 
    NSError *error; 
    AVAudioSession *session = [AVAudioSession sharedInstance]; 
    BOOL result = [session.category isEqualToString:AVAudioSessionCategoryPlayAndRecord]; 
    if(!result) { 
     result = [session setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionMixWithOthers error:&error]; 
     if(error) { 
      //Handle Error 
      NSLOG(@"Error:%@", error); 
     } 
    } 
    return result; 
} 
+0

To nie działało :(Wciąż dostaję tę przerwę –

+0

Hmm, czy wiesz, jaka jest wartość 'session.category' po uruchomieniu aplikacji? –

+0

Pozostaje jako AVAudioSessionCategoryPlayAndRecord –