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メソッドは実際にはinterfaceorg.freedesktop.DBus.Propertiesplayer_proxyあるため、オブジェクト (おそらくインターフェイスのプロキシ)ではなく、そのインターフェイスのプロキシ オブジェクトで呼び出す必要がありorg.mpris.MediaPlayer2.Playerます。

于 2017-06-22T10:38:46.807 に答える
0

このソース コードを調べたところ"IsPlaying"、メソッドに見られるように、を使用する必要があるようですhx_dbus_player_is_playing

于 2012-05-13T00:26:32.023 に答える