是否可以在 AVRecorder
框架中创建类似于 AudioQueue
服务的缓冲区概念。在我的应用程序中,我需要捕获音频缓冲区并通过 Internet 发送它。服务器连接部分已经完成,但我想知道是否有一种方法可以在前台连续录制语音,并在后台使用Swift
将此音频缓冲区逐个缓冲区传递给服务器。
欢迎提出意见。
最佳答案
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()
}
关于ios - 使用 Swift 在 AV Audio Recorder 中实现队列服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39845026/