我在 AudioBuffer 中有某些数据(来自录音)。在我将此缓冲区写入文件之前,我想对 PCM 样本做一些事情。如何像使用 fread 读取一样从 AudioBuffer 的 mData 字段读取数据? 我可以在 .mm 或 .m 文件中使用 fread 吗?
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/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |