Максимальное значение для кадра AudioUnit? - PullRequest
1 голос
/ 28 ноября 2011

У меня есть простой код, который использует AudioUnit для визуализации синусоидальной волны на выходе.У меня вопрос: какой диапазон значений я должен поместить в кадры?Я имею в виду, что в функции AudioUnitRender я должен обеспечить буферный массив некоторыми аудиоданными ... Итак, какие значения я должен ввести?В настоящее время я вставляю значения от -1 до 1, но я вижу, что я также могу использовать большие значения ...

Так какое максимальное значение я должен использовать (которое представляет 100% объема)?

Спасибо:)

1 Ответ

3 голосов
/ 28 ноября 2011

Это полностью зависит от того, какой формат потока вы используете.Вы должны создать AudioStreamBasicDescription и установить его в качестве формата ввода для вашего аудиоустройства.Существует множество различных форматов потоков, и каждый из них по-своему представляет, что такое «100% объем».Если вы выберете число с плавающей запятой, то это будет, например, от -1,0 до 1,0, но если вы выберете 16-разрядный без знака, то будет от 0 до 65535.

Я не уверен, какой код у вас уже есть длянастройка вашего аудиоустройства, но хороший пример выглядит здесь: http://atastypixel.com/blog/using-remoteio-audio-unit/

В этом примере вы заметите, что он создает AudioStreamBasicDescription и выбирает линейный PCM с флагом kAudioFormatFlagIsSignedInteger при 16бит на канал и 1 канал.Это означает, что значения будут варьироваться от -32768 до 32767.

...