Скопируйте аудио прямо в аудио буфер на iPhone - PullRequest
0 голосов
/ 08 апреля 2011

Есть ли способ напрямую скопировать в AudioQueueBuffer?

Я хочу заново создать приложение для Android, которое использовало функцию write () для android.AudioTrack для прямой записи в звуковой буфер. Могу ли я сделать аналогичную вещь, используя AudioQueueBuffer на iPhone?

Я собирался сделать что-то вроде:

AudioQueueAllocateBuffer( mAudioQueueData.mQueue, dataSize, &mAudioQueueData.mBuffer);
mAudioQueueData.mBuffer->mAudioDataByteSize = dataSize;
memcpy(mAudioQueueData.mBuffer->mAudioData, soundData, dataSize);
AudioQueueStart(mAudioQueueData.mQueue, NULL);

Ответы [ 2 ]

2 голосов
/ 08 апреля 2011

Аудио буферы предназначены только для записи (значимо) в обратном вызове аудио-очереди. Но вы всегда можете скопировать / поставить в очередь звуковые данные в свой промежуточный буфер, а затем снова скопировать эти данные из промежуточного буфера в буферы аудио-очереди во время обратных вызовов аудио-очереди. Это еще один шаг, который не является ракетостроением.

Буферы AudioIO RemoteIO работают аналогичным образом.

1 голос
/ 08 апреля 2011

Да, возможно, то, что вы ищете, называется RemoteIO.Сначала это довольно сложно настроить, но дает вам прямой контроль над аудиобуфером и является аудио-API самого низкого уровня на iPhone.

Посмотрите этот урок, чтобы начать: http://atastypixel.com/blog/using-remoteio-audio-unit/

Существуют также следующие полезные серии сообщений в блоге: http://timbolstad.com/2010/03/14/core-audio-getting-started/

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