pt1*_*lol 12 sound python pulseaudio bluetooth
我希望我的 Ubuntu PC 通过蓝牙向其他设备发送蓝牙音频命令(播放/暂停、下一首/上一首歌曲和调高/调低)。换句话说,我想将我的 Ubuntu PC“伪装”成一种蓝牙耳机,它能够改变曲目、暂停和恢复音乐。
我用下面的 pavucontrol 屏幕截图说明了以下设置(pt2设备通过蓝牙连接):

在此配置中,流式传输按预期工作(我可以听到从 流式传输的音乐pt2),但我没有找到任何方法可以向它发送任何信号,例如暂停/恢复播放或更改曲目。
我已经发现有许多蓝牙协议允许特定功能。如果我正确理解规格,我感兴趣的是 A2DP,这是现在连接设备的方式。但在配置文件下拉列表中,我还可以选择 HSP/HFP 耳机主机、HSP/HFP 耳机网关和关闭。
我将用 Python 开发我自己的应用程序,它允许发送此类命令,因此我有兴趣通过 Python API 或通过 bash 命令发送它们。
我问这个问题是因为我对如何与蓝牙设备进行通信感兴趣。
pt1*_*lol 13
通过@kenn启发,我决定去深入dbus和d-feet工具。最终我使用以下命令达到了我的目标:
dbus-send --system --print-reply --dest=org.bluez /org/bluez/hci0/dev_44_78_3E_85_9D_6F org.bluez.MediaControl1.Play
Run Code Online (Sandbox Code Playgroud)
这当然会触发在通过蓝牙连接到我的 PC 的移动设备上播放音乐。
通常对于蓝牙设备,此命令如下所示:
dbus-send --system --print-reply --dest=org.bluez /org/bluez/hci0/dev_<mobile_bluetooth_device_mac_address_with_numbers_underscore_separated> org.bluez.MediaControl1.<command_to_send>
Run Code Online (Sandbox Code Playgroud)
为了检查您设备的 MAC 地址,请运行bt-devices -l. 它将列出所有已知(但不一定已连接或什至已发现)设备的 MAC 地址在括号中。
为了找到允许的命令列表,安装d-feet用sudo apt install d-feet。运行后,bluez在System Bus选项卡下应用搜索查询并使用您设备的 MAC 查找条目:
下有类似于使用蓝牙耳机的东西的方法org.bluez.MediaControl1。但是,当您浏览这些树时,您会发现更多的方法,这确实值得您注意。
dbus-send是使用 发送信号的命令dbus。--systemswitch 表示我们要使用System Busd-feet 选项卡中的内容。我还没有尝试过,但我想--print-reply仅用于调试目的,并不是必须的。--dest=org.blez指Name在 d-feet 标题中。/org/bluez/hci0/dev_<mobile_bluetooth_device_mac_address_with_numbers_underscore_separated>并 org.bluez.MediaControl1.<command>参考对象树路径。
| 归档时间: |
|
| 查看次数: |
3476 次 |
| 最近记录: |