Кто-нибудь использует симулятор для обработки звука 8 кГц на уровне AudioUnit?
Аудио симулятора iPhone работает только для частот 44100 Гц, 22050 Гц и 11025 Гц.В противном случае это не получается.
У меня проблемы с записью звука на симуляторе iPhone.Код отлично работает на устройстве с жестким диском, но странно дает сбой в симуляторе.
Я работаю на уровне AudioUnit, и я установил частоту дискретизации (через свойства аудио сеанса) на 8000 Гц.На оборудовании работает нормально, но на симуляторе обратный вызов рендеринга запрашивает один кусок данных соответствующего размера, а затем перезванивает каждые 11,6 мс с запросом одного байта.
Я попытался установить частоту дискретизации на 44100/4 (11025Hz) и все работало нормально.Поэтому я попытался установить частоту дискретизации аудио сеанса 11024, и она сломалась.То же самое с 11026. Работает 11025.
Я предполагаю, что в аудиокоде симулятора есть ошибка.Я думаю, что внутри него должен быть буфер длиной четверть секунды, и он не может справиться с ситуациями, когда частота дискретизации не кратна этому.
Может кто-нибудь попробовать это в своем собственном коде в симуляторе?Попробуйте частоты дискретизации 11024, 11025 и 11026 и посмотрите, работает ли только 11025?
ОБНОВЛЕНИЕ: Если я запрашиваю 11024, это дает мне 8000, но обратный вызов рендеринга продолжает доставлять ioData, запрашивая только один кадр (1 байт).То же самое происходит, когда я запрашиваю 8000 Гц.
ОБНОВЛЕНИЕ2: Симулятор также работает плавно, когда я программирую на уровне AudioQueue API.Он обрабатывает 8 кГц там.Похоже, что он облажался на уровне AudioUnit API.