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