Как поместить данные, полученные через сокет, в Audio Queue и воспроизвести его - PullRequest
2 голосов
/ 23 февраля 2012

Может кто-нибудь предложить мне способ помещения аудиоданных, полученных через сокет, в Аудио-очередь для их воспроизведения.В настоящее время я использую GCDAsyncSocket для отправки и получения данных.Я посылаю данные через сокет в методе обратного вызова аудио рекордеров.Я получаю данные в GCDAyncSocket didReadData: метод, но после этого я не знаю, как их воспроизводить.

Также я хотел бы знать, как выполнять запись и воспроизведение одновременно с аудио-очередью.

Любойпомощь очень ценится.

1 Ответ

2 голосов
/ 25 февраля 2012

Вы не можете поместить данные непосредственно в аудио-очередь. Что вы можете сделать, это поместить любые данные, полученные из сети, в свой собственный буфер (ы), а затем скопировать данные из своего буфера (ов) внутри обратных вызовов буфера аудио-очереди, если данных достаточно.

Вы можете одновременно воспроизводить и записывать, используя стандартные API-интерфейсы Audio Queue, если правильно установить Audio Session, но задержка Audio Queues может быть намного выше, чем при использовании API AudioIO Unit RemoteIO для записи и воспроизведения. Аудиоустройства также включают модуль эхоподавления в последних версиях iOS, что может быть полезно в ситуациях одновременного воспроизведения и записи.

...