我一直在网上寻找,但我不知道是否可能:可可Mac OS X应用程序可以改变声音输入/输出设备?如果是这样,为什么呢?
一个Cocoa Mac OS X应用程序可以改变声音输入/输出设备吗?
可以,通过设置相关的Audio System Object属性。
如果是,为什么?
可能是因为用户可能想要在应用程序中更改默认输入或输出设备,而不是在前后跳转到Sound前缀窗格或使用额外的Sound菜单。
我知道这是一个旧的帖子,但我这些天一直在努力寻找一种方法来改变声音输入/输出设备使用代码,我终于找到了如何做到这一点。如果其他人遇到同样的问题,这里有答案!
有一个名为SwitchAudio-OSX (https://code.google.com/p/switchaudio-osx/)的命令行实用程序,它允许您从终端切换音频源。它是开源的,你可以在这里找到最新版本:https://github.com/deweller/switchaudio-osx.
无论如何,您可以使用这些行来更改声音输入/输出设备:
UInt32 propertySize = sizeof(UInt32);
AudioHardwareSetProperty(kAudioHardwarePropertyDefaultInputDevice, propertySize, &newDeviceID); // To change the input device
AudioHardwareSetProperty(kAudioHardwarePropertyDefaultOutputDevice, propertySize, &newDeviceID); // To change the output device
AudioHardwareSetProperty(kAudioHardwarePropertyDefaultSystemOutputDevice, propertySize, &newDeviceID); // To change the system output device
其中newDeviceID
是AudioDeviceID
的一个实例,表示要选择的设备的id。此外,可以使用以下代码获得所有可用设备的列表:
AudioDeviceID dev_array[64];
AudioHardwareGetProperty(kAudioHardwarePropertyDevices, &propertySize, dev_array);
int numberOfDevices = (propertySize / sizeof(AudioDeviceID));