2

我使用 i3wm 作为我的窗口管理器,我想添加一个绑定来播放/暂停、下一个、上一个和停止 VLC。然而,与 MPV 不同的是,当 VLC 进程已经在外部运行时,VLC 没有内置的 CLI 控制。

4

3 回答 3

3

安装playerctl工作,或者?

于 2020-12-21T19:50:58.433 回答
2

我正在使用 playerctl 来控制任何播放设置

# Media player controls
bindsym XF86AudioPlay exec playerctl play-pause
#bindsym XF86AudioPause exec playerctl pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous

但是,如果两个应用程序同时使用音频,哪个应用程序会响应playerctl,则未知。

于 2020-12-28T18:38:49.957 回答
2

我发现这个可爱的 Reddit 评论比播放/暂停的需要更重要,通过反复试验,我发现了如何停止/上一个和下一个:

bindsym XF86AudioNext exec dbus-send --type=method_call \
        --dest=org.mpris.MediaPlayer2.vlc \
        /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next

bindsym XF86AudioPrev exec dbus-send --type=method_call \
        --dest=org.mpris.MediaPlayer2.vlc \
        /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous

bindsym XF86AudioPlay exec dbus-send --type=method_call \
        --dest=org.mpris.MediaPlayer2.vlc \
        /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause

bindsym XF86AudioStop exec dbus-send --type=method_call \
        --dest=org.mpris.MediaPlayer2.vlc \
        /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Stop

编辑:使用playerctl像 Antoine 提到的那样使这更简单:

bindsym XF86AudioNext exec playerctl next

bindsym XF86AudioPrev exec playerctl previous

bindsym XF86AudioPlay exec playerctl play

bindsym XF86AudioStop exec playerctl pause
于 2020-12-21T09:01:58.353 回答