gpt4 book ai didi

ios - 将 aurioTouch 转换为 Swift 3 时 UnsafePointer 的问题

转载 作者:行者123 更新时间:2023-11-28 12:34:45 26 4
gpt4 key购买 nike

我正在尝试将 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。

请帮助将上面的行转换为 in 到 Swift 3。

最佳答案

即使 iOS Accelerate 框架中的 vDSP_fft_zip() 例程要求类型为 UnsafePointer< DSPSplitComplex > 的参数,Swift 3 也允许在 DSPSplitComplex 类型中使用常规的 Swift float 组。

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))

关于ios - 将 aurioTouch 转换为 Swift 3 时 UnsafePointer<DSPComplex> 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41206489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com