Rote Aufzeichnungsstatusleiste in iOS-App ausblenden, wenn keine Aufzeichnung erfolgt

Ich kann die rote Statusleiste "Aufnahme" nicht in meiner App ausblenden, wenn sich die App im Hintergrund befindet und nicht aufzeichnet.

Ich benutze zufälligDie erstaunliche Audio Engine, aber ich denke, diese Frage könnte das Wissen über diese Bibliothek in Angriff genommen werden. Es wird wie folgt eingerichtet:

audioController = [[AEAudioController alloc] initWithAudioDescription:desc inputEnabled:YES];
audioController.audioSessionCategory = kAudioSessionCategory_MediaPlayback;

Wenn der Benutzer aufnehmen möchte, schalte ich das Mikrofon folgendermaßen ein:

[audioController addInputReceiver:mic];
audioController.audioSessionCategory = kAudioSessionCategory_PlayAndRecord;

Wenn der Benutzer die Aufnahme beenden möchte, schalte ich sie aus:

[audioController removeInputReceiver:mic];
audioController.audioSessionCategory = kAudioSessionCategory_MediaPlayback;

Das Problem ist, dass die rote Statusleiste "Aufnahme" weiterhin angezeigt wird, wenn die App nicht aufzeichnet und der Benutzer die App verlässt. Ich kann den AudioController nicht anhalten / entsorgen, da die App möglicherweise noch vorhanden istspielen Audio.

Ich möchte nicht, dass die rote Aufnahmestatusleiste anzeigt, ob ich nicht aufnehme. Irgendwelche Ideen, wie das geht?

Aktualisieren

Ich habe den folgenden Codeblock so eingerichtet, dass er in meiner App alle 2 Sekunden ausgeführt wird.

audioController.audioSessionCategory = kAudioSessionCategory_MediaPlayback;

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError* error = nil;
[audioSession setActive:NO error: &error];
NSLog(@"error: %@", error);
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];

Dies protokolliert:

TAAE: Setting audio session category to MediaPlayback
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryEnableBluetoothInput)    result 2003329396 77686174 what
Error Domain=NSOSStatusErrorDomain Code=560030580 "The operation couldn’t be completed. (OSStatus error 560030580.)"

Offensichtlich kann das Mikrofon nicht deaktiviert werden, weil TAAE sich daran festhält. Ich habe dem Controller keine Eingänge hinzugefügt, daher weiß ich nicht, woran es liegen könnte.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage