Я записываю аудио с помощью аудиоустройства, а затем записываю эти данные в NSOutputStream, который является частью связанной пары, которую я использую для отправки этих данных через HTTP. Моя проблема заключается в обратном вызове записи звукового блока, и обратный вызов NSOutputStream hasSpaceAvailable полностью независим друг от друга, поэтому я быстро получаю буферизацию. Есть ли способ синхронизировать эти два или сопоставить обратный вызов звуковой записи непосредственно с NSOutputStream?Синхронизировать обратный вызов AudioUnit с NSOutputStream
0
A
ответ
0
Согласно Apple DTS, вы не должны выполнять какую-либо сетевую или любую другую синхронизацию в обратном вызове Audio Unit в режиме реального времени.
Но вам не нужно публиковать данные непосредственно в обратном вызове hasSpaceAvailable вашего сетевого потока. Вы можете отправлять данные после выхода функции обратного вызова, теперь, когда вы знаете, что пространство доступно, когда данные становятся доступными. Вы также можете буферизовать немного дополнительных аудиоданных в круговой очереди или fifo, чтобы эти данные обычно были доступны для отправки, чтобы охватить изменения скорости сети и дрожание задержки.