这是我第一次使用audioKit。顺便说一下,很棒的框架
我能够录音,工作得很好。
func prepareToAKrecord() {
// Setup microphone and reverb
mic = engine.input
reverb = Reverb(mic)
reverb.loadFactoryPreset(.mediumRoom) //large hall etc
engine.output = reverb
do {
// Check if the recorder is already recording
if recorder?.isRecording == true {
print("Recorder is already recording. Attempting to stop before reinitializing.")
recorder?.stop()
}
// Reset the recorder if it exists
if let existingRecorder = recorder {
try existingRecorder.reset()
print("Recorder reset successfully.")
}
recorder = try NodeRecorder(node: reverb, shouldCleanupRecordings: true)
try self.engine.start()
try self.recorder!.record()
} catch {
print("Failed to create recorder: \(error)")
}
}
然后我就停下来
func stopAKRecordingAndSave() {
self.isRecording = false
//recorder!.stop()
recorder.stop()
engine.stop()
if let recordedAudioFile = recorder!.audioFile {
self.voiceURL = recordedAudioFile.url
print("Recording saved to: \(self.voiceURL!)")
//dec-4
self.mergeVoiceSong() // Merge this voice reverb and backing track
//self.merging = false
} else {
print("Failed to get the recorded audio file")
}
UserDefaults.standard.set(false,forKey: "newSearch")
}
但是如果我尝试启动引擎并再次记录则不起作用,即使我执行了 record.reset()
我是否缺少清理总线的特殊方法?我应该保持发动机运转并重置吗?
我第二次尝试录制时收到一堆警告
保持引擎运转并在没有混响的情况下尝试。只要您不停止引擎并且它不抛出错误,它就会运行。
考虑您的节点链在应用程序的各种条件下的外观。
https://www.audiokit.io/AudioKit/documentation/audiokit/audioengine https://www.audiokit.io/AudioKit/documentation/audiokit/node