我在 AudioBuffer 中有某些数据(来自录音)。在我将此缓冲区写入文件之前,我想对 PCM 样本做一些事情。如何像使用 fread 读取一样从 AudioBuffer 的 mData 字段读取数据?
我可以在 .mm 或 .m 文件中使用 fread 吗?
Best Answer-推荐答案 strong>
AudioBuffer 结构将其数据保存在内存中,而不是文件中。因此 fread 不相关。
mBuffer 只是一个指向数据开头的指针,您可以使用结构的其他两个字段来正确读取数据。来自 this link :
struct AudioBuffer {
UInt32 mNumberChannels;
UInt32 mDataByteSize;
void *mData;
};
mDataByteSize 告诉你缓冲区有多少字节(所以你不会访问内存通过缓冲区的末尾),mNumberChannels 告诉你如何重新-订购您的数据,例如如果缓冲区包含两个 channel ,则数据是交错的,即样本 1,3,5,... 来自 channel 1,而 2,4,6,... 来自 channel 2。
请记住,您还负责将数据转换为正确的类型。
关于ios - 如何从 iOS 中 AudioBuffer 的 mData 字段读取数据?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/5388711/
|