我尝试将 Ubuntu 23.10 与 LG C2 电视连接,然后将声音从 LG 输出到 Ubuntu;我的 iPhone 也能正常工作,然后通过我的 Ubuntu 连接扬声器播放一些音乐。我用bluetoothctl
:
devices Paired
Device 20:28:BC:81:F8:D9 [LG] webOS TV OLED55C22LB
connect 20:28:BC:81:F8:D9
Attempting to connect to 20:28:BC:81:F8:D9
[CHG] Device 20:28:BC:81:F8:D9 Connected: yes
Connection successful
[CHG] Device 20:28:BC:81:F8:D9 ServicesResolved: yes
但后来我在 LG 的“蓝牙设备”菜单中看不到我的 Ubuntu 作为扬声器。
我应该怎么做才能解决这个问题?
实际上,为了让iPhone将音频输出到蓝牙,我首先要指定蓝牙连接的目标(即计算机)是扬声器。
PS:我使用pipewire、pipewire-pulse和wireplumber,效果很好
info 20:28:BC:81:F8:D9
Device 20:28:BC:81:F8:D9 (public)
Name: LG TV[[LG] webOS TV OLED55C22LB
Alias: LG TV[[LG] webOS TV OLED55C22LB
Class: 0x0008243c (533564)
Icon: audio-card
Paired: yes
Bonded: yes
Trusted: yes
Blocked: no
Connected: yes
LegacyPairing: no
UUID: Audio Source (0000110a-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: LG Electronics (0000feb9-0000-1000-8000-00805f9b34fb)
Modalias: bluetooth:v0046p1200d1436
ManufacturerData Key: 0x00c4 (196)
ManufacturerData Value:
02 34 15 13 17 fd 80 .4.....
我们可以手动设置设备类别:
将以下内容粘贴到
/etc/systemd/system/bluetooth-class-askubuntu-1504191-1004020.service
:sudo systemctl enable --now bluetooth-class-askubuntu-1504191-1004020.service
如果我们检查新的设备类,我们会发现它的服务类是渲染和音频,主要设备类是音频/视频,次要服务类是扬声器。我从我的罗技蓝牙扬声器中提取了这些数字,因此您的计算机将假装是相同的。
正常设置为
0x7C010C
,这意味着其服务类别为渲染、捕获、对象传输、音频和电话,其主要设备类别为计算机,次要服务类别为笔记本电脑。您的 LG 电视将跳过计算机类设备,仅显示扬声器类设备:设置
Class = 0x240414
不起作用/etc/bluetooth/main.conf
,因为它没有设置所有位。设备的关心程度各不相同。Android 根本不在乎,电视可能需要正确设置部分或全部位。当我编辑该文件时,只有主要/次要部分受到了0x0414
一定程度的尊重,而且这只是在我在 bluetooth.service 命令行参数中禁用所有配置文件(也将它们自己的位添加到类中)之后发生的。可能有一个设置服务类别的选项0x24
,但它需要大量的调试。