我有一个奇怪的人-我正在使用AKRecorder记录AKMicrophone中的短片段。但是,麦克风会不时地无声地静音。有时它发生得很快,有时需要几分钟。
我已将代码减少到最低限度,以重现此问题。基本上,我正在执行以下操作:
AKMicrophone
实例传递到AKBooster
实例中。AKBooster
实例实例化AKNodeRecorder
和AKMixer
。AKMixer
传递到AudioKit输出中。AKRecorder
录音。代码如下:
import UIKit
import AudioKit
import AudioKitUI
class TempViewController: UIViewController {
var recorder: AKNodeRecorder!
var micBooster: AKBooster!
var mainMixer: AKMixer!
var timer: Timer?
let mic = AKMicrophone()
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
do {
try AKSettings.setSession(category: .playAndRecord, with: .allowBluetoothA2DP)
} catch {
AKLog("Could not set session category.")
}
AKSettings.defaultToSpeaker = true
micBooster = AKBooster(mic)
do {
recorder = try AKNodeRecorder(node: micBooster)
} catch {
AKLog("Couldn't create Recorder")
}
mainMixer = AKMixer(micBooster)
AudioKit.output = mainMixer
do {
try AudioKit.start()
} catch {
AKLog("AudioKit did not start!")
}
}
override func viewDidLoad() {
super.viewDidLoad()
self.timer = Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(repeatRecorder), userInfo: nil, repeats: true)
do {
try recorder.record()
} catch { AKLog("Error on first record")}
}
@objc func repeatRecorder() {
do {
try self.recorder.reset()
try self.recorder.record()
} catch { AKLog("Errored recording.") }
}
}
如果有人有任何想法,我将非常感谢您的帮助:
如果您想要一个说明该问题的github项目,则为:https://github.com/craiggrummitt/AudioKitBug
您需要调用“ pod update”来添加AudioKit。