【发布时间】:2013-05-28 13:21:02
【问题描述】:
当应用处于后台且未录制时,我无法将红色的“正在录制”状态栏隐藏在我的应用中。
我碰巧在使用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 坚持使用某些东西,它无法禁用麦克风。我没有向控制器添加任何输入,所以我不知道它可能是什么。
【问题讨论】:
-
this question 不是骗子吗?
-
@H2CO3 不,这个问题是要求在录制时隐藏状态栏。我没有录音。
标签: ios objective-c audio avaudiosession