
我恰好是使用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 mediaplaybackAudioSessionSetProperty(kAudioSessionProperty_OverrIDecategoryEnableBluetoothinput) result 2003329396 77686174 whatError 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应用程序中隐藏红色记录状态栏所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)