我在Ubuntu 14.04上使用PHP {5.5的PECL D-Bus extension与Clementine进行交互。
至于现在我能够连接到会话总线(当发生任何错误时异常是throwns),但是当我初始化代理对象时,我得到一个空的DbusObject
,所以我无法调用D-Bus方法。
以下是我使用的代码(灵感来自extension usage examples):
$dbus = new Dbus(Dbus::BUS_SESSION);
$clementine_player_proxy = $dbus->createProxy('org.mpris.clementine', '/Player', 'org.freedesktop.MediaPlayer');
var_dump($clementine_player_proxy); // returns "object(DbusObject)#3 (0) {}"
当然,我检查了d-feet是否存在总线名称,对象路径和接口:
我被困了两天。
在PHP bugreport上编辑:submitted bug。
编辑2:使用另一个方法(Addtrack(string, bool)
)和另一个对象路径(/TrackList
)进行测试。有用。我不明白。
答案 0 :(得分:0)
我最终通过dbus module轻松学习Python以正确使用D-Bus(如Clementine's wiki中所述)。
我建议所有想要使用PHP D-Bus扩展程序的人不这样做:它有缺陷,很棘手且没有文档(示例脚本除外)。