今天我想出了一個很酷的技巧,可以更好地利用你的隔離時間。 您知道可以將 Linux PC 用作手機的藍牙揚聲器嗎?不要做?沒問題! 了解如何將 Linux PC 變成手機的藍牙揚聲器。如果您還不知道,您可以在手機上播放音頻或視頻文件,並通過藍牙在筆記本電腦或台式機上收聽 脈衝音頻..更簡單地說,您可以使用 Pulseaudio 和藍牙將聲音從手機重定向到計算機。

內容

  1. 先決條件
  2. 在 Linux 上安裝 Bluez
  3. 在 Linux 上安裝 Pulseaudio
  4. 將您的 Linux PC 與您的手機配對
  5. 將您的 Linux PC 變成手機的藍牙揚聲器
    1. Pulseaudio 故障排除

先決條件

顯然,您需要支持藍牙的手機和 Linux PC(台式機或筆記本電腦)。 運行 GNU/Linux 的 PC 必須具備藍牙硬件功能,即藍牙接收器和發射器。

我在運行 Ubuntu 18.04 LTS 的戴爾筆記本電腦和較舊的惠普平板電腦上對此進行了測試。

首先,確保您已安裝它 蘭茨, 脈衝音頻 什麼時候 脈衝音頻藍牙模塊 在 Linux 系統上。大多數 Linux 發行版都預裝了這些工具。如果還不夠,請按如下方式安裝。

在 Linux 上安裝 Bluez

在 Arch Linux 及其變體上安裝 Bluez:

$ sudo pacman -S bluez

對於 Debian 和 Ubuntu:

$ sudo apt install bluez

對於 Fedora、CentOS、RHEL:

$ sudo dnf install bluez

再次,

$ sudo yum install bluez

對於 openSUSE:

$ sudo zypper install bluez

安裝 Bluez 後,確保藍牙服務已啟動並在啟動時啟用。

$ sudo systemctl start bluetooth
$ sudo systemctl enable bluetooth

要檢查藍牙狀態,請運行以下命令:

$ systemctl status bluetooth

在 Linux 上安裝 Pulseaudio

脈衝音頻 是通過 freedesktop.org 項目分發的開源跨平台支持 Web 的聲音服務器程序。 它支持 Linux 和各種 BSD 發行版,例如 FreeBSD、OpenBSD 和 macOS。 Pulseaudio 在大多數 Linux 發行版的默認存儲庫中都可用。 要通過藍牙啟用播放,您需要安裝 pulseaudio 藍牙模塊。

要在 Arch Linux 上安裝 Pulseaudio 和其他所需程序,請運行以下命令:

$ sudo pacman -S pulseaudio pavucontrol pulseaudio-bluetooth

對於 Debian、Ubuntu 和 Linux Mint,只需運行以下命令:

$ sudo apt install pulseaudio pulseaudio-utils pavucontrol pulseaudio-module-bluetooth

對於 Fedora:

$ sudo dnf install pulseaudio pulseaudio-utils pavucontrol pulseaudio-module-bluetooth

在 CentOS、RHEL 上:

$ sudo yum install pulseaudio pulseaudio-utils pavucontrol pulseaudio-module-bluetooth

對於 openSUSE:

$ sudo zypper install pulseaudio pulseaudio-utils pavucontrol pulseaudio-module-bluetooth

將您的 Linux PC 與您的手機配對

確保您的手機已與您的 PC 配對。 藍牙配對非常簡單!你可能做了很多次。

在您的手機和 Linux 系統上打開藍牙。

在安卓設備上[設定]從窗口打開藍牙。

在您的 Android 手機上打開藍牙

在 Ubuntu GNOME 中,您可以從系統設置中打開藍牙。

在 Ubuntu 上打開藍牙

當兩個設備上的藍牙都打開時,它將開始掃描最近的藍牙設備並列出它們。 在 Linux PC 上,只需單擊一下即可配對設備。

在 Ubuntu 上配對藍牙設備

在 Ubuntu 上配對藍牙設備

您將在手機上看到相同的藍牙 PIN。只需點擊 一對 與 Linux PC 配對。

Android 上的藍牙配對

Android 上的藍牙配對

當手機與 Ubuntu PC 配對時,在藍牙部分[デバイス]它將顯示在選項卡上。

通過藍牙將您的 Android 手機與 Ubuntu 配對

通過藍牙將您的 Android 手機與 Ubuntu 配對

再次,Linux PC 在電話中[ペアリングされたデバイス]在選項卡中列出。

