AudioFileReadPackets в массив? - PullRequest
0 голосов
/ 07 апреля 2010

Я хотел бы прочитать пакеты из аудиофайла, но я не хочу отправлять их в буфер воспроизведения. Я просто хочу получить массив пакетов, в идеале, как float. Я подготовил аудио, а затем хочу позвонить:

OSStatus err = AudioFileReadPackets (audioFileID,FALSE,outBytes,NULL,0,numPackets,whatGoesHere?);

Но что входит в этот последний аргумент?

Спасибо.

1 Ответ

1 голос
/ 07 апреля 2010

Если бы вы использовали Audio Queue Services, вы бы поместили указатель mAudioData на AudioQueueBuffer. Но так как вам нужны только биты, вы можете передать указатель на заранее выделенный буфер (статический или динамический) по вашему выбору. Вы можете определить верхнюю границу необходимого размера буфера, используя части dataFormat из вашего файла.

Пример этого вычисления приведен в Руководство по программированию служб Audio Queue Services ; grep для DeriveBufferSize.

...