簡體   English   中英

UnsafePointer的問題 <DSPComplex> 在將aurioTouch轉換為Swift 3時

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM