2017-06-28 3 views

答えて

1

あなたが同じプロセスで複数のメディアプレーヤーを持っている場合は、それらののセッションバスに1つのD-バス接続を開き、接続ごとに別々の/org/mpris/MediaPlayer2オブジェクトを公開する必要があります。 1つのD-Bus接続で複数のオブジェクトを同じパスに公開することはできません。

g_bus_get_sync()を使用してバス接続を取得している場合は、シングルトンセッションバス接続(つまり、接続するたびに同じ接続)が返されることに注意してください。セッション・バスへの複数の接続を確立するためにg_bus_get_sync()のドキュメントに記載されているように、あなたは、g_dbus_address_get_for_bus_sync()g_dbus_connection_new_for_address()を使用して接続する必要があります。

返されたオブジェクトは、他の発信者 と共有、つまり、シングルトンでありますg_bus_get()およびg_bus_get_sync()bus_typeです。 プライベートメッセージバス接続が必要な場合は、 g_dbus_address_get_for_bus_sync()g_dbus_connection_new_for_address()を使用してください。

+0

ありがとうございます!しかし、ドキュメントでは、 "このコンストラクタは' g_dbus_connection_new_for_address_sync() 'のクライアント側接続の開始にのみ使用できます。私が理解できるように、私はサーバー側の接続を開始する必要があります。 – f1u77y

+0

この場合、サーバ側である 'dbus-daemon'ではなく、 'クライアント側'です。 *サーバー*(メッセージルーティングバス)ではなく*サービス*(よく知られている名前のD-Busインターフェイス)を作成しています。ですから、 'g_dbus_connection_new_for_address_sync()'はあなたのユースケースには間違いありません。 –

関連する問題