首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OSX AUGraph重建导致badComponentType错误

OSX AUGraph重建导致badComponentType错误
EN

Stack Overflow用户
提问于 2011-12-02 05:27:52
回答 1查看 298关注 0票数 0

在OSX上,我为我的音频系统创建了一个AUGraph,如下所示:

代码语言:javascript
复制
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...

这一切都很好,我可以听到声音,等等。稍后系统关闭:

代码语言:javascript
复制
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);

再说一次,这里没有问题。然而,不久之后,当系统重新启动时,第一个代码块再次被执行。在以下位置:

代码语言:javascript
复制
result = AUGraphOpen(mGraph);

"result“表示为-2005 (badComponentType)。有人知道这是什么原因吗?

EN

回答 1

Stack Overflow用户

发布于 2011-12-03 01:32:24

在关机时调用AUGraphClose修复了这个问题。中不可能有两个具有相同输出单位的开放图?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8348537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档