2016-10-04 56 views
1

是否有可能在AVRecorder框架中創建類似於AudioQueue服務的緩衝區概念。在我的應用程序中,我需要捕獲音頻緩衝區並通過Internet發送它。服務器連接部分已完成,但我想知道是否有辦法在前臺連續錄製語音,並使用Swift將此音頻緩衝區在後臺通過緩衝區傳遞到服務器。 評論贊賞。使用Swift在AV錄音機中實現隊列服務

回答

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() 
}