2011-09-26 2 views
2

У меня есть приложение на основе AudioQueue, работающее почти отлично. Однако у меня проблема. Когда я вызываю AudioQueueAllocateBuffer, я специально запрашиваю размер буфера 512 (поскольку я выполняю БПФ на данных). Однако, когда срабатывает обратный вызов, я нахожу, что время от времени я получаю размеры буфера, которые меньше 512.AudioQueue захватывает и возвращает разные размеры буфера

Это бесит. Мое единственное решение - настроить некоторую внутреннюю буферизацию входящих данных, чтобы сгладить эти проблемы? Почему я указываю значение в буфер распределения, а затем iPhone возвращает мне другое количество образцов?

Любая помощь будет высоко оценена, поскольку я собираюсь сойти с ума.

Cheers!

Оскар

ответ

2

Ваше решение создать свою собственную внутреннюю буферизацию входящих аудиоданных, пока вы не буферное количество требуемых данных.

Размер буфера, который вы выделяете, указывает максимальный объем данных, которые могут заполнить этот буфер, а не минимум. Audio Queue API основан на других аудио API-интерфейсах iOS и может изменять его поведение в зависимости от ряда факторов (что делает этот базовый API, аудио-сеанс или частота дискретизации по запросу других приложений, состояние фона, Версия ОС, различные базовые аппаратные средства на разных моделях устройств и т. Д.). Даже самый низкий уровень публичного аудио API (RemoteIO) изменит размер возвращаемого буфера, в зависимости.

+0

Hmph, почему платформы яблока - единственные, с которыми я когда-либо сталкивался, которые страдают от этого? – Goz

+0

Некоторые разработчики сообщили, что платформа iOS кажется лучше, чем другие популярные мобильные платформы в отношении задержки звука и управления питанием. Возможно, что-то из этого связано с тем, что некоторые приложения для управления аудио-буфером используют приложение вместо добавления еще одного уровня ОС? – hotpaw2

+0

Возможно, вы правы, но когда я написал прямо на металл, вы были во власти внутренних буферов, но, по крайней мере, вы всегда получали данные, которые были мощностью 2 ... – Goz

 Смежные вопросы

  • Нет связанных вопросов^_^