Восстановление OSX AUGraph вызывает ошибку badComponentType - PullRequest
0 голосов
/ 02 декабря 2011

В OSX я создаю AUGraph для моей аудиосистемы так:

OSStatus result = NewAUGraph(&mGraph);

AUNode outputNode;
AudioComponentDescription outputDesc;
outputDesc.componentType = kAudioUnitType_Output;
outputDesc.componentSubType = kAudioUnitSubType_DefaultOutput;
outputDesc.componentManufacturer = kAudioUnitManufacturer_Apple;
outputDesc.componentFlags = 0;
outputDesc.componentFlagsMask = 0;
result = AUGraphAddNode(mGraph, &outputDesc, &outputNode);

AUNode converterNode;
AudioComponentDescription converterDesc;
converterDesc.componentType = kAudioUnitType_FormatConverter;
converterDesc.componentSubType = kAudioUnitSubType_AUConverter;
converterDesc.componentManufacturer = kAudioUnitManufacturer_Apple;
converterDesc.componentFlags = 0;
outputDesc.componentFlagsMask = 0;
result = AUGraphAddNode(mGraph, &converterDesc, &converterNode);

result = AUGraphConnectNodeInput(mGraph, converterNode, 0, outputNode, 0);
result = AUGraphOpen(mGraph);

...initialize graph, start graph, etc...

Все это работает нормально, я слышу звук и т. Д. Позже система выключается:

unsigned char isRunning = false;
AUGraphIsRunning(mGraph, &isRunning);
if (isRunning)
    AUGraphStop(mGraph);

OSStatus result;
unsigned char isInitialized = false;
AUGraphIsInitialized(mGraph, &isInitialized);
if (isInitialized)
{
    result = AUGraphUninitialize(mGraph);
}
result = DisposeAUGraph(mGraph);

Опять проблем здесь нет.Однако вскоре после первого перезапуска первый блок кода снова запускается.Вкл:

result = AUGraphOpen(mGraph);

«Результат» получается как -2005 (badComponentType).Кто-нибудь знает, что вызывает это?

1 Ответ

0 голосов
/ 02 декабря 2011

Вызов AUGraphClose в завершение работы исправил это.Угадайте, у вас не может быть двух открытых графиков с одинаковыми выходными единицами?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...