有没有一种方法可以播放在录制过程中正在录制的文件?也就是说,当用户插入带有麦克风的耳机时,当他对着麦克风讲话时,他可以通过耳机听到自己的声音,这意味着无需担心循环。
P.S。如果AVAudioRecorder
无法做到这一点,那么AudioKit
可以采取任何措施吗?如果是这样,请告诉我怎么做。
答案 0 :(得分:0)
我的猜测是您将必须使用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.")
}