如何将 UnsafeMutablePointer<AudioBufferList> 转换为 Swift 中的 AudioBuffer?
How to convert UnsafeMutablePointer<AudioBufferList> to AudioBuffer in Swift?
我有一个 AURenderCallbackStruct
设置了一个音频单元。在回调中,我将音频数据作为 ioData: UnsafeMutablePointer<AudioBufferList>
获取。检查下面的代码。
func renderCallback(inRefCon: UnsafeMutablePointer<Void>, ioActionFlag: UnsafeMutablePointer<AudioUnitRenderActionFlags>, inTimeStamp: UnsafePointer<AudioTimeStamp>, inBufferNumber: UInt32, inNumberFrames: UInt32, ioData: UnsafeMutablePointer<AudioBufferList>) -> OSStatus {
// How can i get AudioBuffer from iodate here ?
return noErr
}
如何从这里的 ioDate
得到 AudioBuffer
?请建议...
N.B。我正在使用 swift 2.2
只需使用任何 UnsafeMutablePointer<>
中的 memory
属性 即可访问其原始内存。所以你的代码应该看起来像这样。
var audioBufferListPtr = UnsafeMutableAudioBufferListPointer(ioData).unsafeMutablePointer.memory
for i in 0 ..< Int(inBufferNumber) {
var buffer: AudioBuffer = audioBufferListPtr.mBuffers
}
N.B。 Swift 是一种快速发展的语言。所以这段代码将来可能会改变。
我有一个 AURenderCallbackStruct
设置了一个音频单元。在回调中,我将音频数据作为 ioData: UnsafeMutablePointer<AudioBufferList>
获取。检查下面的代码。
func renderCallback(inRefCon: UnsafeMutablePointer<Void>, ioActionFlag: UnsafeMutablePointer<AudioUnitRenderActionFlags>, inTimeStamp: UnsafePointer<AudioTimeStamp>, inBufferNumber: UInt32, inNumberFrames: UInt32, ioData: UnsafeMutablePointer<AudioBufferList>) -> OSStatus {
// How can i get AudioBuffer from iodate here ?
return noErr
}
如何从这里的 ioDate
得到 AudioBuffer
?请建议...
N.B。我正在使用 swift 2.2
只需使用任何 UnsafeMutablePointer<>
中的 memory
属性 即可访问其原始内存。所以你的代码应该看起来像这样。
var audioBufferListPtr = UnsafeMutableAudioBufferListPointer(ioData).unsafeMutablePointer.memory
for i in 0 ..< Int(inBufferNumber) {
var buffer: AudioBuffer = audioBufferListPtr.mBuffers
}
N.B。 Swift 是一种快速发展的语言。所以这段代码将来可能会改变。