首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取D-Bus属性的值?

如何获取D-Bus属性的值?
EN

Stack Overflow用户
提问于 2012-05-13 08:18:39
回答 2查看 1.7K关注 0票数 3

我正在尝试为基于MPRIS的媒体播放器创建一个通用的远程控制应用程序。控制媒体播放器是如此简单,但由于我对D-Bus和DBus-GLib还很陌生,从D-Bus获取值对我来说有点混乱。

从文档中我可以看到,如果我想知道我的播放器是否真的在玩什么,我需要获取PlaybackStatus属性,但是我找不到C语言中获取这个值的有效示例。

目前,获取它的行如下所示:

代码语言:javascript
复制
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方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-22 18:38:47

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

这就是你需要的线索。Get方法实际上位于org.freedesktop.DBus.Properties interface上,因此您需要在该接口的代理对象上调用它,而不是在player_proxy对象(假定是org.mpris.MediaPlayer2.Player接口的代理)上调用它。

票数 2
EN

Stack Overflow用户

发布于 2012-05-13 08:26:32

查看this source code之后,您似乎需要使用"IsPlaying",如hx_dbus_player_is_playing方法中所示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10568426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档