通過藍牙將您的 Ubuntu PC 與您的 Android 手機配對

通過藍牙將您的 Ubuntu PC 與您的 Android 手機配對

兩台設備現已配對並可以使用。

將您的 Linux PC 變成手機的藍牙揚聲器

在我的 Ubuntu 18.04 桌面上,它開箱即用。實際上不需要任何設置!我剛安裝 “脈衝音頻模塊藍牙” 當我把它放在包裡並將手機與電腦配對時,我可以立即從筆記本電腦聽到手機上播放的音樂。您可以通過移動設備或計算機調節音量。 我認為 Pusleaudio 負責幕後的一切。 脈衝音頻很棒!

如果由於某種原因它不能開箱即用,請創建以下文件: ~/.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

保存並關閉文件。使用命令重新啟動藍牙服務以使更改生效。

$ sudo systemctl restart bluetooth

您可以直接編輯“/etc/pulse/system.pa”文件進行更改。但強烈推薦 不要編輯系統範圍的配置文件但是,編輯用戶。這就是為什麼你需要創建 “~/.config/脈衝” 創建一個目錄,將系統配置文件複製到該目錄,並根據需要進行編輯。不是完美的副本。 ~/.config/pulse/default.pa 文件可能以下面一行開頭 “.include /etc/pulse/default.pa” 然後覆蓋默認值。通過這種方式,您可以避免將來的 pulseaudio 更新出現問題。

Pulseaudio 故障排除

我能夠在沒有任何額外設置的情況下快速將我的筆記本電腦變成藍牙揚聲器,但音頻播放很糟糕而且斷斷續續。是的,我能聽到聲音,但很煩人。

首先,確保藍牙播放配置文件設置為 A2DP(高保真播放)..為此,請打開 Pulseaudio 音量控制 (P)avucontrol) 從破折號或菜單。下一個,[Configuration]部分的[Profile]從下拉框中[High Fidelity Capture(A2DP Source)]選擇。

選擇高保真捕獲(A2DP 源)

選擇高保真捕獲(A2DP 源)

接下來,您需要設置正確的緩衝區大小(延遲)。 如果藍牙聲音斷斷續續、失真,這可能是由於 A2DP 的實現以及聲音在編碼前的緩衝方式造成的。更改了緩衝區大小以修復音頻中斷。

首先,使用以下命令查找藍牙設備名稱及其端口:

$ 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

正如您在上面的輸出中看到的,藍牙設備的名稱是: “bluez_card.7C_D3_0A_0B_D6_30” 港口是 “掛斷”..緩衝區大小(延遲)為 0..

使用以下命令設置緩衝區大小(延遲)。

$ pactl set-port-latency-offset bluez_card.7C_D3_0A_0B_D6_30 phone-output 125000

這裡我們使用 125ms 的緩衝區。你可以設置自己適合你。也可以使用上面的命令更改名稱和端口值。

然後使用以下命令重新啟動藍牙服務:

$ sudo systemctl restart bluetooth

或者,重新啟動系統。現在音頻中斷問題消失了。 我遵循了 AskUbuntu、LinuxMint 和 ArchWiki 論壇中提到的一些變通方法(鏈接附在末尾)。但上述解決方案只解決了我的問題。

以下是用戶可能建議解決藍牙音頻問題的其他解決方案:

解決方案1:

編輯 ALSA 配置文件。

$ sudo nano /etc/modprobe.d/alsa-base.conf

最後添加以下行:

options snd-hda-intel model=generic

僅當運行 GNU/Linux 的 PC 的主聲卡是 HDA Intel 設備(通常在主板上)時,此設置才相關。如果主聲卡是其他設備,例如 Creative、Terratech、VIA,則不會發生任何事情。謝謝您的意見 布賴恩..

保存並關閉文件。重新啟動系統。

解決方案 2: 解決方案 2:

這是由 Linux Mint 論壇的用戶提出的。

編輯文件 ~/.config/pulse/system.pa

$ sudo ~/.config/pulse/system.pa

添加以下行。

load-module module-udev-detect tsched=0

保存並關閉文件。重新啟動系統。

推薦閱讀:

  • KDE Con​​nect – 從您的 Android 設備訪問文件和通知

如果有幫助。

資源:

  • /r/linux/
  • 問 Ubuntu 論壇
  • Linux Mint 論壇

藍牙 藍牙音箱 藍牙提示 Linux Linux 提示 移動提示 Pulseaudio