我想我的Ubuntu个人电脑发送蓝牙音频命令(播放/暂停,下一/前一首歌曲和上/下)到其他设备通过蓝牙播放音乐。换句话说,我想实现我的Ubuntu“伪装”为一种蓝牙耳机,它可以改变音轨,暂停和恢复音乐。
下面的桌面控制屏幕截图说明了以下设置(pt2
是通过蓝牙连接的设备):
在这种配置中,流可以像预期的那样工作(我可以听到来自pt2
的音乐流),但是我没有找到任何方法向它发送任何信号,比如暂停/恢复播放或改变轨道。
我已经发现有许多蓝牙协议允许特定的功能。如果我正确理解规范,我感兴趣的是A2DP,这就是现在设备连接的方式。但在剖面下拉,我也有选择HSP/HFP耳机头单元,HSP/HFP耳机网关和关闭。
我将用Python开发我自己的应用程序,它将允许发送这样的命令,所以我有兴趣通过Python或bash命令发送它们。
我之所以问这个问题,是因为我对如何与蓝牙设备沟通感兴趣。
发布于 2019-01-31 09:17:49
受@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
当然,这会在我的移动设备上触发音乐,通过蓝牙连接到我的电脑上。
对于蓝牙设备,此命令一般如下所示:
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>
为了检查设备的MAC地址,运行bt-devices -l
。它将列出所有已知的(但不一定是连接的,甚至是发现的)设备,并在括号中列出MAC地址。
为了找到允许的命令列表,请安装带有d-feet
的sudo apt install d-feet
。运行它之后,在bluez
选项卡下应用搜索System Bus
查询,并使用设备的MAC查找条目:
在org.bluez.MediaControl1
下,有一些类似于使用蓝牙耳机的方法。但是,当你浏览那些树时,你可以找到更多的方法,这是值得你注意的。
dbus-send
是一个使用dbus
发送信号的命令。--system
开关表示我们想要使用System Bus
的选项卡上的东西。我还没有尝试过它,但我认为--print-reply
只是为了调试目的,而不是强制性的。--dest=org.blez
指的是d英尺头部的Name
./org/bluez/hci0/dev_<mobile_bluetooth_device_mac_address_with_numbers_underscore_separated>
和org.bluez.MediaControl1.<command>
引用对象树路径。
https://askubuntu.com/questions/1113050
复制相似问题