アプリがバックグラウンドで録画していない場合、アプリで赤い「録画中」ステータス バーを非表示にすることができません。
私はたまたまThe Amazing Audio Engineを使用していますが、この質問はそのライブラリの知識に取り組むことができると思います。次のようにセットアップされます。
audioController = [[AEAudioController alloc] initWithAudioDescription:desc inputEnabled:YES];
audioController.audioSessionCategory = kAudioSessionCategory_MediaPlayback;
ユーザーが録音したいときは、次のようにマイクをオンにします。
[audioController addInputReceiver:mic];
audioController.audioSessionCategory = kAudioSessionCategory_PlayAndRecord;
ユーザーが記録を停止したい場合は、オフにします。
[audioController removeInputReceiver:mic];
audioController.audioSessionCategory = kAudioSessionCategory_MediaPlayback;
問題は、アプリが記録中でなく、ユーザーがアプリを離れたときに、赤い「記録中」ステータス バーがまだ表示されることです。アプリがまだオーディオを再生している可能性があるため、audioController を停止または破棄できません。
録画していないときに赤い録画ステータス バーを表示したくありません。これを行う方法はありますか?
アップデート
アプリで次のコード ブロックを 2 秒ごとに実行するように設定します。
audioController.audioSessionCategory = kAudioSessionCategory_MediaPlayback;
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError* error = nil;
[audioSession setActive:NO error: &error];
NSLog(@"error: %@", error);
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
これはログに記録します:
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.)"
明らかに、TAAE が何かを保持しているため、マイクを無効にできません。コントローラーに入力を追加していないので、それが何であるかわかりません。