如何通过命令行控制Mplayer实现切歌、播放暂停(无需窗口焦点)
Mplayer 无焦点状态下的命令行操控方法
向正在运行的Mplayer实例下发命令行控制指令是完全可行的,基于该能力搭配全局自定义快捷键,即可实现Mplayer窗口未获焦时的切歌、播放/暂停控制,完全匹配你的使用需求。
可落地的具体实现方案
- 方案一:使用Mplayer内置的命名输入管道
- 启动Mplayer时追加指定输入管道的参数,启动命令示例:
mplayer -input file=/tmp/mplayer_ctl [待播放的文件/播放列表路径] - 后续直接向该管道写入对应控制文本,就能操控运行中的Mplayer,全程不需要窗口处于获焦状态:
- 切换播放/暂停状态:
echo "pause" > /tmp/mplayer_ctl - 切换到下一个媒体项:
echo "pt_step 1" > /tmp/mplayer_ctl - 切换到上一个媒体项:
echo "pt_step -1" > /tmp/mplayer_ctl
- 切换播放/暂停状态:
- 注意:管道路径可自行定义,只要启动参数和后续写入指令使用的路径完全一致即可
- 启动Mplayer时追加指定输入管道的参数,启动命令示例:
- 方案二:针对未提前配置管道的已运行Mplayer实例
- 可借助系统级窗口模拟输入工具,绕过窗口焦点要求,直接向指定的Mplayer窗口发送对应按键指令,无需重启Mplayer
- 示例(以xdotool工具为例):先定位到目标Mplayer的窗口ID,再模拟对应按键实现控制,常用指令:
- 播放/暂停:
xdotool key --window [目标Mplayer窗口ID] space - 切下一首:
xdotool key --window [目标Mplayer窗口ID] bracketright
- 播放/暂停:
适配说明
上述所有方案涉及的命令行指令,都可以直接绑定到系统全局自定义快捷键上,实现Mplayer在后台、窗口未获焦时的快捷操控,填补了现有公开资料仅覆盖基础播放用法、获焦状态快捷键操作的内容空白。
内容的提问来源于stack exchange,提问作者Zach
相关产品推荐
相关产品推荐

