我一直在寻找网络,但我不知道是否可能:Cocoa Mac OS X应用程序可以更改声音输入/输出设备吗?如果是这样,怎么回事?
答案 0 :(得分:2)
Cocoa Mac OS X应用程序可以更改声音输入/输出设备吗?
是的,setting relevant Audio System Object property。
如果是这样,怎么回事?
可能是因为用户可能想要在应用程序中更改默认输入或输出设备,而不必在之前和之后跳转到Sound prefpane或使用Sound菜单。
答案 1 :(得分:0)
我知道这是一个很老的帖子,但是这些天我一直在努力寻找一种使用代码来改变声音输入/输出设备的方法,我终于找到了如何做到这一点。如果其他人遇到同样的问题,这就是答案!
有一个名为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));