Objective-C: запуск AudioOutputUnitStart занимает много времени. Возможный обходной путь?

#objective-c #core-audio

#objective-c #core-audio

Вопрос:

Запуск функции AudioOutputUnitStart занимает до 1-2 секунд при каждом ее вызове. Я использую AudioOutputUnitStop, чтобы остановить это, есть ли что-то вроде AudioOutputUnitPause, чтобы для первого запуска требовалось столько времени? Или я должен постоянно запускать его и выводить тишину при «остановке» (это кажется неправильным)

Спасибо!

РЕДАКТИРОВАТЬ: звук, который я воспроизводю, довольно короткий (менее секунды, непрерывная трансляция), поэтому я не думаю, что дело в этом, вероятно, именно столько обычно требуется независимо от размера звука.

Ответ №1:

Попробуйте уменьшить размер буфера для ваших аудиоданных. iOS не начнет воспроизведение, пока первый буфер не будет заполнен данными. Если размер этого буфера довольно большой, это может занять 1-2 секунды.

Комментарии:

1. Действительно, это была проблема. Я увеличил размер буфера слишком сильно. Забыл добавить ответ здесь. Однако я выберу ваш ответ, потому что он правильный.

2. Могу я спросить, как вы изменили размер буфера?

3. Метод DeriveBufferSize() содержит в качестве третьего параметра значение для урезания размера буфера. Результирующий размер буфера изменяется вызовом указателя в методе DeriveBufferSize(): DeriveBufferSize(состояние записи. очередь, состояние записи.DataFormat, 0.5, amp; состояние записи.размер буфера байта);