[Share Experiences] 简单几步为UOS/deepin添加蓝牙LDAC、aptX HD等音频编码支持
Tofloor
poster avatar
zizdong
deepin
Forum Operations
2023-06-01 00:42
Author
本文转载自:老虎会游泳 虎绿林

UOS的蓝牙音频(A2DP)默认只支持SBC音频编码,音质很一般。现在很多蓝牙耳机都支持LDAC、aptX HD、aptX、AAC等高音质音频编码,虽然UOS默认不支持,但我们可以自行添加。

方案来自开源项目 https://github.com/EHfive/pulseaudio-modules-bt/wiki/Packages#ubuntu-1804-1810-1904
原文是适用于Ubuntu的安装方法,我在此改成适用于UOS 20的安装方法。此方法应该也适用于Deepin v20,不过我没有测试过。

安装步骤:

1.仅UOS需要,Deepin不需要:打开开发者模式(“控制中心 > 通用 > 开发者模式”)。
2.打开终端,输入如下命令并回车(添加蓝牙音频编码器软件源):

echo 'deb http://ppa.launchpad.net/eh5/pulseaudio-a2dp/ubuntu bionic main' | sudo tee /etc/apt/sources.list.d/pulseaudio-a2dp.list

此时会提示你输入密码,输入你的UOS开机密码即可。输入时不会显示任何内容,这是正常现象,输完回车即可。

