使用Swift在AV Audio Recorder中实现队列服务

时间:2016-10-04 05:52:21

标签: ios swift core-audio avaudiorecorder

是否可以在AudioQueue Framework中创建类似于AVRecorder服务的缓冲区概念。在我的应用程序中,我需要捕获音频缓冲区并通过Internet发送它。服务器连接部分已完成,但我想知道是否有方法在前台连续录制语音,并使用Swift通过后台缓冲区将此音频缓冲区传递给服务器。 评论很感激。

1 个答案:

答案 0 :(得分:2)

AVAudioRecorder记录到文件中,因此您无法轻松地将其用于从您的应用中流式传输音频数据。另一方面,AVAudioEngine可以在捕获音频缓冲区时回叫您:

var engine = AVAudioEngine()

func startCapturingBuffers() {
    let input = engine.inputNode!
    let bus = 0

    input.installTapOnBus(bus, bufferSize: 512, format: input.inputFormatForBus(bus)) { (buffer, time) -> Void in
        // buffer.floatChannelData contains audio data
    }

    try! engine.start()
}