[英]AVAudioEngine Microphone Float Data
我正在嘗試使用 AVAudioEngine 獲取實時麥克風輸入的浮動數據。 在fft之后進行fft和特殊算法。
當我編譯代碼時,我在控制台上變成了這個輸出:0x0000000000000000
我做錯了什么? 非常感謝您的幫助
這是我獲取浮點數據的代碼:
let audioEngine = AVAudioEngine()
override func loadView() {
super.loadView()
let inputNode = audioEngine.inputNode
let bus = 0
inputNode!.installTapOnBus(bus, bufferSize: 2048, format: inputNode!.inputFormatForBus(bus)) {
(buffer: AVAudioPCMBuffer!, time: AVAudioTime!) -> Void in
print(buffer.floatChannelData[50])
}
audioEngine.prepare()
do{
try audioEngine.start()
}catch{
print("Error")
}
}
floatChannelData
是一個指向指針的指針,因此如果您想要第一個通道(除非您插入立體聲麥克風,否則您將在 iOS 上獲得所有通道),您可以這樣做:嘗試
let firstChannel = buffer.floatChannelData[0]
let arr = Array(UnsafeBufferPointer(start: firstChannel, count: Int(buffer.frameLength)))
// Do something with your array of Floats
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.