3

我正在尝试为基于 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 方法。

4

2 回答 2

2

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

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

于 2017-06-22T10:38:46.807 回答
0

看了下这段源码,好像需要用到"IsPlaying",方法见hx_dbus_player_is_playing

于 2012-05-13T00:26:32.023 回答