#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 на основе этого кода.
Комментарии:
1. Оно работало для Win 8.1, но, к сожалению, оно больше не работает с Windows 10, какие-либо решения?
2. Вы можете проверить мой ответ на предмет того, что работает с W10!
3. эта ссылка недоступна