Как переключить мой телефон на аудиошлюз гарнитуры (HSP/HFP) в pulseaudio

Вопрос или проблема

Я подключил свой Raspberry Pi (на котором работает Ubuntu 20) к своему телефону по Bluetooth. Это хорошо работает, и a2dp работает, как и ожидалось. Теперь я хотел бы, чтобы звонки тоже работали, но не могу изменить профиль карты.

Вывод команды pactl list cards:

    Профили:
        a2dp_source: Высококачественный захват (A2DP Source) (выходы: 0, входы: 1, приоритет: 20, доступно: да)
        headset_audio_gateway: Аудио-шлюз для гарнитуры (HSP/HFP) (выходы: 1, входы: 1, приоритет: 10, доступно: нет)
        off: Выключено (выходы: 0, входы: 0, приоритет: 0, доступно: да)
    Активный профиль: выключен

Я выполнил enable-modem в тестовой директории ofono.

У меня Bluez 5.54, Pulsaudio 13.99.1, Ofono 1.31.

Самое худшее то, что я смог заставить это работать на своем ноутбуке с Ubuntu некоторое время назад, но не помню, что я сделал/изменил, чтобы это заработало.

Если у вас есть идеи, как это сделать, я был бы вам очень благодарен!

В Ubuntu 20.04 переключение между a2dp и headset_audio_gateway (HSP/HFP) происходит автоматически. Я использую ofono, как это предлагается во многих темах, таких как эта: Как настроить ПК с Ubuntu в качестве Bluetooth-гарнитуры для приема звонков.

Вы можете принудительно переключить, добавив в файл с помощью выбранного редактора (мой – vim):

vim /etc/pulse/default.pa

следующую строку:

"load-module module-bluetooth-policy auto_switch=2"

в раздел:

.ifexists module-bluetooth-discover.so
load-module module-bluetooth-policy auto_switch=2
load-module module-bluetooth-discover headset=ofono
.endif

Но я думаю, что эта настройка уже по умолчанию в pulseaudio, начиная с последней версии в Ubuntu 20.04.

На самом деле, возможно, вы сталкиваетесь с похожей проблемой, как и я: a2dp мультимедийная воспроизведение (youtube, музыка, системные звуки и т. д.) с Android на Ubuntu как Bluetooth-гарнитура работает отлично, автоматическое переключение между a2dp и HSP/HFP также работает отлично. Но: a2dp может воспроизводить звук через Line Out или Гарнитуру и т. д., в то время как HSP/HFP по какой-то причине не может воспроизводить звук или использовать микрофон, когда он активирован. На самом деле, это работает, но нужно вручную переключать входные и выходные источники на источники гарнитуры, такие как:

Вход: Гарнитура > Передний микрофон
Выход: Гарнитура > Наушники

в то время как в режиме “Аудио-шлюз для гарнитуры (HSP/HFP)”. Что, на мой взгляд, Ubuntu переключает автоматически. Вы можете увидеть, какой режим активен, с установленным pulseaudio (pavucontrol) на вашей системе, после открытия pavucontrol > Конфигурация вы увидите свой телефон (мой – Galaxy S8+) с профилем “Выключено”, “Высококачественный захват A2DP” и “Аудио-шлюз для гарнитуры (HSP/HFP)”. Вы должны видеть, как операционная система автоматически переключает их, когда ваш телефон воспроизводит медиа, такие как youtube, а затем переключается на телефонный звонок и наоборот.

Как этого можно достичь? Я использую:

Индикатор переключения звука версии 2.3.4, написанный Дмитрием Канном для этой цели.

sudo apt-add-repository ppa:yktooo/ppa
sudo apt-get update
sudo apt-get install indicator-sound-switcher

Поэтому переключение у меня просто работает отлично, кроме того, что качество звука не так идеально в HSP/HFP, как с a2dp. И самое разочаровывающее для меня то, что мне всегда приходится вручную переключать на:

Вход: Гарнитура > Передний микрофон
Выход: Гарнитура > Наушники

как было указано выше, что очень раздражает.

