在不记录的iOS应用程序中隐藏红色记录状态栏

当应用程序处于后台并没有录制时,我无法获得红色的“录制”状态栏来隐藏我的应用程序.

我恰好是使用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持有的东西,它无法禁用麦克风.我没有向控制器添加任何输入,所以我不知道它可能是什么.

解决方法

已解决,请参阅编辑2

只要麦克风在使用中,录音也不会消失.这是一个安全措施,允许用户知道应用程序正在听麦克风,而不是显示手机正在录制.

消除它的唯一方法是从输入接收器中移除麦克风

我看到你的麦克风没有被删除,必须有一些错误.

要点是,只要麦克风打开,您就无法隐藏红色条.

如果你想暂时禁用它,你可以试试这个吗?

[audioController setInputEnabled:NO]

你还要做什么呢?可能会有更好的处理方式

编辑1:增加了其他

解决方法

我不知道setInputEnabled是只读的,对不起.

那么另一件事就是完全停止控制器,试试这个:

[audioController stop]

如果没有,如果您不使用ARC或简单地尝试释放它

audioController = Nil;

希望解决这个问题.但我宁愿尝试找出为什么它不会从输入接收器中删除麦克风.或许麦克风是没有,当你调用[audioController removeInputReceiver:mic]?

编辑2:添加解决方案

当您将inputEnabled设置为YES进行初始化时,会出现此问题,因为readOnly不能禁用输入,唯一的方法是实际释放audioController.如果您使用ARC,只需将其设置为Nil,如果没有,只需[audioController release]

以上是来客网为你收集整理的在不记录的iOS应用程序中隐藏红色记录状态栏全部内容,希望文章能够帮你解决在不记录的iOS应用程序中隐藏红色记录状态栏所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。