我在linux服务器上使用mpg123,我试图通过网页(apache)控制它,使用链接发送不同的控件。
mpg123有-C标志,所以你可以发送字符到它。 “s”键=开始/停止,“f”键=下一首曲目…等等。
我想我可以用fifo发送mpg123这些密钥,将mpg123 stdin改为fifo stdout,但是我不知道如何在这种情况下使用fifo(如何让mpg123“听”另一个stdin)。 我所做的是:
mkfifo myfifo myfifo | mpg123 -C -@ musiclist.txt And then I've created keys.txt adding some keys to the file: echo "f" >> keys.txt echo "s" >> keys.txt
然后:
cat keys.txt >> myfifo.fifo
这不起作用。 有人可以解释我可以使用fifos将消息传递给正在运行的mpg123吗? 我GOOGLE了,但无法find我想要的。
这个问题似乎给了我一些亮点,但是我仍然不知道如何让mpg123听取fifo的输出。
先谢谢你,
你用什么来管myfifo?
我会假设cat myfifo | mpg123 -C -@ musiclist.txt
cat myfifo | mpg123 -C -@ musiclist.txt
第一个文件通过myfifo管道后,猫会关闭。 尝试使用tail -f myfifo | ...
tail -f myfifo | ...
而是在EOF之后保持打开。
mkfifo myfifo tail -f myfifo | mpg123 .. & # send commands echo .. > myfifo sleep 5 echo .. > myfifo
tail
是可选的,除非mpg123
在stdin接收到EOF时退出。 否则,你可以使用: <myfifo mpg123 ..
如果您在另一个终端中运行echo
命令,最后(控制操作员在后台执行该命令)是可选的。
mpg123有它自己的–fifo选项