Я не могу получить красную строку состояния "Запись", чтобы скрыть свое приложение, когда приложение находится в фоновом режиме и не записывается.
Я использую 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, потому что приложение все еще может воспроизводить аудио.
Я не хочу, чтобы красная строка состояния отображалась, если я не записываю. Любые идеи, как это сделать?
Update
Я настраиваю следующий блок кода для запуска каждые 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.)"
Очевидно, что он не может отключить микрофон из-за чего-то, к чему ТААЕ держится. Я не добавил никаких входов в контроллер, поэтому я не знаю, что это может быть.