3.继续在终端输入如下命令,一行一行粘贴并回车(不包括 # 井号开头的行):

# 信任刚添加的软件源(获取证书) sudo apt-key adv --keyserver keyserver.ubuntu.com --recv A45582EC25E9D8E6

# 更新软件列表 sudo apt update

# 升级现有的蓝牙音频组件

sudo apt upgrade -y

# 安装支持LDAC、aptXX HD、aptX、AAC蓝牙音频解码器的音频组件

sudo apt install -y pulseaudio libavcodec58 libldac pulseaudio-modules-bt pavucontrol

ppa.launchpad.net 的服务器位于国外,如果命令下载文件的速度很慢,或者命令报错(比如“部分索引文件下载失败”),你可能需要自行采取措施。
UOS自带了 proxychains4 命令,你可以考虑使用。

4.重启电脑,连接蓝牙耳机,然后你会发现在音量控制面板选不了蓝牙耳机,或者只能选择低音质的HFP(免提通话)模式。这是正常现象。
5.在应用列表中找到新增的“PulseAudio音量控制”并打开。然后切换到“配置”选项卡,把其他声音输出设备都选为“关”,然后把耳机选为其中一个“A2DP Sink”即可。不同的“A2DP Sink”音质如下:LDAC > aptX HD > aptX > AAC > SBC >> HSP/HFP。

如果无法关闭板载声卡,可以先点击Deepin任务栏上的音量图标,然后选一下耳机(如果有),然后板载声卡应该就能关闭了。如果还是无法关闭,试试在输出设备那里把蓝牙耳机选为默认,这样板载声卡不关应该也行。

1.png

2.png

3.png

6.耳机无法通过Deepin音量滑块调音量,这是正常现象。你可以直接通过耳机按键调音量。如果耳机没有音量调整按键,你可以通过“PulseAudio音量控制”应用调音量。

4.png

电脑作为手机扬声器

通过上面的方法安装解码器之后,电脑实际上也具有了蓝牙音频接收功能。手机打开蓝牙配对功能,然后让电脑和手机配对,配对完成后手机就可以把电脑当做蓝牙音箱,播放音频到电脑上了。

我测试发现必须电脑发起配对才会成功,手机发起配对不会成功,电脑不会主动显示有配对请求。

5.jpg

6.jpg

可以看到我的手机已经连接上电脑,电脑正在做为手机的蓝牙音箱,并且使用了音质较高的aptX HD编码。

需要说明的是,电脑不支持LDAC解码,因为索尼只开源了LDAC的编码器,没有开源解码器。所以电脑只能在连接到索尼耳机时使用LDAC,在手机连接到自己时不能使用LDAC。

如果电脑和手机都没声音,注意在电脑上选一下播放设备,选择音箱即可。

7.png

没声音的原因是,电脑上虽然可以看到手机作为音频播放设备和录音设备,但实际上无法使用。配对完成后电脑默认选择了手机作为音频输入输出设备,所以此时手机和电脑都没有声音。不过,只要电脑选择了其他音频输出设备,就再也无法选回手机了(点击后蓝点不会停留在Phone选项上)。至于音频输入设备,倒是可以选手机,但是录出来的音频是手机播放的音乐,不是手机麦克风录到的内容。

电脑和手机同时在一个蓝牙耳机里播放音乐!

注意:能不能做到取决于你电脑的蓝牙模块能否同时连接两个蓝牙设备。有的蓝牙模块完全不能连接两个设备,有的蓝牙模块虽然可以,但是播放时会有巨大的杂音。

至于方法嘛,也很简单。电脑先和手机配对,然后再和蓝牙耳机配对。然后电脑再把播放设备选为蓝牙耳机。

8.png

此时,手机的播放设备是电脑,电脑的播放设备是蓝牙耳机。这样一来,手机和电脑上播放的音频就都会出现在蓝牙耳机里了。

我已经用小米10Pro、华硕天选FA506、索尼WH-1000XM3成功实现了这个结果。手机播放时音质似乎有点损失,但不严重,可接受。电脑播放时音质完全没有改变。整体效果非常好。😏

不过如果反复连接或者断开设备,有时候播放会变成噪音。此时需要彻底关闭电脑蓝牙再重连才行。

Reply Favorite View the author
All Replies
蘑菇蘑菇
deepin
2023-06-01 00:46
#1

applaud

Reply View the author
阿尼樱奈奈
Moderator
2023-06-01 00:48
#2

感谢分享。

Reply View the author
neko
Moderator
2023-06-01 01:16
#3

Mark了

Reply View the author
catubibu
deepin
2023-06-01 01:44
#4

装好了,谢谢,

我的蓝牙音响似乎听不出几个不同编码的区别,音源是网易云😂

Reply View the author
青稚°
Moderator
2023-06-01 02:09
#5

好,等会联系zizdong给你加精。like

Reply View the author
阿尼樱奈奈
Moderator
2023-06-01 02:43
#6
青稚°

好,等会联系zizdong给你加精。like

自己给自己加精joy

Reply View the author
jjcui8595
Moderator
2023-06-01 03:05
#7

收藏了

Reply View the author
昨夜的星辰
deepin
2023-06-01 05:22
#8

以前折腾过,没成功,希望这次能搞定

Reply View the author
Amber
deepin
2023-06-01 06:23
#9

like

Reply View the author
昨夜的星辰
deepin
2023-06-01 09:18
#10

折腾了一晚上,可以实现AAC连接,蓝牙连接容易出问题,最后把软件版本退回去了,不过音箱死活连不上了,键盘可以

UOS,最后无奈回退系统了,目前也不知道算是什么协议了

* index: 2
        name: 
        driver: 
        flags: HARDWARE DECIBEL_VOLUME LATENCY 
        state: RUNNING
        suspend cause: (none)
        priority: 9650
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
                balance 0.00
        base volume: 65536 / 100% / 0.00 dB
        volume steps: 65537
        muted: no
        current latency: 41.23 ms
        max request: 2 KiB
        max rewind: 0 KiB
        monitor source: 2
        sample spec: s16le 2ch 44100Hz
        channel map: front-left,front-right
                     Stereo
        used by: 1
        linked by: 2
        fixed latency: 39.51 ms
        card: 2 
        module: 23
        properties:
                bluetooth.protocol = "a2dp_sink"
                device.description = "小爱音箱-0502"
                device.string = "8C:DE:F9:1A:15:25"
                device.api = "bluez"
                device.class = "sound"
                device.bus = "bluetooth"
                device.form_factor = "hifi"
                bluez.path = "/org/bluez/hci0/dev_8C_DE_F9_1A_15_25"
                bluez.class = "0x040428"
                bluez.alias = "小爱音箱-0502"
                device.icon_name = "audio-card-bluetooth"
        ports:
                hifi-output: HiFi (priority 0, latency offset 0 usec, available: yes)
                        properties:

        active port: 

Reply View the author
昨夜的星辰
deepin
2023-06-01 09:20
#11
昨夜的星辰

折腾了一晚上,可以实现AAC连接,蓝牙连接容易出问题,最后把软件版本退回去了,不过音箱死活连不上了,键盘可以

UOS,最后无奈回退系统了,目前也不知道算是什么协议了

* index: 2
        name: 
        driver: 
        flags: HARDWARE DECIBEL_VOLUME LATENCY 
        state: RUNNING
        suspend cause: (none)
        priority: 9650
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
                balance 0.00
        base volume: 65536 / 100% / 0.00 dB
        volume steps: 65537
        muted: no
        current latency: 41.23 ms
        max request: 2 KiB
        max rewind: 0 KiB
        monitor source: 2
        sample spec: s16le 2ch 44100Hz
        channel map: front-left,front-right
                     Stereo
        used by: 1
        linked by: 2
        fixed latency: 39.51 ms
        card: 2 
        module: 23
        properties:
                bluetooth.protocol = "a2dp_sink"
                device.description = "小爱音箱-0502"
                device.string = "8C:DE:F9:1A:15:25"
                device.api = "bluez"
                device.class = "sound"
                device.bus = "bluetooth"
                device.form_factor = "hifi"
                bluez.path = "/org/bluez/hci0/dev_8C_DE_F9_1A_15_25"
                bluez.class = "0x040428"
                bluez.alias = "小爱音箱-0502"
                device.icon_name = "audio-card-bluetooth"
        ports:
                hifi-output: HiFi (priority 0, latency offset 0 usec, available: yes)
                        properties:

        active port: 

命令是 pacmd list-sinks 普通用户就可以

Reply View the author
catubibu
deepin
2023-06-01 16:54
#12
昨夜的星辰

命令是 pacmd list-sinks 普通用户就可以

截图_选择区域_20230601085505.png
一样,蓝牙音箱,puselaudio设置LDAC或其它,其实还是AAC,没变,估计音源和解码硬件都不灵

Reply View the author
昨夜的星辰
deepin
2023-06-01 17:20
#13
catubibu

截图_选择区域_20230601085505.png
一样,蓝牙音箱,puselaudio设置LDAC或其它,其实还是AAC,没变,估计音源和解码硬件都不灵

我这个是可以支持LHDC的,目前是两个小爱音箱ART组的立体声,现在也不知道蓝牙用的啥协议了😂
截图_选择区域_20230601091648.png

Reply View the author
catubibu
deepin
2023-06-01 20:53
#14
昨夜的星辰

我这个是可以支持LHDC的,目前是两个小爱音箱ART组的立体声,现在也不知道蓝牙用的啥协议了😂
截图_选择区域_20230601091648.png

换了个耳机, 这回成了,看来就是蓝牙硬件的问题

used by: 1
linked by: 5
fixed latency: 30.33 ms
card: 8
module: 49
properties:
bluetooth.protocol = "a2dp_sink"
bluetooth.a2dp_codec = "LDAC"
device.description = "EDIFIER NeoBuds Pro"
device.string = "0C:AE:BD:80:3E:63"
device.api = "bluez"
device.class = "sound"
device.bus = "bluetooth"
device.form_factor = "headset"
bluez.path = "/org/bluez/hci0/dev_0C_AE_BD_80_3E_63"
bluez.class = "0x240404"
bluez.alias = "EDIFIER NeoBuds Pro"
device.icon_name = "audio-headset-bluetooth"
device.intended_roles = "phone"
ports:
headset-output: Headset (priority 0, latency offset 0 usec, available: yes)
properties:

    active port: 
Reply View the author
昨夜的星辰
deepin
2023-06-03 04:48
#15

前面搞的没办法重置系统了

我用手机试了下,小爱音箱支持AAC和LHDC,LDAC可能不支持,不管了

正常连上播放音乐发送速度也有40+KB/s,算过去就是有320Kbps的码率,就算是SBC编码也够听了

UOS这里就不折腾了,还是老老实实用吧😂

这次重置还是有点小问题的,学习强国没了,极点五笔也没了,以后再慢慢折腾吧
截图_blueman-manager_20230602204344.png

Reply View the author
catubibu
deepin
2023-06-04 06:51
#16
昨夜的星辰

前面搞的没办法重置系统了

我用手机试了下,小爱音箱支持AAC和LHDC,LDAC可能不支持,不管了

正常连上播放音乐发送速度也有40+KB/s,算过去就是有320Kbps的码率,就算是SBC编码也够听了

UOS这里就不折腾了,还是老老实实用吧😂

这次重置还是有点小问题的,学习强国没了,极点五笔也没了,以后再慢慢折腾吧
截图_blueman-manager_20230602204344.png

今天把pulseaudio给歇了,HD aduio不是我的设备的要求,那个无线耳机不会跟桌面组合。

用pusle的问题在蓝牙音响和USB mic的耳机不可协调,USB MIC相当一个外置USB 声卡, 输入没问题,但是输出怎么都调不出来,歇了pusle用系统来切换输出就没问题。

换了deepin就是没事儿瞎整不是么?反正比win皮实多了。

Reply View the author
austin_chow888
deepin
2023-07-12 04:27
#17

软件已经安装好了 如何把刚刚添加的源删除干净

Reply View the author
austin_chow888
deepin
2023-07-12 16:07
#18
青稚°

好,等会联系zizdong给你加精。like

软件已经安装了 如何把刚刚添加的源删除干净啊 里面的源有密钥

Reply View the author
dgmenghuan
deepin
2023-07-18 17:50
#19

tail

Reply View the author
小庄佩奇
deepin
2023-08-26 07:47
#20

实测搞完。。pulseAudio这边修改不起作用。。还是收音机音质

Reply View the author