【发布时间】:2016-10-04 05:52:20
【问题描述】:
是否可以在AVRecorder 框架中创建类似于AudioQueue 服务的缓冲区概念。在我的应用程序中,我需要捕获音频缓冲区并通过 Internet 发送。服务器连接部分已经完成,但我想知道是否有办法在前台连续录制语音,并使用Swift在后台将这个音频缓冲区逐个缓冲区传递给服务器。
欢迎评论。
【问题讨论】:
标签: ios swift core-audio avaudiorecorder
是否可以在AVRecorder 框架中创建类似于AudioQueue 服务的缓冲区概念。在我的应用程序中,我需要捕获音频缓冲区并通过 Internet 发送。服务器连接部分已经完成,但我想知道是否有办法在前台连续录制语音,并使用Swift在后台将这个音频缓冲区逐个缓冲区传递给服务器。
欢迎评论。
【问题讨论】:
标签: ios swift core-audio avaudiorecorder
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()
}
【讨论】: