再次与Swift一起使用AudioBufferList
提及 我在堆栈溢出上找到了以下解决方案,可以用音频单元播放一些声音。我这里的问题是,我不能像正弦波数据那样将实际数据放入缓冲区。我用再次与Swift一起使用AudioBufferList,swift,core-audio,audiounit,unsafe-pointers,Swift,Core Audio,Audiounit,Unsafe Pointers,提及 我在堆栈溢出上找到了以下解决方案,可以用音频单元播放一些声音。我这里的问题是,我不能像正弦波数据那样将实际数据放入缓冲区。我用memcpy而不是memset尝试了它,但是这UnsafePointer的东西非常累人 那么,是有人要澄清我将如何将实际数据放入缓冲区,还是我应该抓起一本Objective-C的书,然后从头再来一遍 func renderCallback(ioData: UnsafeMutablePointer<AudioBufferList>) -> OSSta
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
}
func renderCallback(ioData:UnsafeMutablePointer)->OSStatus
{
设abl=UnsafemeutableAudioBufferListPointer(ioData)
用于abl中的缓冲区{
memset(buffer.mData,0,Int(buffer.mDataByteSize))
}
返回noErr
}
您可以在“for”循环中将数据逐元素复制到字节或Int16数组中。与memset相比,Swift可能会合理地优化该循环,从而使处理器数据缓存效应最终主导性能