我正在尝试为基于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方法。
发布于 2017-06-22 18:38:47
当然,它不能工作,因为
org.mpris.MediaPlayer2.Player接口不理解Get方法。
这就是你需要的线索。Get方法实际上位于org.freedesktop.DBus.Properties interface上,因此您需要在该接口的代理对象上调用它,而不是在player_proxy对象(假定是org.mpris.MediaPlayer2.Player接口的代理)上调用它。
发布于 2012-05-13 08:26:32
查看this source code之后,您似乎需要使用"IsPlaying",如hx_dbus_player_is_playing方法中所示。
https://stackoverflow.com/questions/10568426
复制相似问题