マイク入力を取得するために AVFoundation を使用し、マイク入力をプロットするために EZAudio を使用しています。コードを非常に基本的なものに落としましたが、それでもレイテンシーが発生します。これは奇妙なことです。これはコードです:
override func viewDidLoad() {
super.viewDidLoad()
//Audio stuff
let bufferSize: AVAudioFrameCount = 2048
//plot properties
bufferPlot.color = UIColor(red: 0.5, green: 0.0, blue: 0.0, alpha: 0)
bufferPlot.backgroundColor = UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 0)
bufferPlot.plotType = .Buffer
//instantiate nodes
engine = AVAudioEngine()
input = engine.inputNode
mainMixer = engine.mainMixerNode
//put a tap on the main mixer.
mainMixer.installTapOnBus(0, bufferSize: bufferSize, format: mainMixer.inputFormatForBus(0)) { (buffer: AVAudioPCMBuffer!, time: AVAudioTime!) -> Void in
//change buffer size to 2048
buffer.frameLength = bufferSize
//plotting
dispatch_async(dispatch_get_main_queue(), { () -> Void in
self.bufferPlot.updateBuffer(buffer.floatChannelData.memory, withBufferSize: UInt32(bufferSize))
})
}
//start engine
var error: NSErrorPointer = NSErrorPointer()
engine.startAndReturnError(error)
}
私は何か間違ったことをしていますか?