Изменить аудиоустройство по умолчанию в Windows 7

#c# #windows-7 #audio

#c# #windows-7 #Аудио

Вопрос:

Я хочу иметь возможность изменять устройство вывода звука по умолчанию в Windows 7 программно, используя C # (и, возможно, также некоторые базовые вызовы Win32 API). Я уже сделал свою домашнюю работу, и я слышал много смешанных комментариев из разных источников, поэтому я хотел задать этот вопрос еще раз, чтобы получить прямой ответ. Действительно ли это возможно (любыми способами)? Если да, то как мне это сделать?

И, пожалуйста, не предлагайте решение с помощью «AutoIt» или какой-либо другой подобной программы … это вопрос, специфичный для C # / .NET.

Комментарии:

1. Велика вероятность, что вы получите еще больше неоднозначных комментариев из другого источника. Вот один: только пользователь выбирает аудиоустройство, которое он хочет прослушать.

2. 1 Я думал о программировании этого сам. Я действительно ненавижу переключение между моими наушниками и выходом HDMI.

Ответ №1:

Небольшой актуальный ответ, который совместим с Windows 10.

Эта программа способна сделать это прекрасным образом (горячая клавиша для переключения между предварительно выбранными устройствами) и написана на C #: SoundSwitch на GitHub

Некоторое обратное проектирование должно привести вас к этому (для моего использования эта программа была просто идеальной такой, какая она есть).

В нем используется библиотека (того же автора), которая есть на C : AudioEndpointLibrary на GitHub

Итак, если вы знаете C (чего у меня недостаточно), вы могли бы пойти дальше в анализе того, как это работает. Или просто используйте библиотеку, как это делает SoundSwitch.

Комментарии:

1. Просто замечание о SoundSwitch: иногда это ненадежно, поскольку оно устанавливает аудиоустройства в качестве устройств связи вместо аудиовыхода, а иногда устройства забываются в меню системного трея. Но это только начало.

Ответ №2:

На всякий случай, если кто-нибудь наткнется на эту тему в будущем … вот некоторый код C , который сделает это, вызвав некоторые недокументированные Win32 API. Это может быть скомпилировано в EXE-файл, а затем автоматически вызвано из приложения .NET, так что вы можете создать программу .NET на основе этого кода.

http://web.archive.org/web/20190317012739/http://www.daveamenta.com/2011-05/programmatically-or-command-line-change-the-default-sound-playback-device-in-windows-7/

Комментарии:

1. Оно работало для Win 8.1, но, к сожалению, оно больше не работает с Windows 10, какие-либо решения?

2. Вы можете проверить мой ответ на предмет того, что работает с W10!

3. эта ссылка недоступна