OGeek|极客世界-中国程序员成长平台

标题: ios - 如何从 iOS 中 AudioBuffer 的 mData 字段读取数据? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 06:54
标题: ios - 如何从 iOS 中 AudioBuffer 的 mData 字段读取数据?

我在 AudioBuffer 中有某些数据(来自录音)。在我将此缓冲区写入文件之前,我想对 PCM 样本做一些事情。如何像使用 fread 读取一样从 AudioBuffer 的 mData 字段读取数据? 我可以在 .mm 或 .m 文件中使用 fread 吗?



Best Answer-推荐答案


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/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4