参考Using AudioBufferList with Swift
我在Stack溢出上找到了下面的解决方案,用于播放音频单元的声音。这里的问题是,我无法像sin数据那样将实际数据放入缓冲区中。我用memcpy而不是memset尝试过,但是UnsafePointer的东西很累人。
那么,有人会澄清我将如何将实际数据放入缓冲区,还是应该抓起一本Objective书,然后再做一次呢?
func renderCallback(ioData: UnsafeMutablePointer<AudioBufferList>) -> OSStatus
{
let abl = UnsafeMutableAudioBufferListPointer(ioData)
for buffer in abl {
memset(buffer.mData, 0, Int(buffer.mDataByteSize))
}
return noErr
}发布于 2015-10-14 22:48:39
您可以在"for“循环中逐个元素将数据复制到字节或Int16数组中。与memset相比,Swift可能会对这个循环进行合理的优化,因此处理器数据缓存效应最终将主导性能。
https://stackoverflow.com/questions/33129708
复制相似问题