一些 OS X 应用程序可以显示用于播放音乐的可能输出设备列表,例如内置输出/声卡或连接的 USB DAC。如何列出所有此类设备并选择其中一个进行音频播放?
这个链接描述了我的一些想法,但我不知道如何准确地使用它。我尝试过使用以下代码:
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 中获取任何有用的信息?我可以获得一个对用户有意义的名称吗?
接下来将使用此输出音频单元进行输出,但首先要做的是。
谢谢索伦_