Ich habe eine App mit zwei Funktionen. Man spielt eine AKMetronome
und ermöglicht Hintergrund-Wiedergabe, wenn die App nicht im Vordergrund ist. Die andere ist eine Tuner-Funktion, die AKMicrophone
verwendet, die nur aktiv sein muss, wenn die App im Vordergrund ist. Diese Funktionen können gleichzeitig verwendet werden (ein blinkendes Metronom leuchtet, während der Tuner aktiv ist).AudioKit: Kann ich ein AKMicrophone deaktivieren, ohne AudioKit.stop() aufzurufen?
Wenn ich die Home-Taste drücke, spielt das Metronom (wie erwartet) weiter. Aber das aktive Mikrofon für den Tuner verursacht auch die bright red "recording"-style bar über die Oberseite des Geräts in allen anderen Apps. Ich brauche den Tuner nicht, wenn die App nicht geöffnet ist.
Wie kann ich den Knoten AKMicrophone
deaktivieren, so dass diese Leiste nicht angezeigt wird, während auch der Knoten AKMetronome
ununterbrochen wiedergegeben wird?
ich folgendes versucht haben, alle ohne Erfolg:
- Aufruf
AudioKit.stop()
im AppDelegateapplicationWillResignActive()
Methode. Dies löscht den Aufnahmebalken, stoppt jedoch das Metronom. - Aufruf
stop()
auf demAKMicrophone
Knoten währendapplicationWillResignActive()
. Dadurch wird die Aufnahmeleiste nicht entfernt. - Rufen Sie
stop()
unddisconnectOutput()
auf demAKMicrophone
Knoten währendapplicationWillResignActive()
. Dadurch wird auch der Aufnahmebalken nicht entfernt.
Ich nehme an, dass ich kann den gesamten Motor (d.h. AudioKit.stop()
) zu töten, entfernen Sie das Mikrofon Knoten aus der Kette, und wieder aufzubauen und den Motor neu zu starten, die alle innerhalb der applicationWillResignActive
Methode. Aber das wird das Tempo der AKMetronome
unterbrechen, also hoffe ich, dass es dazu nicht kommt.
Das sieht gut aus! Ich werde das ein wenig versuchen und sehen, ob es funktioniert. Vielen Dank! –
Interessant - das funktioniert sowohl auf den Spielplätzen als auch im iOS-Simulator, aber ich erhalte nur "0.0" für Frequenz und Amplitude beim Testen auf einem tatsächlichen iOS-Gerät (iPhone 7+, iOS 11.1). Aber ich werde weitermachen und die Antwort richtig markieren, da dieser Teil der Frage anscheinend gelöst ist. Ich werde ein Problem auf Github für den Bug öffnen. –