1

一些 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 中获取任何有用的信息?我可以获得一个对用户有意义的名称吗?

接下来将使用此输出音频单元进行输出,但首先要做的是。


谢谢索伦_

4

0 回答 0