Я надеюсь, что кто-нибудь может помочь мне здесь.Я пытаюсь получить базовую настройку записи, но AudioKit падает на меня, и я уверен, что это моя вина, и я что-то делаю неправильно.Вот мои настройки.В моем viewDidLoad
я настраиваю AudioKit следующим образом:
// Session settings
do {
AKSettings.bufferLength = .short
try AKSettings.setSession(category: .playAndRecord, with: .allowBluetoothA2DP)
} catch {
AKLog("Could not set session category.")
}
AKSettings.defaultToSpeaker = true
// Setup the microphone
micMixer = AKMixer(mic)
micBooster = AKBooster(micMixer)
// Load the test player
let path = Bundle.main.path(forResource: "audio1", ofType: ".wav")
let url = URL(fileURLWithPath: path!)
testPlayer = AKPlayer(url: url)
testPlayer?.isLooping = true
// Setup the test mixer
testMixer = AKMixer(testPlayer)
// Pass the output from the player AND the mic into the recorder
recordingMixer = AKMixer(testMixer, micBooster)
recorder = try? AKNodeRecorder(node: recordingMixer)
// Setup the output mixer - only pass the player NOT the mic
outputMixer = AKMixer(testMixer)
// Pass the output mixer to AudioKit
AudioKit.output = outputMixer
// Start AudioKit
do {
try AudioKit.start()
} catch {
print("AudioKit did not start! \(error)")
}
Приложение работает нормально, но как только я запускаю recorder.record()
, приложение вылетает с сообщением:
Обязательное условие: false: mixedDest.
Я действительно не хочу передавать микрофон на выход динамика, но я действительно хочу его записать.
Я хочу иметь возможность воспроизводить файл через «testPlayer», слышать его через динамик и одновременно иметь возможность записывать выходной сигнал «testPlayer» и микрофона, не передавая микрофон обратночерез динамики.
Я уверен, что это выполнимо, но я не знаю достаточно о том, как эти вещи должны работать, чтобы понять, что я делаю неправильно.
Любая помощь очень ценится!!