iOS: Wie kann ich erkennen, ob Musik-Wiedergabe im hintergrund-Musik-app?
Ich habe momentan mein Spiel korrekt verarbeitet deaktivieren eigenen BGM bei der Wiedergabe der Musik in die integrierte iPod-app, aber es erkennt nicht, wenn eine app wie Pandora ist, Musik zu spielen.
Derzeit in meinem applicationDidBecomeActive
Methode, ich check [[MPMusicPlayerController iPodMusicPlayer] playbackState]
um zu bestimmen, ob Musik gespielt wird. Was ist das äquivalent ist zu prüfen, ob eine app wie Pandora, ist die audio-Wiedergabe im hintergrund?
Du musst angemeldet sein, um einen Kommentar abzugeben.
AudioSessionGetProperty
(wie erwähnt, in jake_hetfield Antwort) ist veraltet, wie iOS 7.Stattdessen versuchen Sie, diese one-liner, verwendet isOtherAudioPlaying:
Funktioniert auf iOS 6+.
var otherAudioPlaying = AVAudioSession.sharedInstance().otherAudioPlaying
var otherAudioPlaying = AVAudioSession.sharedInstance().isOtherAudioPlaying
Check-out diese Frage
Scheint Sie können sehen, wenn ein anderer audio-Wiedergabe durch überprüfung der Eigenschaft kAudioSessionProperty_OtherAudioisplaying wie diese:
Ergänzung zu diesem sein könnte, um den Benutzer zu Fragen, wenn er/Sie will das Spiel, die Musik oder die bereits Abspielen von sound/Musik.
kAudioSessionProperty_OtherAudioIsPlaying
im moment. Andere audio ist definitiv nicht spielen (ich hielt den iPod auf meinem iPhone 5 iOS 6.x). Dies passiert manchmal. Es ist wie etwas hängen bleibt drin, so dasskAudioSessionProperty_OtherAudioIsPlaying
immer wieder JA/1/wahr/positiv. Es in der Regel nur behebt sich nach dem Neustart des Gerätes.Als von iOS 8, die secondaryAudioShouldBeSilencedHint Eigenschaft sollte verwendet werden:
Möchten Sie vielleicht, so etwas zu tun.....
1) Erstellen Sie Eine Klasse, um Ihre audio-Einstellungen sagen... "AudioManager"
2) Umfrage der Boolean "isOtherAudioPlaying"... vielleicht weisen Sie es zu Ihrem eigenen Boolean-Wert.