Убедитесь, что аудиоустройство подключено

#c# #windows #audio #bluetooth

#c# #Windows #Аудио #bluetooth

Вопрос:

У меня есть несколько аудиоустройств Bluetooth, подключенных к моей системе. Иногда они могут быть отключены. Если я зайду в панель управления звуком, найду устройство в списке устройств воспроизведения и щелкну правой кнопкой мыши и выберу «подключиться», тогда все снова заработает.

Как мне сделать это программно на C #?

Я уже пробовал 32feet и NAudio, но свойство состояния их классов BluetoothDevice и MMDevice доступно только для чтения.

В идеальном мире я бы нашел функцию, подобную этой:

 BluetoothConnector.Connect("MyBluetoothDevice");
  

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

1. Есть 2 решения (на самом деле одно, но разными способами). Первое небольшое замечание: к сожалению, Windows не предоставляет простого способа подключения к аудиоустройству из приложений. Но вы можете использовать некоторые хитрости. Вам необходимо удалить драйверы для вашего сопряженного устройства и установить их снова. Для обеих операций вы должны вызвать функцию BluetoothSetServiceState() из Win Bluetooth API. Другой способ сделать то же самое — использовать Bluetooth Framework , который предоставляет 2 метода InstallDevice и UninstallDevice.

2. Эквивалентно ли это их отключению и повторному сопряжению?

3. Да и нет. Да, если вы делаете это через Bluetooth, добавьте пользовательский интерфейс устройства и нет, когда вы отключаете и снова выполняете сопряжение с помощью Bluetooth API (в этом случае Windows не устанавливает драйверы для поддерживаемых служб). Фактически, когда вы отключаете устройство (другим способом), Windows также удаляет установленные драйверы. Однако при сопряжении с устройством с помощью пользовательского интерфейса (Добавить устройство) Windows фактически выполняет 2 операции: сопряжение, а затем (в случае успеха) устанавливает драйверы для поддерживаемых служб.

4. Я понимаю… Я думаю, мне нужно выяснить, как вызывать API. Я избегал их достаточно долго, ха-ха, спасибо, Майк