在 iOS 13 中暂停/停止 AVAudioEngine 时,状态栏会显示麦克风图标片刻

ern*_*ton 6 swift avaudioengine ios13

每次我停止/暂停音频引擎(使用AVAudioEnginesstop()pause())时,状态栏上都会出现一个红色的麦克风图标一秒钟。

一段时间后,这开始很烦人,每次我暂停/停止引擎时,顶部都会出现红色。

在 iOS 13 中启用音频背景模式功能时会发生这种情况。

在此处输入图片说明

要重现这一点,请创建一个新的单视图项目,并将其添加到视图控制器:

private let engine = AVAudioEngine()
Run Code Online (Sandbox Code Playgroud)

而在viewDidAppear

engine.connect(
   engine.inputNode, 
   to: engine.mainMixerNode, 
   format: engine.inputNode.inputFormat(forBus: 0)
)
try? engine.start()

DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
   self.engine.pause() // or self.engine.stop()
}
Run Code Online (Sandbox Code Playgroud)

记住要启用音频背景模式,添加NSMicrophoneUsageDescriptionInfo.plist,并在iOS的13设备上运行。接受麦克风权限并重新运行应用程序。您将看到红色麦克风图标闪烁一次。

有没有办法摆脱这个?