mpv是一种媒体播放器,可以从命令行交互使用。这将在终端启动它:
mpv path/to/playlist_file.m3u --no-audio-display
然后我可以按>
转到下一首曲目并使用other interactive commands。
我可以使用screen
对其进行控制,如下所示:
# start a screen session called "my_player"
screen -d -m -S my_player mpv path/to/playlist_file.m3u --no-audio-display
# next track
screen -S my_player -p 0 -X stuff ">"
# prev track
screen -S my_player -p 0 -X stuff "<"
# "end of text character" = control + c = terminate
screen -S my_player -p 0 -X stuff $'\003'
但是屏幕的stuff
命令在这里做什么?我会猜到“将输入发送到标准位置”,但是echo ">" | mpv path/to/playlist_file.m3u
不会使其启动并立即跳过曲目。
man screen
说:
将字符串字符串填充到当前窗口的输入缓冲区中。这就像“粘贴”命令,但开销要少得多。您不能使用“ stuff”命令粘贴较大的缓冲区。它对于键绑定最有用。另请参阅“ bindkey”。
用“输入缓冲区”表示标准输入还是其他?
(我问是因为我想通过Port
从Elixir控制此程序,该程序使用标准的输入和输出,但是到目前为止,我的输入似乎被忽略了。)