2016-06-22 4 views
8

Also arbeitete ich an einer Video-Capture-App, die Hintergrund-Audio (von Spotify oder Apple Music) spielt und ich habe ein kleines Problem, wo gibt es eine kleine Audiounterbrechung, wenn ich meine App während Audio öffnen wird gespielt.Hintergrund Audio für iOS Video App

Hier ist, was ich für das Erlauben von Hintergrund-Audio (mit Sitz zu spielen in meinem didFinishLaunchingWithOptions in meiner AppDelegate Klasse:

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

irgendwelche Hinweise, dass Anfang Unterbrechung zu stoppen Dank !!

EDIT

?

Ich sollte auch nach der Einstellung der AVAudioSession I erwähnen stelle meine AVCaptureSession ein. Ich initialisiere es und stelle dann die Eigenschaften ein.

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

Anstatt "nil" für den Fehler zu übergeben, warum nicht einen 'NSError' verwenden und sehen, ob ein Fehler zurück gegeben wird? – JAL

+0

@JAL bekommen keinen Fehler –

+0

Haben Sie diese Unterbrechung in spotify nur bemerkt? – NeverHopeless

Antwort

2

Ich denke, der Grund der Unterbrechung ist, dass Sie die Kategorie in jedem Fall aktualisieren. Sie können die Funktion unten verwenden, um die Kategorie nur zu prüfen und zu aktualisieren, wenn sie benötigt wird.

-(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

Das hat nicht funktioniert :(Immer noch diese Unterbrechung –

+0

Hmm, wissen Sie, was ist 'session.category' Wert beim Öffnen der App? –

+0

Es bleibt wie AVAudioSessionCategoryPlayAndRecord –