IOS: ошибка в симуляторе с помощью AudiounitrenderIOS

Программируем под IOS
Anonymous
IOS: ошибка в симуляторе с помощью Audiounitrender

Сообщение Anonymous »

Я ударил еще одну ошибку симулятора iOS. У меня вопрос: есть ли обходной путь? < /P>

ошибка такова /strong> Sample Project. < /p>

и просто распечатайте количество кадров, полученных с помощью обратного вызова < /strong> (в auriotouchappdelegate.mm) < /p>

static OSStatus PerformThru(
void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData)
{
printf( "%u, ", (unsigned int)inNumberFrames );
< /code>

Я получаю следующий вывод: < /p>

471, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, ...
< /code>

Однако, если вы прокомментируете вызов audiounitrender < /strong> в следующей строке: < /p>

{
printf( "%u, ", (unsigned int)inNumberFrames );

aurioTouchAppDelegate *THIS = (aurioTouchAppDelegate *)inRefCon;
OSStatus err = 0; // AudioUnitRender(THIS->rioUnit, ioActionFlags, inTimeStamp, 1, inNumberFrames, ioData);
< /code>

теперь он отправляет соответствующее количество поплавок каждый раз. < /p>

471, 470, 471, 470, 470, 471, 470, 471, 470, 470, 471, 470, 471, 470, 470, 471, 470,
< /code>

Другой вопрос, который у меня есть: почему такое случайное число, как 470, 471? Я где -то читал, что вы неявно указываете длину буфера, указав его продолжительность времени, и он устанавливает длину буфера на мощность двух, которая дает лучшее приближение к этой продолжительности . Но эмпирические данные свидетельствуют о том, что это не так. < /P>

В любом случае, почти уверен, что это ошибка. Я собираюсь пойти на это. Если кто -то может пролить свет, пожалуйста, сделайте!

Подробнее здесь: https://stackoverflow.com/questions/663 ... unitrender

Вернуться в «IOS»