某些OS X应用程序可以显示可用于播放音乐的输出设备列表,例如内置输出/声卡或连接的USB DAC。如何列出所有此类设备并选择其中一个进行音频播放?
这个link描述了我的想法,但我无法弄清楚如何正确使用它。我尝试过以下代码:
AudioComponentDescription ioUnitDescription;
ioUnitDescription.componentType = kAudioUnitType_Output;
ioUnitDescription.componentSubType = 0;
ioUnitDescription.componentManufacturer = kAudioUnitManufacturer_Apple;
ioUnitDescription.componentFlags = 0;
ioUnitDescription.componentFlagsMask = 0;
AudioComponent foundIoUnitReference = NULL;
while ((foundIoUnitReference = AudioComponentFindNext(foundIoUnitReference, &ioUnitDescription))) {
AudioUnit ioUnitInstance;
AudioComponentInstanceNew (foundIoUnitReference, &ioUnitInstance);
//NSLog (@"Audio Unit: %@", ioUnitInstance);
}
它循环5次,所以我想这确实给了我一些音频单元的列表,但我有两个问题:
1)5是很多,因为我当时只有输出/音板的构建。我应该使用某种componentSubType来过滤这个以及哪一个?
2)如何从这个ioUnitInstance中获取任何有用的信息?我可以获得一个对用户有意义的名称吗?
接下来将使用此输出音频单元进行输出,但首先要做的事情。
谢谢你 索伦