linux 如何设置Mpris SetPosition方法的参数

fjaof16o  于 2023-06-21  发布在  Linux
关注(0)|答案(1)|浏览(105)

我目前正在通过DBUS控制VLC播放器。VLC实现MPRIS。MPRIS有一个名为SetPosition的方法来设置播放器的位置。它具有以下特征。

SetPosition (o: TrackId, x: Position)

我理解第二个参数,但是应该为第一个参数设置哪个值呢?如何设置当前视频在播放器上的位置?
SetPosition with dbus-send命令的语法是什么?

eiee3dmh

eiee3dmh1#

该信息应作为mpris:trackid字段从Metadata属性中提供。
https://specifications.freedesktop.org/mpris-spec/2.2/Player_Interface.html#Property:Metadata
使用图腾播放器它没有给予我一个trackidMetadata

$ dbus-send --session --dest=org.mpris.MediaPlayer2.totem --print-reply /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:org.mpris.MediaPlayer2.Player string:Metadata

method return time=1687072387.945098 sender=:1.236 -> destination=:1.269 serial=365 reply_serial=2
   variant       array [
         dict entry(
            string "mpris:length"
            variant                int64 1416
         )
         dict entry(
            string "xesam:trackNumber"
            variant                uint32 0
         )
      ]

所以我使用/作为对象路径,它可以工作:

$ dbus-send --session --dest=org.mpris.MediaPlayer2.totem --type=method_call /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.SetPosition objpath:/ int64:0

如果我在Firefox会话中查询播放器,那么它会给出以下Metadata,其中包含trackid对象路径:

$ dbus-send --session --dest=org.mpris.MediaPlayer2.firefox.instance2129 --print-reply /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:org.mpris.MediaPlayer2.Player string:Metadata

method return time=1687072613.024171 sender=:1.106 -> destination=:1.271 serial=94 reply_serial=2
   variant       array [
         dict entry(
            string "mpris:trackid"
            variant                object path "/org/mpris/MediaPlayer2/firefox"
         )
         dict entry(
            string "xesam:title"
            variant                string "Rick Astley - Never Gonna Give You Up (Official Music Video)"
         )
         dict entry(
            string "xesam:album"
            variant                string ""
         )
         dict entry(
            string "xesam:artist"
            variant                array [
                  string "Rick Astley"
               ]
         )
      ]

相关问题