Есть ли способ воспроизвести файл, который ЗАПИСЫВАЕТСЯ во время записи? То есть, когда пользователь подключает наушники с микрофоном, он может слышать свой собственный голос через наушники, когда говорит в микрофон, а это означает, что не нужно беспокоиться о зацикливании.
P.S. Если AVAudioRecorder
не может этого добиться, есть ли способ сделать это с AudioKit
? Если это так, пожалуйста, скажите мне, как.
Я предполагаю, что для этого вам придется использовать AVCaptureSession
.
Вы можете получить информацию от AVCaptureDeviceInput
.
Затем вы можете использовать AVCaptureOutputAudioDataOutput
, который обеспечивает доступ к буферам аудиосэмплов по мере их записи.
extension RecordingViewController: AVCaptureAudioDataOutputSampleBufferDelegate {
func captureOutput(_ output: AVCaptureOutput,
didOutput sampleBuffer: CMSampleBuffer,
from connection: AVCaptureConnection) {
output.connection(with: AVMediaType(rawValue: AVAudioSessionPortBuiltInSpeaker))
}
}
Редактировать: Однако реализовать это с помощью AudioKit может быть проще и чище. Код будет примерно таким:
let microphone = AKMicrophone()
let mixer = AKMixer(microphone)
let booster = AKBooster(mixer, gain: 0)
AudioKit.output = booster
microphone.start()
do {
try AudioKit.start()
} catch {
print("AudioKit boot failed.")
}
Я думаю, что версия AudioKit - это то, что я ищу. Спасибо!