Gibt es eine Möglichkeit, die Tasten drücken, nicht die Lautstärke ändern Ereignisse. Ich habe versucht, diese beiden Beiträge folgen, aber sie erkennen nicht Taste drückt Volumenänderung:Swift: Detect Volume-Taste Drücken Sie NOT Lautstärke ändern Ereignisse
Cleanest way of capturing volume up/down button press on iOS8
swift detect volume button press
Der Grund, warum ich nicht diese beiden Ereignisse verwenden können, liegt daran, dass meine App automatisch die Lautstärke während bestimmter Ereignisse einstellt . Wenn die App dies tut, ist es nicht dasselbe Ereignis wie wenn der Benutzer die Lautstärketasten manuell drückt.
Warum müssen Sie wissen, wenn die Taste gedrückt wird speziell? –
Es handelt sich um eine Alarm-App. Wenn ein Alarm ausgelöst wird, ändert meine App die Systemlautstärke von ihrem aktuellen Wert auf den maximalen Wert. Diese Volumenänderungen sind programmatisch und lösen das Folgende aus, obwohl der Benutzer die Lautstärketasten NICHT gedrückt hat: AVAudioSession.sharedInstance(). AddObserver (self, für KeyPath: "outputVolume", Optionen: NSKeyValueObservingOptions.New, context: nil) – Pavel
Makes Sinn, wäre es einfacher, den Beobachter nach dem Alarm einfach zu entfernen? Ist das in Ihrem Code nicht möglich? –