是否可以列出当前在应用程序中的所有RemoteIO音频单元?

时间:2013-03-15 08:33:03

标签: ios audio core-audio audiounit

我想通过AudioUnitAddRenderNotify将输出渲染回调添加到当前活动的RemoteIO设备上,该设备将音频输出到扬声器。我无法访问实际的RemoteIO实例变量,但我想在应用程序中获取列表音频单元,并以此方式找到RemoteIO单元。这甚至可能吗?

2 个答案:

答案 0 :(得分:1)

如果您可以访问AUGraph,那么这是可能的。根据{{​​3}},有几种方法可以帮助你。

AUGraphGetNodeCount - 获取图表中的节点数量 AUGraphGetIndNode - 获取索引节点 AUGraphNodeInfo - 获取有关节点的信息

获得正确的节点后,您可以获取remoteIO设备并添加回调。获得对AUGraph的访问权限实际上是真正的问题。

答案 1 :(得分:0)

只有一个RemoteIO。我从来没有尝试过指向它而不是“创造”它的指针。为什么不尝试这样的东西,它应该为你指向RemoteIO:

OSStatus status;
AudioComponentInstance audioUnit;

    // Describe audio component
AudioComponentDescription desc;
desc.componentType = kAudioUnitType_Output;
desc.componentSubType = kAudioUnitSubType_RemoteIO;
desc.componentFlags = 0;
desc.componentFlagsMask = 0;
desc.componentManufacturer = kAudioUnitManufacturer_Apple;

// Get component
AudioComponent outputComponent = AudioComponentFindNext(NULL, &desc);

// Get audio units
status = AudioComponentInstanceNew(outputComponent, &audioUnit);
checkStatus(status);