我目前正在编写一些代码,以原型的应用程序,将托管AudioUnit仪器。我使用AudioToolbox来做这件事,因为它似乎是可用的最完整的应用程序接口(AVFoundation看起来很好,但在MusicSequences方面似乎有限,这对我的应用程序很重要)。该应用程序只能在OS X上运行。
我在图表中设置了我的AudioUnit,并且我可以听到它的输出。我现在要做的是提供一个安装在系统上的AudioUnit仪器的列表,这样我就可以换出这个仪器(目前我只使用AudioComponentFindNext返回的第一个仪器)。AVFoundation中的AVAudioUnit提供了name和manufacturerName属性,但我可以看到任何使用较低级别类型访问此信息的方法。任何能回答这个问题的人都会知道文档是非常基础的(我发现标题中的东西最有用)。我尝试过查看AudioUnit的参数和属性,但这似乎与设备参数有关,而与单元本身的元数据无关。
发布于 2015-01-18 04:00:23
就像通常的方式一样,我在发布这篇文章后立即找到了答案。您可以使用AudioComponentCopyName以冒号分隔的字符串形式获取组件名称和制造商名称。
CFStringRef compName;
AudioComponentCopyName(currentComponent, &compName);
NSLog(@"%@", compName);
CFRelease(compName);这将提供如下输出(当然,这取决于您安装的是什么):
...
2015-01-17 19:57:19.331 AUTest[3774:1494743] Apple: DLSMusicDevice
2015-01-17 19:57:19.331 AUTest[3774:1494743] Apple: AUMIDISynth
2015-01-17 19:57:19.331 AUTest[3774:1494743] Apple: AUSampler
2015-01-17 19:57:19.333 AUTest[3774:1494743] Arturia: Analog Lab
...https://stackoverflow.com/questions/28003470
复制相似问题