AVAudioRecorder在录制时播放录制的项目

时间:2019-05-28 23:04:10

标签: ios swift avfoundation avaudiorecorder audiokit

有没有一种方法可以播放在录制过程中正在录制的文件?也就是说,当用户插入带有麦克风的耳机时,当他对着麦克风讲话时,他可以通过耳机听到自己的声音,这意味着无需担心循环。

P.S。如果AVAudioRecorder无法做到这一点,那么AudioKit可以采取任何措施吗?如果是这样,请告诉我怎么做。

1 个答案:

答案 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.")
}