Настройка вывода / ввода звука - PullRequest
1 голос
/ 24 апреля 2011

Я искал по всему Интернету, но я не знаю, возможно ли это: может ли приложение Cocoa Mac OS X изменить устройство ввода / вывода звука?Если так, как получилось?

Ответы [ 2 ]

2 голосов
/ 24 апреля 2011

Может ли приложение Cocoa Mac OS X изменить устройство ввода / вывода звука?

Да, установкой соответствующим свойством объекта аудиосистемы .

Если так, как получилось?

Возможно, потому что пользователь может захотеть изменить устройство ввода или вывода по умолчанию из приложения, вместо того, чтобы переходить на предварительную панель Sound до и после или использовать дополнительное меню Sound.

0 голосов
/ 21 ноября 2014

Я знаю, что это старый пост, но я изо всех сил пытался найти способ изменить устройство ввода / вывода звука с помощью кода, и я наконец нашел, как это сделать.В случае, если кто-то столкнется с той же проблемой, вот ответ!

Существует утилита командной строки под названием 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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...