我目前正在通过DBUS控制VLC播放器。VLC实现MPRIS。MPRIS有一个名为SetPosition的方法来设置播放器的位置。它具有以下特征。
SetPosition (o: TrackId, x: Position)
我理解第二个参数,但是应该为第一个参数设置哪个值呢?如何设置当前视频在播放器上的位置?SetPosition with dbus-send命令的语法是什么?
eiee3dmh1#
该信息应作为mpris:trackid字段从Metadata属性中提供。https://specifications.freedesktop.org/mpris-spec/2.2/Player_Interface.html#Property:Metadata使用图腾播放器它没有给予我一个trackid在Metadata
mpris:trackid
Metadata
trackid
$ 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" ] ) ]
1条答案
按热度按时间eiee3dmh1#
该信息应作为
mpris:trackid
字段从Metadata
属性中提供。https://specifications.freedesktop.org/mpris-spec/2.2/Player_Interface.html#Property:Metadata
使用图腾播放器它没有给予我一个
trackid
在Metadata
所以我使用
/
作为对象路径,它可以工作:如果我在Firefox会话中查询播放器,那么它会给出以下
Metadata
,其中包含trackid
对象路径: