gpt4 book ai didi

c - 向 GDBus 注册多个 MPRIS 播放器

转载 作者:行者123 更新时间:2023-11-30 14:56:18 24 4
gpt4 key购买 nike

我想用 glib 注册多个媒体播放器。最小(非)工作示例是 here 。据我所知specification ,我应该导出许多具有同一个名称 /org/mpris/MediaPlayer2 的对象,这很奇怪。

最佳答案

如果同一进程中有多个媒体播放器,则需要为每个媒体播放器打开一个到 session 总线的 D-Bus 连接,并公开一个单独的 /org/每个连接上的 mpris/MediaPlayer2 对象。您无法在单个 D-Bus 连接上的同一路径上公开多个对象。

请注意,如果您使用 g_bus_get_sync()为了获得总线连接,它将返回一个单例 session 总线连接——即每次调用它时都会返回相同的连接。为了与 session 总线建立多个连接,您需要使用 g_dbus_address_get_for_bus_sync() 进行连接。和 g_dbus_connection_new_for_address() ,如 g_bus_get_sync() 文档中所述:

The returned object is a singleton, that is, shared with other callers of g_bus_get() and g_bus_get_sync() for bus_type. In the event that you need a private message bus connection, use g_dbus_address_get_for_bus_sync() and g_dbus_connection_new_for_address().

关于c - 向 GDBus 注册多个 MPRIS 播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44792176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com