蓝牙问题使用 D-Bus (qdbus) 发送 AVRCP 卷更改发送与 org.bluez.MediaTransport1

Posted

技术标签:

【中文标题】蓝牙问题使用 D-Bus (qdbus) 发送 AVRCP 卷更改发送与 org.bluez.MediaTransport1【英文标题】:Bluetooth Issues Sending AVRCP Volume Changes Using D-Bus (qdbus) Send With org.bluez.MediaTransport1 【发布时间】:2017-03-30 00:19:00 【问题描述】:

我正在使用树莓派作为我的耳机来模拟蓝牙耳机以进行自动化测试。我最初面临的部分挑战是将 AVRCP 命令从 PI 发送到源设备。我很高兴发现 dbus 及其发送暂停、播放、下一步和所有其他命令的能力。不过,当涉及到音量变化时,我最终碰上了一面砖墙。事实证明,库存的 PulseAudio 9.0 二进制文件不支持绝对音量。找到这个补丁后 - https://patchwork.freedesktop.org/patch/76558/ - 我能够在源设备(在我的情况下是 iPhone)上设置音量。解决此问题后,我开始尝试弄清楚如何将音量更改命令从 PI 发送到源设备。 org.bluez.MediaTransport1 中有一个名为 Volume 的属性,我可以读取它,但设置它是一场噩梦。我总是遇到以下问题。

命令

qdbus --system org.bluez /org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX/fdX org.freedesktop.DBus.Properties.Set org.bluez.MediaTransport1 卷 127

回应

错误:org.freedesktop.DBus.Error.InvalidSignature 无效签名 对于“音量”

我尝试在互联网上搜索各种有效负载,但没有任何效果。我在找到设置音量的正确方法时遇到了困难。任何帮助将不胜感激。

谢谢!

【问题讨论】:

你成功了吗? 【参考方案1】:

有点晚了,但以防万一:

dbus-send --system --type=method_call --print-reply=literal --dest=org.bluez /org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX/fdX org.freedesktop.DBus.Properties.Set string:org.bluez.MediaTransport1 string:Volume variant:uint16:127 

【讨论】:

以上是关于蓝牙问题使用 D-Bus (qdbus) 发送 AVRCP 卷更改发送与 org.bluez.MediaTransport1的主要内容,如果未能解决你的问题,请参考以下文章

Qt 蓝牙与 Linux

Arduino - Raspberry Pi,使用 D-BUS API 的蓝牙连接

QDBus 发送 int[]

如何使用 D-Bus 获取设备名称?

在 Java 中通过 D-Bus MPRIS 访问 Clementine 实例

BlueZ D-Bus C , 应用 BLE