Я пытаюсь установить стандартные входные и выходные данные для профиля: Аудио-шлюз для гарнитуры (HSP/HFP) в течение двух дней, но до сих пор не нашел решение.

Так что, с этой ручной переключкой, возможно, ваш телефон отправляет и принимает звук хорошо (как и мой). Но мы все равно страдаем от того, что приходится вручную переключать вход микрофона и выход звука на наушники.

Ответ или решение

Как переключить телефон на Headset Audio Gateway (HSP/HFP) в PulseAudio

Введение

При использовании Bluetooth-соединения для передачи аудиосигнала между вашим телефоном и Raspberry Pi, работающим под управлением Ubuntu 20, вы, вероятно, столкнулись с задачей переключения профиля с A2DP на HSP/HFP для поддержки голосовых вызовов. Это руководство поможет вам разобраться в процессе переключения профилей и устранения возможных проблем.

Подготовка к работе

Для начала убедитесь, что все необходимые пакеты установлены:

  • BlueZ версии 5.54
  • PulseAudio версии 13.99.1
  • oFono версии 1.31

Также убедитесь, что ваш Bluetooth-адаптер работает корректно и ваш телефон успешно подключен.

Проверка доступных профилей

Для проверки текущих настроек используйте:

pactl list cards

Эта команда покажет доступные профили для вашего Bluetooth-устройства. Например:

Profiles:
    a2dp_source: High Fidelity Capture (A2DP Source) (sinks: 0, sources: 1, priority: 20, available: yes)
    headset_audio_gateway: Headset Audio Gateway (HSP/HFP) (sinks: 1, sources: 1, priority: 10, available: no)
    off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
Active Profile: off

Обратите внимание на статус профиля HSP/HFP. Если он помечен как available: no, это означает, что PulseAudio не может использовать его.

Настройка PulseAudio

Для настройки автоматического переключения между профилями вам нужно изменить файл конфигурации PulseAudio. Откройте его с помощью любого текстового редактора, например, vim:

sudo vim /etc/pulse/default.pa

В файле найдите секцию, которая загружает модули Bluetooth, и добавьте следующую строку:

load-module module-bluetooth-policy auto_switch=2

Таким образом, секция будет выглядеть следующим образом:

.ifexists module-bluetooth-discover.so
load-module module-bluetooth-policy auto_switch=2
load-module module-bluetooth-discover headset=ofono
.endif

Эта строка отвечает за автоматическое переключение профиля при изменении условий (например, входящий вызов).

Установка oFono

Убедитесь, что oFono запущен и настроен правильно. Если вы еще этого не сделали, выполните команду для активации oFono:

sudo systemctl start ofono

Устранение проблем с переключением

Если ваш телефон по-прежнему не переключается на HSP/HFP, возможно, вам нужно вручную изменить профиль в настройках PulseAudio. Для этого установите pavucontrol, графический интерфейс для управления звуком:

sudo apt-get install pavucontrol

После установки откройте pavucontrol и перейдите на вкладку Configuration. Выберите профиль Headset Audio Gateway (HSP/HFP) для вашего устройства.

Рекомендации по улучшению работы

Если вы сталкиваетесь с проблемами, связанными с качеством звука или необходимостью вручную переключать входные и выходные устройства, вы можете установить индикатор переключения звука. Для установки используйте:

sudo add-apt-repository ppa:yktooo/ppa
sudo apt-get update
sudo apt-get install indicator-sound-switcher

Этот инструмент облегчит управление профилями и может уменьшить необходимость ручного переключения.

Заключение

Переключение между профилями A2DP и HSP/HFP в PulseAudio на Raspberry Pi может быть сложной задачей. Однако, следуя вышеприведённым инструкциям и правильно настраивая ваше оборудование, вы сможете добиться желаемой функциональности. Если у вас возникнут дальнейшие проблемы, рассмотрите возможность обращения к документации на официальных страницах PulseAudio и oFono, а также на форумах сообщества Ubuntu.

Оцените материал
Добавить комментарий

Капча загружается...