我正在尝试为基于MPRIS的媒体播放器创建一个通用的远程控制应用程序。控制媒体播放器很容易,但由于我对D-Bus和DBus GLib还很陌生,所以从D-Bus获取值对我来说有点麻烦。
从文件中我看到,如果我想知道我的玩家是否真的在玩什么东西,我需要获取PlaybackStatus属性,但是我找不到一个在C中获取这个值的工作示例。
当前要获取它的行如下所示:

dbus_g_proxy_call(player_proxy, "Get", &err, G_TYPE_STRING, "Volume", G_TYPE_INVALID, G_TYPE_INT, &volume, G_TYPE_INVALID);

当然,它不工作,因为org.mpris.MediaPlayer2.Player接口不理解Get方法。

最佳答案

当然,它不工作,因为org.mpris.MediaPlayer2.Player接口不理解Get方法。
这是你需要的线索。Get方法实际上位于org.freedesktop.DBus.Properties interface上,因此需要在该接口的代理对象上调用它,而不是在player_proxy对象上调用它(该对象可能是org.mpris.MediaPlayer2.Player接口的代理)。

10-08 05:12
查看更多