Как читать данные из поля mData AudioBuffer в iOS? - PullRequest
2 голосов
/ 22 марта 2011

У меня есть определенные данные в AudioBuffer (из записи).Прежде чем я запишу этот буфер в файл, я хочу кое-что сделать с образцами PCM.Как я могу читать из поля mData AudioBuffer, как я могу читать, используя fread?Могу ли я использовать fread в файле .mm или .m?

1 Ответ

3 голосов
/ 22 марта 2011

Структура AudioBuffer хранит данные в памяти, а не в файле. Поэтому fread не имеет значения. mBuffer - это просто указатель на начало данных, и вы можете использовать два других поля структуры для правильного чтения данных. От этой ссылки :

struct AudioBuffer {
   UInt32 mNumberChannels;
   UInt32 mDataByteSize;
   void   *mData;
};

mDataByteSize сообщает вам, сколько байтов содержит буфер (таким образом, вы не получите доступ к памяти через конец буфера), а mNumberChannels говорит вам, как переупорядочить ваши данные, например, если буфер содержит два канала, то данные чересстрочные, то есть отсчеты 1,3,5, ... поступают из канала 1, а 2,4,6 ... из канала 2.

Помните, что вы также несете ответственность за приведение данных к правильному типу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...