2016-12-18 6 views
0

Swift 3を使用したiOSアプリケーションでスペクトログラムを生成するために、aurioTouchサンプルコードFFTHelperクラスをSwift 3に変換しようとしています。私はUnsafePointerの問題に直面していますこの型の変数を初期化します。 次のようなエラーが表示されます: 'init'は利用できません: 'withMemoryRebound ....'を使用してください。UnsafePointerに関する問題<DSPComplex> aurioTouchをSwiftに変換中3

これは スウィフト2.2で有効ではなく、スウィフト3中のvar inAudioDataある ..私は.. withMemoryReboundを使用してみましたが、それはまだ失敗している:UnsafePointer = UnsafePointer(!のbuffer.floatChannelData .pointee)。

バッファはオーディオデータを含むAVAudioPCMBufferです。

IOSのvDSP_fft_zip()ルーチンは、フレームワークタイプUnsafePointer < DSPSplitComplexのパラメータを要求する加速にもかかわらずスイフト3までで

+1

[オリジナルaurioTouchサンプルコード(https://developer.apple.com/library/content/samplecode/aurioTouch/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007770)が書き込まれObjective-C++/C++で使用します。より多くの文脈で元のコードを表示する方がよいでしょう。あなたの目的があなた自身であるか、結果だけを使用しているかはわかりませんが、最新のaurioTouch(2016-08-12)のSwift 3バージョンが利用できます(https://github.com/ooper -shlab/aurioTouch2.0-Swift)。 – OOPer

答えて

1

に上記の行を変換する際に助けてください>、スイフト3は、通常のスイフトアレイを使用可能にしますDSPSplitComplexタイプ内のFloatsの

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)) 
関連する問題