Может ли AUHAL автоматически регулировать размер буфера ввода / вывода?

Я использую Audio Unit Framework разработать приложение VOIP на Mac OS X. В моей программе есть два аудиоустройства, одно — только для входа AUHAL, другое — по умолчанию.

Я использую input-only AUHAL захватывать аудио. Когда частота дискретизации 44.1khz в обратном вызове AUHAL значение inNumberFrames является 512 что означает, что моя программа получит 512 frames аудиоданные от каждого звонка AudioUnitRender, И значение inNumberFrames в default output unit's callback это также 512. В этом случае все хорошо.

Но когда я меняю частоту дискретизации (8 кГц) как на input-only AUHAL а также default output unit моя программа не работает должным образом.

Потому что в обратном вызове модуля вывода значение inNumberFrames стал 93 что означает, что выходное устройство нужно 93 frames аудиоданные от каждого звонка, но значение inNumberFrames оставаться 512 в AUHAL's Перезвоните. Количество кадров не совпадает между AUHAL и output unit ,

Я могу изменить AUHAL I/O buffer size Руководство с помощью AudioUnitSetProperty и решить эту проблему, используя простую формулу с небольшой ошибкой. Но я хочу знать, есть ли какой-то способ сделать AUHAL настроить размер буфера ввода / вывода автоматически, как default output unit делать ?

Спасибо & что касается

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]