Я знаю, что это старый пост, но я изо всех сил пытался найти способ изменить устройство ввода / вывода звука с помощью кода, и я наконец нашел, как это сделать.В случае, если кто-то столкнется с той же проблемой, вот ответ!
Существует утилита командной строки под названием 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
и представляет идентификатор устройства, которое вы хотите выбрать. Кроме того, список всех доступных устройств можно получить с помощью этого кода:
AudioDeviceID dev_array[64];
AudioHardwareGetProperty(kAudioHardwarePropertyDevices, &propertySize, dev_array);
int numberOfDevices = (propertySize / sizeof(AudioDeviceID));