【问题标题】:Using AudioBufferList with Swift once again再次将 AudioBufferList 与 Swift 一起使用
【发布时间】:2015-10-14 15:36:55
【问题描述】:

参考Using AudioBufferList with Swift

我在 Stack Overflow 上找到了以下解决方案,用于使用音频单元播放一些声音。我的问题是我无法将实际数据像正弦波数据一样放入缓冲区。我用memcpy 而不是memset 尝试过,但是UnsafePointer 的东西很累。

那么有人会澄清我将如何将实际数据放入缓冲区还是我应该拿起一本 Objective-C 书并重新做一遍?

func renderCallback(ioData: UnsafeMutablePointer<AudioBufferList>) -> OSStatus 
{
    let abl = UnsafeMutableAudioBufferListPointer(ioData)
    for buffer in abl {
        memset(buffer.mData, 0, Int(buffer.mDataByteSize))
    }
    return noErr
}

【问题讨论】:

    标签: swift core-audio audiounit unsafe-pointers


    【解决方案1】:

    您可以在“for”循环中将数据逐个元素复制到字节或 Int16 数组中。与 memset 相比,Swift 可能会相当好地优化此循环,这样处理器数据缓存效果最终会主导性能。

    【讨论】:

      猜你喜欢
      • 2014-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多