![](/img/trans.png)
[英]Converting an array of Floats to an array of UnsafePointer<DSPComplex>
[英]Issues with UnsafePointer<DSPComplex> while converting aurioTouch to Swift 3
我正在嘗試將aurioTouch示例代碼FFTHelper類轉換為Swift 3,以便在使用Swift 3的iOS應用中生成頻譜圖。由於無法初始化此類型的變量,因此我面臨UnsafePointer的問題。 出現類似於“ init”的錯誤,不可用:使用“ withMemoryRebound ....”。
我嘗試使用withMemoryRebound ..但仍然失敗。.在Swift 2.2中有效,但在Swift 3中無效。var inAudioData:UnsafePointer = UnsafePointer(buffer.floatChannelData!.pointee);
buffer是帶有音頻數據的AVAudioPCMBuffer。
請幫助將上述行轉換為Swift 3。
即使iOS Accelerate框架中的vDSP_fft_zip()例程要求輸入UnsafePointer <DSPSplitComplex>類型的參數,Swift 3仍允許在DSPSplitComplex類型內部使用常規的Swift浮點數組。
var dataReal = [Float](repeating: 0.0, count: dataLen)
var dataImaginary = [Float](repeating: 0.0, count: dataLen)
// ... fill the real Float array with your data or audio samples ....
var myComplexData : DSPSplitComplex?
myComplexData = DSPSplitComplex(realp: &dataReal, imagp: &dataImaginary)
vDSP_fft_zip(fftSetup!, &myComplexData!, 1, logLen, Int32(FFT_FORWARD))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.