
В настоящее время, когда я переподключаю свою 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- \
wireplumberNotice '-' 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'
Я тоже все еще ищу автоматическое решение.