【问题标题】:How to convert UnsafeMutablePointer<AudioBufferList> to AudioBuffer in Swift?如何在 Swift 中将 UnsafeMutablePointer<AudioBufferList> 转换为 AudioBuffer?
【发布时间】:2016-05-06 17:35:33
【问题描述】:

我有一个带有音频单元的AURenderCallbackStruct。在回调中,我将音频数据获取为 ioData: UnsafeMutablePointer&lt;AudioBufferList&gt; 。检查下面的代码。

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?请建议...

注意我正在使用 swift 2.2

【问题讨论】:

    标签: ios swift swift2 core-audio audiounit


    【解决方案1】:

    只需使用任何UnsafeMutablePointer&lt;&gt;memory 属性即可访问其原始内存。所以你的代码应该是这样的。

    var audioBufferListPtr = UnsafeMutableAudioBufferListPointer(ioData).unsafeMutablePointer.memory
    for i in 0 ..< Int(inBufferNumber) {
        var buffer: AudioBuffer = audioBufferListPtr.mBuffers
    }
    

    注意Swift 是一种快速发展的语言。所以这个代码将来可能会改变。

    【讨论】:

      猜你喜欢
      • 2023-03-11
      • 2019-10-20
      • 1970-01-01
      • 2021-06-29
      • 1970-01-01
      • 2017-02-19
      • 2018-10-21
      • 2015-06-15
      • 2015-02-27
      相关资源
      最近更新 更多