我正在尝试为基于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
接口的代理)。