AudioKit:应用程序在后台时始终出现红色麦克风图标
AudioKit: Red Mic Icon Always Appears When App In Background
当我的应用进入后台(而不是录音)时,我很难找到一种方法来摆脱 iPhone 顶部的红色“麦克风正在使用”图标。因此,它给人的感觉是即使在后台,该应用程序也始终在录制。
下面是我在 AudioKitManager class 中初始化麦克风的方式:
// FYI: need to set to playAndRecord here otherwise crashes with “required condition is false: IsFormatSampleRateAndChannelCountValid(format)”
do {
try AVAudioSession.sharedInstance().setCategory(.playAndRecord, mode: .default, options: .allowBluetoothA2DP)
try AVAudioSession.sharedInstance().setActive(true)
} catch {
print(error)
}
mic = AKMicrophone()
let inputBooster = AKBooster(mic)
// boost helps with pitch tracking on some iPads
inputBooster.gain = 5
tracker = AKFrequencyTracker(inputBooster)
tracker.stop() // turned off until it's needed - startPitchTracking() called
micMixer = AKMixer(tracker)
micBooster = AKBooster(micMixer)
micBooster.gain = 0.0
micBooster >>> mixer
print("Setting AudioKit.output = mixer")
AudioKit.output = mixer
AKSettings.playbackWhileMuted = true
AKSettings.defaultToSpeaker = true
AKSettings.sampleRate = 44100
do {
print("Attempting to start AudioKit")
try AudioKit.start()
} catch {
AKLog("AudioKit did not start!")
}
我尝试过的事情:
录音时“停止”和“启动”麦克风vcappears/disappears。例如mic.stop() - 即使麦克风停止,红色图标仍然显示。
将 AVAudioSessionCatagory 设置为 playAndRecord 和 .play as recording vc appears/disappears。真的认为这会奏效!......但是红色恐怖图标仍然盯着我并进入我的灵魂。
- 调用:AKSettings.audioInputEnabled = false。 - 红色图标仍然表示麦克风输入已启用。
- 仅在需要时初始化麦克风。 (前阵子试过这个:好像记得完全不行)
- 打扮成大卫·鲍伊,在应用进入后台之前对着麦克风大声唱“Starman”。可能应该首先尝试,但仍然无济于事。
- 以上的各种组合
非常感谢任何帮助!谢谢!
感谢 AudioKit - 这是一个了不起的框架! :^)
AudioKit:4.5.4
iOS:12.1
Xcode: 10.1
啊哈。解决方案是在应用程序进入后台时调用 audioKit.stop() 。然后 audioKit.start() 在它再次使用之前!!再见红色麦克风图标。再见。
我之前忽略了这一点,因为我在停止和启动音频套件时遇到了很多问题。但是(正如我在此 post 中提到的)主要问题已通过在音频套件再次启动后将样本重新加载到所有采样器中得到解决。
哇哦。
当我的应用进入后台(而不是录音)时,我很难找到一种方法来摆脱 iPhone 顶部的红色“麦克风正在使用”图标。因此,它给人的感觉是即使在后台,该应用程序也始终在录制。
下面是我在 AudioKitManager class 中初始化麦克风的方式:
// FYI: need to set to playAndRecord here otherwise crashes with “required condition is false: IsFormatSampleRateAndChannelCountValid(format)”
do {
try AVAudioSession.sharedInstance().setCategory(.playAndRecord, mode: .default, options: .allowBluetoothA2DP)
try AVAudioSession.sharedInstance().setActive(true)
} catch {
print(error)
}
mic = AKMicrophone()
let inputBooster = AKBooster(mic)
// boost helps with pitch tracking on some iPads
inputBooster.gain = 5
tracker = AKFrequencyTracker(inputBooster)
tracker.stop() // turned off until it's needed - startPitchTracking() called
micMixer = AKMixer(tracker)
micBooster = AKBooster(micMixer)
micBooster.gain = 0.0
micBooster >>> mixer
print("Setting AudioKit.output = mixer")
AudioKit.output = mixer
AKSettings.playbackWhileMuted = true
AKSettings.defaultToSpeaker = true
AKSettings.sampleRate = 44100
do {
print("Attempting to start AudioKit")
try AudioKit.start()
} catch {
AKLog("AudioKit did not start!")
}
我尝试过的事情:
录音时“停止”和“启动”麦克风vcappears/disappears。例如mic.stop() - 即使麦克风停止,红色图标仍然显示。
将 AVAudioSessionCatagory 设置为 playAndRecord 和 .play as recording vc appears/disappears。真的认为这会奏效!......但是红色恐怖图标仍然盯着我并进入我的灵魂。
- 调用:AKSettings.audioInputEnabled = false。 - 红色图标仍然表示麦克风输入已启用。
- 仅在需要时初始化麦克风。 (前阵子试过这个:好像记得完全不行)
- 打扮成大卫·鲍伊,在应用进入后台之前对着麦克风大声唱“Starman”。可能应该首先尝试,但仍然无济于事。
- 以上的各种组合
非常感谢任何帮助!谢谢!
感谢 AudioKit - 这是一个了不起的框架! :^)
AudioKit:4.5.4 iOS:12.1 Xcode: 10.1
啊哈。解决方案是在应用程序进入后台时调用 audioKit.stop() 。然后 audioKit.start() 在它再次使用之前!!再见红色麦克风图标。再见。
我之前忽略了这一点,因为我在停止和启动音频套件时遇到了很多问题。但是(正如我在此 post
哇哦。