为啥我的应用在不录制时会显示正在录制(闪烁的红色)状态栏?
Posted
技术标签:
【中文标题】为啥我的应用在不录制时会显示正在录制(闪烁的红色)状态栏?【英文标题】:Why does my app make the recording (pulsing red) status bar appear when it isn't recording?为什么我的应用在不录制时会显示正在录制(闪烁的红色)状态栏? 【发布时间】:2014-09-09 22:32:56 【问题描述】:我的应用有时会使用麦克风,但即使我不使用麦克风,在离开我的应用时也会短暂出现红色状态栏。
我已将 AVAudiosession 的类别设置为 SoloAmbient。录制时,我将其设置为 PlayAndRecord,完成后我将其设置回 SoloAmbient。但即使类别是 SoloAmbient,我仍然会看到红色状态栏。
即使我的应用根本没有访问麦克风,我仍然会出现这种红色状态栏行为。我确实没有为应用配置了背景音频。有什么想法可能让系统认为我正在录制?
编辑:经过一些实验,看起来我可以通过延迟创建记录 AUGraph 直到我真正开始记录来防止应用程序在启动时导致红色状态栏。
但是,停止录制后,我仍然看到红色状态栏。当我停止录制时,我会停止 AUGraph 并将其处理掉,并将 AVAudioSession 类别改回 SoloAmbient。但是当我离开应用程序时,我仍然看到红色的状态栏。
【问题讨论】:
【参考方案1】:经过很长很长很长的研究和障碍,我找到了以下简单的解决方案
在 Targets->General->Deployment Info 中检查 HideStatusBar 选项
如下图!
并且在 ViewController(你保存为 RootViewController 的那个)的 viewDidAppear 中添加这行代码...
[[UIApplication sharedApplication] setStatusBarHidden:NO];
因为当您取消选中 HideStatusBar 选项并且您的应用需要任何后台进程或音频相关进程时,状态栏将变为红色并放大高度。如果您不想在整个应用程序中显示状态栏,则不要在 viewDidAppear 中添加上述行并检查 HideStatusBar 选项。
【讨论】:
听起来不像是真正的解决方案。我也面临同样的问题。我认为后台仍有进展。以上是关于为啥我的应用在不录制时会显示正在录制(闪烁的红色)状态栏?的主要内容,如果未能解决你的问题,请参考以下文章