为啥我的应用在不录制时会显示正在录制(闪烁的红色)状态栏?

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 选项。

【讨论】:

听起来不像是真正的解决方案。我也面临同样的问题。我认为后台仍有进展。

以上是关于为啥我的应用在不录制时会显示正在录制(闪烁的红色)状态栏?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在录屏时会出现无声?

Kdenlive 不会在音轨上显示红色的音频录制按钮

在不录制的情况下监控 iPhone 上的音频输入?

批处理脚本 |命令运行时闪烁屏幕

不录制时显示红色状态栏,后台应用程序

同时录制音频和播放 iPod?