Превратите свой компьютер с Linux в Bluetooth-динамики для вашего телефона
Знаете ли вы, что можете использовать свой компьютер с Linux в качестве динамиков Bluetooth для своего мобильного телефона? Нет? Без проблем! Я объясню, как превратить ваш компьютер с Linux в динамики Bluetooth для телефона.
Если вы еще не знаете, аудио- или видеофайлы можно воспроизводить на нашем телефоне и слушать их на ноутбуке или настольном компьютере через Bluetooth с помощью Pulsaudio.
Проще говоря, мы можем перенаправить звук с мобильного телефона на компьютер с помощью Pulsaudio и Bluetooth.
Предварительные условия
Очевидно, что у вас должен быть мобильный телефон с поддержкой Bluetooth и ПК с Linux (настольный компьютер или ноутбук). Компьютер под управлением GNU/Linux должен иметь аппаратные возможности Bluetooth, то есть приемник и передатчик Bluetooth.
Я протестировал это руководство на своем ноутбуке DELL с Ubuntu 18.04 LTS и старом планшетном ПК HP.
Сначала убедитесь, что в вашей системе Linux установлены Bluez, Pulsaudio и pulseaudio Bluetooth. В большинстве дистрибутивов Linux эти инструменты уже установлены. На всякий случай, если они отсутствуют, установите их, как показано ниже.
Установите Bluez в Linux
Чтобы установить Bluez в Arch Linux и его вариантах, запустите:
sudo pacman -S bluez
В Дебиане, Убунту:
sudo apt install bluez
В Fedora, CentOS, RHEL:
sudo dnf install bluez
Или,
sudo yum install bluez
В openSUSE:
sudo zypper install bluez
После установки Bluez убедитесь, что служба Bluetooth запущена и включена при загрузке.
sudo systemctl start bluetooth
sudo systemctl enable bluetooth
Чтобы проверить статус Bluetooth, запустите:
systemctl status bluetooth
Установите Pulsaudio в Linux
PulseAudio — это кроссплатформенная программа звукового сервера с возможностью подключения к сети с открытым исходным кодом, распространяемая через проект freedesktop.org.
Он поддерживает Linux и различные дистрибутивы BSD, такие как FreeBSD и OpenBSD, macOS. Pulsaudio доступен в репозиториях по умолчанию большинства дистрибутивов Linux.
Чтобы включить воспроизведение через Bluetooth, необходимо установить Bluetooth-модуль PulseAudio.
Запустите следующую команду, чтобы установить Pulsaudio и другие необходимые программы в Arch Linux и его вариантах, таких как EndeavourOS и Manjaro Linux:
sudo pacman -S pulseaudio pavucontrol pulseaudio-bluetooth
В Debian, Ubuntu и Linux Mint просто запустите:
sudo apt install pulseaudio pulseaudio-utils pavucontrol pulseaudio-module-bluetooth
Fedora, RHEL 8, AlmaLinux 8, Rocky Linux 8:
sudo dnf install pulseaudio pulseaudio-utils pavucontrol pulseaudio-module-bluetooth
CentOS 7.x., RHEL 7.x:
sudo yum install pulseaudio pulseaudio-utils pavucontrol pulseaudio-module-bluetooth
openSUSE:
sudo zypper install pulseaudio pulseaudio-utils pavucontrol pulseaudio-module-bluetooth
Подключите ПК с Linux к мобильному телефону.
Убедитесь, что мобильный телефон сопряжен с вашим ПК. Сопряжение по Bluetooth очень простое! Вероятно, вы делали это уже много раз.
Включите Bluetooth на своем мобильном телефоне и в системе Linux.
На устройстве Android включите Bluetooth в окне настроек.
Включите Bluetooth на телефоне Android
В Ubuntu GNOME Bluetooth можно включить в настройках системы.
Включите Bluetooth в Ubuntu
После включения Bluetooth на обоих устройствах они начнут искать ближайшие устройства Bluetooth и составлять их список. На ПК с Linux просто нажмите на устройство, чтобы выполнить его сопряжение.
Подключить Bluetooth-устройство в Ubuntu
Вы должны увидеть тот же PIN-код Bluetooth на своем мобильном телефоне. Просто нажмите Подключить, чтобы выполнить сопряжение с ПК с Linux.
Сопряжение по Bluetooth в Android
Как только мобильный телефон будет сопряжен с вашим ПК с Ubuntu, вы увидите их на вкладке «Устройства» в разделе Bluetooth.
Подключите телефон Android к Ubuntu через Bluetooth
Аналогичным образом вы увидите, что ваш компьютер с Linux указан на вкладке сопряженных устройств вашего мобильного телефона.
Сопряжение ПК Ubuntu с телефоном Android через Bluetooth
Теперь оба устройства сопряжены и готовы к использованию!
Превратите свой компьютер с Linux в Bluetooth-колонки для вашего телефона
На моем рабочем столе Ubuntu 18.04 все работало нормально. На самом деле никакой настройки не требуется!
Я установил пакет «pulseaudio-module-bluetooth», соединил свой телефон с компьютером, и я могу мгновенно слушать музыку, играющую на телефоне, со своего ноутбука.
Я мог регулировать громкость как с мобильного устройства, так и с компьютера. Думаю, Пуслеаудио позаботился обо всем за кулисами. Пульсаудио - это круто!
Если по какой-либо причине это не работает «из коробки», создайте файл с именем ~/.config/pulse/system.pa:
mkdir ~/.config/pulse/
nano ~/.config/pulse/system.pa
Добавьте в него следующие строки:
.include /etc/pulse/system.pa
load-module module-bluetooth-policy
load-module module-bluetooth-discover
Сохраните и закройте файл. Перезапустите службу Bluetooth, чтобы изменения вступили в силу, используя команду:
sudo systemctl restart bluetooth
Вы можете напрямую редактировать файл «/etc/pulse/system.pa» и вносить изменения. Однако настоятельно рекомендуется не редактировать общесистемные файлы конфигурации, а редактировать пользовательские.
Вот почему вам следует создать каталог "~/.config/pulse", затем скопировать в него файлы конфигурации системы и отредактировать их в соответствии с вашими потребностями.
Вместо полной копии файл ~/.config/pulse/default.pa может начинаться со строки ».include /etc/pulse/default.pa», а затем просто переопределять значения по умолчанию. Таким образом, мы сможем избежать проблем при обновлении PulseAudio в будущем.
Устранение неполадок
Несмотря на то, что я мог бы мгновенно превратить свой ноутбук в динамики Bluetooth без каких-либо дополнительных настроек, воспроизведение звука ужасное и сильно заикается. Да, звук можно слушать, но это раздражает.
Сначала убедитесь, что для профиля воспроизведения Bluetooth установлено значение A2DP (высококачественное воспроизведение).
Для этого откройте регулятор громкости Pulsaudio (Pavucontrol) из Dash или меню. И выберите «Высококачественный захват (источник A2DP)» в раскрывающемся списке профиля в разделе «Конфигурация».
Выберите захват с высокой точностью (источник A2DP)
Далее вам необходимо установить правильный размер буфера (задержку). Если звук Bluetooth прерывистый, прерывистый и искаженный, это может быть вызвано реализацией A2DP и тем, как она буферизует звук перед его кодированием.
Я просто изменил размер буфера, чтобы решить проблему заикания звука.
Сначала найдите имя устройства Bluetooth и его порт с помощью команды:
pactl list | grep -Pzo '.*bluez_card(.*\n)*'
Пример вывода:
Name: bluez_card.7C_D3_0A_0B_D6_30
Driver: module-bluez5-device.c
Owner Module: 36
Properties:
device.description = "HP 7 VoiceTab"
device.string = "7C:D3:0A:0B:D6:30"
device.api = "bluez"
device.class = "sound"
device.bus = "bluetooth"
device.form_factor = "phone"
bluez.path = "/org/bluez/hci0/dev_7C_D3_0A_0B_D6_30"
bluez.class = "0x5a020c"
bluez.alias = "HP 7 VoiceTab"
device.icon_name = "audio-card-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: a2dp_source
Ports:
phone-output: Phone (priority: 0, latency offset: 0 usec, not available)
Part of profile(s): headset_audio_gateway
phone-input: Phone (priority: 0, latency offset: 0 usec, available)
Part of profile(s): a2dp_source, headset_audio_gateway
Как видно из приведенного выше вывода, имя устройства Bluetooth — "bluez_card.7C_D3_0A_0B_D6_30", а порт — "phone-output". А размер буфера (задержка) равен 0.
Установите размер буфера (задержку) с помощью команды:
pactl set-port-latency-offset bluez_card.7C_D3_0A_0B_D6_30 phone-output 125000
Здесь я использую буфер длительностью 125 миллисекунд. Вы можете установить свой собственный, который подойдет именно вам. Также измените значения имени и порта в приведенной выше команде.
Теперь перезапустите службу Bluetooth с помощью команды:
sudo systemctl restart bluetooth
Или перезагрузите систему. Проблема с заиканием звука к настоящему времени должна исчезнуть.
Я воспользовался некоторыми другими обходными путями, упомянутыми на форумах AskUbuntu, LinuxMint и ArchWiki (ссылки прилагаются в конце). Но приведенное выше решение только решило мою проблему.
Вот некоторые другие решения, предложенные пользователями для устранения проблемы со звуком через Bluetooth.
Решение 1:
Отредактируйте файл конфигурации ALSA:
sudo nano /etc/modprobe.d/alsa-base.conf
Добавьте в конце следующую строку:
options snd-hda-intel model=generic
Этот параметр имеет значение только в том случае, если основная звуковая карта на ПК под управлением GNU/Linux является устройством HDA Intel (обычно на материнской плате).
Ничего не получится, если основной звуковой картой является какое-то другое устройство, например Creative, Terratech, VIA и т. д. Спасибо за отзыв, Mr.Bryan.
Сохраните и закройте файл. Перезагрузите систему.
Решение 2:
Это было предложено пользователем на форуме Linux Mint.
Отредактируйте файл ~/.config/pulse/system.pa:
sudo ~/.config/pulse/system.pa
Добавьте следующую строку:
load-module module-udev-detect tsched=0
Сохраните и закройте файл. Перезагрузите систему.
Рекомендуется прочитать:
- KDE Connect — доступ к файлам и уведомлениям с устройств Android
Надеюсь это поможет.
Ресурсы:
- /r/linux/
- Форум AskUbuntu
- Форум LinuxMint