我正在Obj-C++中进行函数调用,它返回C++浮点向量:
vector<float> mixedFrames = song.getMixedFrames();
这些帧用于音频播放,CoreAudio希望它们位于Float32
阵列中,该阵列定义如下:
Float32 *buffer = (Float32 *)ioData->mBuffers[channel].mData;
我的问题是,将mixedFrames
复制到buffer
的最快方法是哪种。我应该循环通过mixedFrames
并将每个值复制到buffer
,还是有一种更快的方法可以占用更少的内存?
内存布局相同,因此可能根本不需要复制;您可以简单地使用CCD_ 6。
如果出于某种原因确实需要复制,可以简单地使用memcpy
或std::copy
。