2017-02-20 3 views
0

Wenn ich meine App starte, hört die Musik von anderen Apps auf zu spielen.Musik aus anderen Apps hört auf, wenn meine App startet

Ich habe versucht, die setCategory:AVAudioSessionCategoryAmbient in didFinishLaunchingWithOptions hinzufügen, aber die Musik stoppt immer noch beim ersten Start. Wenn ich die Musik starte und mit der Home-Taste zurück zur App gehe, wird die Musik weiter abgespielt. Gibt es eine Problemumgehung für das erste Startproblem?

Snippet Ich habe hinzugefügt:

// make sure music plays while sounds play. 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil]; 
[[AVAudioSession sharedInstance] setActive:YES error:nil]; 
+0

'AVAudioSessionCategoryAmbient' ist die richtige Sache zu verwenden. Ich verwende genau diesen Code in einer meiner Apps, und es funktioniert wie erwartet - das Abspielen von Audio aus anderen Apps wird nicht gestoppt, wenn meine App gestartet wird. 'setCategory' gibt einen BOOL für den Erfolg zurück; Haben Sie versucht, dies zu überprüfen, oder sehen Sie, ob im Parameter error ein Fehler zurückgegeben wird? – zpasternack

+0

@zpasternack Gute Idee, ich werde versuchen zu sehen, ob ich etwas Sinnvolles daraus bekommen kann. – Warpzit

Antwort

0

dieses Versuchen Sie stattdessen:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient withOptions:0 error:nil]; 

Oder dies vor, wenn nicht funktioniert:

[[AVAudioSession sharedInstance] setActive:NO error:nil]; 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil]; 
[[AVAudioSession sharedInstance] setActive:YES error:nil]; 

EDIT:

Wenn keiner der oben genannten für Sie funktioniert, sind Sie Vielleicht solltest du versuchen, eine andere Kategorie zu setzen, die du zusammen mit AVAudioSessionCategoryOptionMixWithOthers siehst, wenn das für deinen Anwendungsfall funktioniert.

Legt fest, ob Audio von dieser Sitzung mit Audio von aktiven Sitzungen in anderen Audio-Apps gemischt wird.

+0

Nein, hat nicht funktioniert. Ich frage mich, ob es mit einer statischen Bibliothek verwandt werden könnte, die für das Spielen einiger Töne verwendet wird. – Warpzit

+0

@Warpzit Hmm ... nicht sicher, oben erwähnt sollte funktionieren, wenn Sie Active: NO, dann können Sie Änderungen vornehmen, ohne auf die Audiosession mit aktuellen Optionen zuzugreifen und andere Musik vom Abspielen zu stoppen. Sie sollten zumindest versuchen, die anderen Frameworks zu deaktivieren. Überprüfen Sie jedoch die aktualisierte Antwort, wenn diese Ihren Anforderungen entspricht und vielleicht für Sie funktioniert? –

Verwandte Themen