Утилита для управления Bluetooth аудио профилями (A2DP/HFP) в Windows 10/11.
Версия: 1.3.4 | Языки: Русский, English
- Проблема
- Решение
- Новое в 1.3.4
- Экспериментальные функции
- Выбор Bluetooth адаптера
- Проблема с AAC на Intel адаптерах
- MMCSS оптимизация для уменьшения запинаний
- Важно: задержка после подключения
- Системные требования
- Установка
- Сборка из исходников
- Использование
- Настройки
- Поддержать проект
- Лицензия
- Авторы
При подключении Bluetooth наушников Windows создает два отдельных аудио устройства:
-
A2DP (Advanced Audio Distribution Profile) - профиль высокого качества:
- Стерео звук
- Высокий битрейт (до 990 kbps с LDAC)
- Поддержка кодеков: SBC, AAC, aptX, LDAC
- Без микрофона
-
HFP (Hands-Free Profile) - профиль для звонков:
- Моно звук
- Низкий битрейт (~64 kbps)
- Качество как у телефонных звонков 90-х
- С микрофоном
Windows автоматически и часто неправильно переключается между этими профилями:
- Открыли браузер с вкладкой, где есть микрофон? Windows переключит на HFP.
- Запустилось какое-то приложение в фоне? Может переключить на HFP.
- Система просто "решила" что вам нужен микрофон? Переключит на HFP.
В результате вы слушаете музыку в отличном качестве, и вдруг звук становится ужасным - моно, низкий битрейт, будто слушаете через дешевый телефон. Приходится вручную переключать устройства в настройках звука, что крайне неудобно.
A2DP Commander решает эту проблему радикально: программно отключает HFP устройство в Диспетчере устройств Windows (Device Manager).
- Программа находит ваши Bluetooth наушники
- Определяет связанные аудио устройства (A2DP и HFP)
- В режиме "Музыка" - отключает HFP устройство через SetupAPI
- Windows больше не может переключиться на HFP, потому что устройство отключено
- Вы наслаждаетесь стабильным высококачественным звуком
| Режим | A2DP | HFP | Использование |
|---|---|---|---|
| Музыка | Включен | Отключен | Прослушивание музыки, видео, игры |
| Звонки | Включен | Включен | Zoom, Teams, Discord, Skype |
Переключение между режимами занимает 1-2 секунды.
- При повторном запуске программа автоматически показывает окно уже запущенного экземпляра
- Больше нет всплывающих окон "уже запущено" — просто фокус на существующем окне
- Реализовано через Named Pipe IPC
- Убрана кнопка "Свернуть в трей" — закрытие окна делает то же самое
- Статус External Encoder перенесён под настройки кодека с переносом по словам
- Сокращены тексты о несовместимости адаптера для компактности
- Версия в заголовке обновляется автоматически из Assembly
v1.2.1
- Автоопределение поддержки адаптера — экспериментальные функции автоматически блокируются если BT-адаптер не поддерживает LDAC/aptX HD
- Понятные сообщения об ошибках — при попытке включить неподдерживаемую функцию показывается причина
v1.2.0
- WiFi Coexistence — отключение конфликта Bluetooth/WiFi на 2.4GHz
- WiFi Power Saving — отключение энергосбережения WiFi
- Processing Period Control — управление размером аудио буфера
- Latency Query — отображение задержки аудио в диагностике
- LDAC/aptX кодирование через внешний USB Bluetooth трансмиттер
- Registry Codec Forcing — изменение кодека через реестр
v1.1.0
- Выбор Bluetooth адаптера — переключение между несколькими адаптерами
- Определение кодека — отображение текущего кодека подключения
Подробнее в разделе Экспериментальные функции.
Позволяет использовать кодеки LDAC/aptX HD через внешний USB Bluetooth трансмиттер.
Приложение → WASAPI capture → Encoder (Rust) → USB Transmitter → Наушники
| Кодек | Битрейт | Качество |
|---|---|---|
| LDAC | 990 / 660 / 330 kbps | Hi-Res |
| aptX HD | 576 kbps | Высокое |
| aptX | 352 kbps | Хорошее |
| SBC | 328 kbps | Базовое |
| Устройство | Цена | Кодеки |
|---|---|---|
| 1Mii B03Pro | ~$30 | aptX HD, LDAC |
| Avantree DG80 | ~$40 | aptX LL |
| FiiO BTA30 Pro | ~$70 | Все кодеки |
| Creative BT-W3 | ~$50 | aptX HD |
| Shanling M0 Pro | ~$130 | LDAC |
- Внешний USB Bluetooth трансмиттер с поддержкой нужного кодека
- Virtual Audio Cable (VB-Audio) или аналог (опционально)
Изменяет настройки реестра Windows для принудительного выбора кодека.
Важно:
- Требует права администратора
- Требует перезагрузки системы
- Работает только если ваш Bluetooth адаптер поддерживает нужный кодек
Если в вашей системе несколько Bluetooth адаптеров (например, встроенный Intel и внешний USB Realtek), вы можете переключаться между ними прямо из программы.
- Откройте вкладку Настройки
- В секции Bluetooth адаптер вы увидите список всех физических адаптеров
- Выберите нужный адаптер и нажмите Переключить
- Программа отключит все остальные адаптеры и включит выбранный
- Windows поддерживает только один активный Bluetooth адаптер одновременно
- Сопряжённые устройства НЕ переносятся между адаптерами
- После переключения потребуется заново подключить наушники к новому адаптеру
- Может потребоваться перезагрузка компьютера
Разные адаптеры поддерживают разные кодеки:
| Адаптер | SBC | AAC | aptX | aptX HD | LDAC |
|---|---|---|---|---|---|
| Intel (встроенный) | ✓ | ✓* | ✗ | ✗ | ✗ |
| Realtek (USB) | ✓ | ✓ | ✓ | ✗ | ✗ |
| Creative BT-W5 | ✓ | ✓ | ✓ | ✓ | ✓ |
| FiiO BTA30 Pro | ✓ | ✓ | ✓ | ✓ | ✓ |
| 1Mii B03Pro | ✓ | ✓ | ✓ | ✓ | ✓ |
*AAC на Intel часто имеет проблемы с заиканиями
Если у вас Bluetooth адаптер Intel (встроенный в большинство ноутбуков и материнских плат), вы можете столкнуться с заиканиями и прерываниями звука при использовании кодека AAC.
Это известная проблема драйверов Intel Bluetooth, которая проявляется:
- Периодические "заикания" каждые несколько секунд
- Короткие прерывания звука
- Нестабильное воспроизведение
A2DP Commander позволяет отключить AAC кодек через реестр Windows:
HKLM\SYSTEM\CurrentControlSet\Services\BthA2dp\Parameters\BluetoothAacEnable = 0
После отключения AAC система будет использовать кодек SBC, который работает стабильно на всех адаптерах.
Изменение настройки AAC требует перезагрузки компьютера!
После включения или отключения AAC в настройках A2DP Commander необходимо перезагрузить Windows, чтобы изменения вступили в силу. Простое переподключение наушников не поможет - требуется именно перезагрузка системы.
A2DP Commander может применить системные оптимизации для улучшения качества аудио через MMCSS (Multimedia Class Scheduler Service).
- Отключает троттлинг сети при воспроизведении аудио (
NetworkThrottlingIndex = 0xFFFFFFFF) - Устанавливает приоритет системы на мультимедиа (
SystemResponsiveness = 0) - Повышает приоритет аудио-потоков (
Audio\Scheduling Category = High)
- Откройте вкладку Настройки
- Поставьте галочку Оптимизировать MMCSS для аудио
- Нажмите Сохранить
- Перезагрузите компьютер
- Заикания звука при активной загрузке сети
- Прерывания при работе других приложений
- Общее улучшение стабильности воспроизведения
После подключения Bluetooth устройства необходимо подождать 3-5 секунд, прежде чем автоматическая смена режима применится полностью.
Это связано с тем, что:
- Windows требуется время для инициализации всех аудио устройств
- Драйвер Bluetooth завершает установку соединения
- A2DP Commander обнаруживает устройство и применяет настройки
Если переключить режим сразу после подключения, изменения могут не примениться корректно. Дождитесь уведомления программы о успешном переключении.
- Windows 10 версии 1903 (сборка 18362) или новее
- Windows 11 любой версии
- .NET 8 Desktop Runtime - скачать с сайта Microsoft
- Bluetooth адаптер (встроенный или внешний)
- Bluetooth наушники с поддержкой A2DP
- .NET 8 SDK
- Rust (для encoder-service)
- Windows 10/11 (сборка возможна только под Windows, так как используется WPF)
- Git
- Скачайте последний релиз со страницы Releases
- Распакуйте архив в любую папку
- Запустите
A2DP-Commander.exe - Программа появится в системном трее (область уведомлений)
- При первом запуске рекомендуется включить автозапуск в настройках
- A2DP-Commander-vX.X.X-win-x64.zip - требует установленного .NET 8 Runtime (~32 MB)
- a2dp-encoder.exe - Rust encoder service для экспериментальных функций (~1 MB)
git clone https://github.com/Yumash/A2DP-Commander.git
cd A2DP-Commanderbuild.batdotnet build src/A2DPCommander/A2DPCommander.csproj -c Releasecd encoder-service
cargo build --releasedotnet run --project src/A2DPCommander/A2DPCommander.csprojdotnet publish src/A2DPCommander/A2DPCommander.csproj -c Release -r win-x64 --no-self-contained -p:PublishSingleFile=trueПосле запуска программа сворачивается в системный трей. Доступные действия:
- Левый клик на иконке - открыть главное окно
- Правый клик на иконке - контекстное меню с быстрым переключением режима
- Двойной клик - открыть главное окно
Иконка меняется в зависимости от состояния:
- Синий круг - режим "Музыка", A2DP активен
- Зеленый круг - режим "Звонки", HFP активен
- Серый круг - устройство не подключено
Программа может автоматически переключаться в режим "Звонки" при запуске определенных приложений:
- Zoom
- Microsoft Teams
- Discord
- Skype
- Google Meet
- И другие (настраиваемый список)
Настройки хранятся в файле settings.json в той же папке, что и программа.
| Параметр | Описание |
|---|---|
| Bluetooth устройство | Bluetooth устройство для управления |
| Bluetooth адаптер | Выбор активного Bluetooth адаптера (если несколько) |
| Режим по умолчанию | Музыка или Звонки при запуске |
| Автозапуск | Запускать программу при старте Windows |
| Уведомления | Показывать уведомления при переключении |
| Автопереключение по приложениям | Переключать режим при запуске Zoom и т.д. |
| Отключить улучшения Windows | Отключить DSP-эффекты для чистого звука |
| Оптимизировать MMCSS | Системные оптимизации для аудио (требует перезагрузки) |
| Параметр | Описание |
|---|---|
| LDAC Registry | Форсирование кодека через реестр (требует перезагрузки) |
| External Encoder | Использование внешнего USB трансмиттера с LDAC/aptX |
Можно настроить, какой режим использовать при запуске определенных приложений. Правила имеют приоритеты - если запущено несколько приложений, применяется правило с наивысшим приоритетом.
Если A2DP Commander оказался вам полезен, вы можете поддержать разработку:
BTC: 1BkYvFT8iBVG3GfTqkR2aBkABNkTrhYuja
Любая поддержка помогает развивать проект и добавлять новые функции!
Проект распространяется под лицензией MIT.
Это означает, что вы можете свободно:
- Использовать программу в любых целях
- Изменять исходный код
- Распространять измененные версии
- Использовать в коммерческих проектах
При условии сохранения текста лицензии и указания авторства.
Полный текст лицензии находится в файле LICENSE.
- libldac (encoder-service) - Apache 2.0
- libopenaptx (encoder-service) - GPLv3
- Андрей Юмашев - github.com/Yumash
- Claude (Anthropic)