当我的应用程序进入后台(未录制)时,我很难找到一种方法来摆脱iPhone顶部的红色“正在使用麦克风”图标。这样一来,即使在后台,该应用程序仍可以始终在录制。
这是在AudioKitManager类中初始化麦克风的方式:
// 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!")
}
我尝试过的事情:
当录制的vc出现/消失时,“停止”和“启动”麦克风。例如mic.stop()-即使麦克风停止,红色图标仍会显示。
在录制vc出现/消失时,将AVAudioSessionCatagory设置为playAndRecord和.play来回设置。真的以为这行得通!!但是恐怖的红色图标仍然凝视着我,进入我的灵魂。
任何帮助,不胜感激!谢谢!
对AudioKit表示敬意-这是一个了不起的框架! :^)
AudioKit:4.5.4 iOS:12.1 Xcode:10.1
答案 0 :(得分:1)
啊哈。解决方案是在应用程序进入后台时调用audioKit.stop()。然后在再次使用audioKit.start()之前!再见红色麦克风图标。再见。
我以前忽略了这一点,因为无论何时停止和启动音频工具包,我都会遇到很多问题。但是(如我在这篇文章Continuous Sine Wave From AKMIDISampler when AKMicrophone is Present中提到的),主要问题是通过在重新启动音频工具包之后将样本重新加载到所有采样器中而解决的。
W。