微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在不记录的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]

原文地址:https://www.jb51.cc/iOS/336632.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