Как настроить Bluetooth-гарнитуру на использование по умолчанию профиля HFP и кодека mSBC в Ubuntu 22.04

Как настроить Bluetooth-гарнитуру на использование по умолчанию профиля HFP и кодека mSBC в Ubuntu 22.04

В настоящее время, когда я переподключаю свою Bluetooth-гарнитуру к Ubuntu 22.04, по умолчанию используется профиль A2DP Sink. Затем я использую pavucontrol, чтобы вручную переключаться на HFP каждый раз. Как мне закрепить это, чтобы мне не приходилось постоянно менять его?

Я попробовал решения вИзменение режима звука по умолчанию для наушников Bluetooth (A2DP Sink против HSP/HFP)и ни один из них, похоже, не работает.

решение1

У меня была похожая проблема. Моя гарнитура поддерживает только аудио с A2DP и ​​должна переключиться на HFP, чтобы мой микрофон заработал.

Я переключился с Pulse Audio на Pipewire. «Pipewire (WirePlumber >= 0.4.8) [...] поддерживает автоматическое переключение профиля Bluetooth (например, переключение с A2DP на HSP/HFP, когда приложению требуется доступ к микрофону)».

Это было отличным решением для моего варианта использования. Мой ноутбук больше не использует внутренний микрофон при присоединении к звонкам MS Teams, а автоматически переключается на гарнитуру с HFP.

Я также использую Ubuntu 22.04 иустановленный Pipewire вручную.

Установить

Установите кодеки для LDAC (SBC включен в комплект поставки):

$ sudo apt install libldacbt-{abr,enc}2

Установите оставшиеся пакеты PipeWire и WirePlumber в качестве менеджера сеансов:

$ sudo apt install \ libspa-0.2-bluetooth \
pipewire-audio-client-libraries \ pipewire-media-session- \
wireplumber

Notice '-' at the end of 'pipewire-media-session'. This is to remove it in the same command, because 'wireplumber' will be used

вместо.

Запустите WirePlumber для вашего пользователя:

$ systemctl --user --now включить wireplumber.service

Настроить ALSA

Один шаг. Скопируйте файл конфигурации из примеров PipeWire в каталог конфигурации ALSA:

$ sudo cp /usr/share/doc/pipewire/examples/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/

PulseAudio

Все было сделано автоматически пакетом pipewire-pulse, который должен был быть установлен пакетом wireplumber, как рекомендовано. Если нет, установите его самостоятельно. Bluetooth

Просто удалите этот пакет, и Bluetooth будет обрабатываться PipeWire:

$ sudo apt удалить pulseaudio-module-bluetooth

Сделанный

Перезагрузите компьютер и проверьте, работает ли он, выполнив:

$ LANG=C pactl info | grep '^Имя сервера'

Это всего лишь обходной путь, который не дает прямого ответа на ваш вопрос.

решение2

У меня та же проблема. Простой обходной путь через командную строку — вручную задать приемник после подключения:

Установите псевдоним в вашем «.profile» или «.bashrc» и просто используйте «hs» в командной строке после bluetooth-connect

alias hs='pacmd set-card-profile bluez_card.your_device handsfree_head_unit'

Вы можете найти свое устройство с помощью:

pacmd list

И имя будет примерно таким:

name: <bluez_card.AB_CD_EF_12_34_56>

После подключения Bluetooth-гарнитуры выполните следующие действия:

hs

Вы также можете легко добавить настройку наушников. Например:

    alias hp='pacmd set-card-profile bluez_card.your_device a2dp_sink'

Я тоже все еще ищу автоматическое решение.

Связанный контент