A2DP bluetooth не работает на 16.04 [дубликат]

У меня есть хороший аудиоприемник bluetooth, подключенный к моей HiFi стереосистеме, и я мог подключить его в 14.04 как A2DP-выход с хорошим качеством.

После обновления до 16.04 устройство подключается только как гарнитура, а при попытке переключить его в режим A2DP, я получаю эту ошибку в syslog:

May 21 11:35:50 RRyS pulseaudio[6159]: [pulseaudio] module-bluez5-device.c: Refused to switch profile to a2dp_sink: Not connected

и качество звука низкое. Как я могу это исправить?

30
задан 21 May 2016 в 13:32

3 ответа

По этому поводу открыто несколько ошибок, проверьте, например, этот (запущен в 15.05) и этот другой, довольно старый ; причины в целом не совсем понятны.

Перед тем, как приступить к изменению системных файлов, вы также можете проверить Нет звука в динамике Bluetooth в Ubuntu 16.04 (кажется, другая ошибка) и Bluetooth A2DP не работает в 16.04 (решено в комментарии по обновлению ядра).

У меня сработало следующее исправление --- спасибо пользователю RobertFM на панели запуска и SimFox3 на форумах Arch . Все следующие инструкции должны выполняться из корневой оболочки ( sudo -i ). Будьте осторожны и тройной контроль.

  1. Прежде всего, сделайте резервную копию этих файлов (как знать):

     cp /etc/bluetooth/audio.conf /etc/bluetooth/audio.conf.bak
    cp /etc/pulse/default.pa /etc/pulse/default.pa.bak
    cp / usr / bin / start-pulseaudio-x11 /usr/bin/start-pulseaudio-x11.bak
     
  2. Отредактируйте /etc/bluetooth/audio.conf и сделайте его похожим на этот:

     # Файл конфигурации для аудио службы
     # Этот раздел содержит параметры, не относящиеся ни к одному
     # конкретный интерфейс
     [Генеральный]
    Включить = шлюз, источник
    
     # Переключиться на главную роль для входящих подключений (по умолчанию true)
    Мастер = правда
    
     # Если мы хотим отключить поддержку определенных сервисов
     # По умолчанию поддерживаются все реализованные услуги
     # Отключить = шлюз, источник, сокет
    Отключить = сокет
    
     # Маршрутизация SCO.  Либо PCM, либо HCI (в этом случае звук направляется в / из ALSA)
     # По умолчанию HCI
     # SCORouting = HCI
    
     # Автоматически подключать профили A2DP и ​​HFP / HSP для входящих
     # соединений.  Некоторые гарнитуры, поддерживающие оба профиля, будут подключать только
     # другой автоматически, поэтому значение по умолчанию true обычно является хорошим
     # идея.
    AutoConnect = true
    
     # Параметры интерфейса гарнитуры (т.е. параметры, которые влияют на то, как
     # сервис взаимодействует с удаленными устройствами гарнитуры)
     [Гарнитура]
    
     # Установите значение true для поддержки HFP, false означает, что поддерживается только HSP
     # По умолчанию true
    HFP = истина
    
     # Максимальное количество подключенных устройств HSP / HFP на адаптер.  По умолчанию 1
    MaxConnected = 2
    
     # Установите значение true, чтобы разрешить использование режима быстрого подключения (более быстрое сканирование страниц)
     # для HFP при начале входящего вызова.  Настройки по умолчанию восстанавливаются после
     # вызов принят или отклонен.  Интервал сканирования страницы намного короче, а страница
     # тип развертки изменен на чересстрочный.  Это позволяет быстрее инициировать соединение
     # с помощью гарнитуры.
    FastConnectable = true
    
     # Просто пример возможных вариантов конфигурации для других интерфейсов
     # [A2DP]
     # SBCSources = 1
     # MPEG12Sources = 0
     
  3. Отредактируйте / etc / pulse / default.pa и закомментируйте строку

     # load-module module-bluetooth-discover
     

    (вам действительно нужно только добавить # в начале)

  4. Отредактируйте / usr / bin / start-pulseaudio-x11 и добавьте строку / usr / bin / pactl load-module module-bluetooth-discover после загрузки модуля module-x11-xsmp ; на практике вам следует отредактировать файл ближе к концу, чтобы он имел строфу вроде

     if [x "$ SESSION_MANAGER"! = x];  тогда
      / usr / bin / pactl load-module module-x11-xsmp "display = $ DISPLAY session_manager = $ SESSION_MANAGER"> / dev / null
      # добавьте сюда эту строку:
      / usr / bin / pactl модуль загрузки модуля-bluetooth-обнаружение
    фи
     
  5. Перезагрузка.

    Теперь вы можете настроить свое устройство на A2DP и ​​наслаждаться высококачественной музыкой:

    Sound settings

    Обратите внимание, что иногда вам нужно отключить и повторно подключить устройство, чтобы снова включить A2DP:

    Bluetooth devices

    .. Да, это масса ошибок. Но когда он работает, он работает прекрасно.

  6. Проблемы после перезагрузки

    После всего этого иногда кажется, что уловка срабатывает только после следующей перезагрузки. В таком случае попробуйте следовать ответу rmfought :

    Что мне подходит, так это подключить устройство bluetooth, переключиться на Режим HSP / HFP, отключение, повторное подключение и затем переключение в режим A2DP.

    ... у меня тоже работает (опять же, иногда). Мне даже однажды пришлось отменить сопряжение и повторно подключить ключ.

  7. Если это по-прежнему не работает ...

    Если это также не работает для вас, вы можете попробовать этот сценарий --- его автор держит его в актуальном состоянии свидание.

35
ответ дан 5 January 2021 в 22:41

Мне нравится подключать bluetooth-устройство, переключаться в режим HSP/HFP, отключать, переподключать, а затем переключаться в режим A2DP.

40
ответ дан 5 January 2021 в 22:41

Это не обязательно решение для те, кому нужен микрофон, но это работало для меня в Ubuntu 16.04:

sudo nano /etc/bluetooth/audio.conf

А затем добавьте Disable = Headset в [General] .

[General]
Disable=Headset

И перезапустите службу bluetooth

sudo service bluetooth restart

И все кредиты этому парню: https://jimshaver.net/2015/03/31/going-a2dp-only-on-linux/

5
ответ дан 5 January 2021 в 22:41

Другие вопросы по тегам:

Похожие вопросы: