我最近才开始学习Perl,所以当涉及到这门语言时,请原谅我缺乏技术词汇。
我有一个使用mpg321播放音频的Perl脚本。我有命令:
if(song is not being played)
{
system("mpg321 song.mp3 &");
}我想知道是否可以检查是否有正在播放的歌曲。一旦播放完一首歌曲,mpg321就会输出到终端。我的想法让我相信,如果我可以“监控”终端的输出:
0:00 song.mp3解码完成
我可以以某种方式将其放入if语句。如果有更简单的方法可以做到这一点,或者如果我提到的方法是可能的,我将非常感谢您的帮助!
发布于 2013-02-04 14:29:14
您可以打开执行管道并查看该管道的输出,如下所示:
my $pipe;
open $pipe, "mpg321 song.mp3 |";
while (my $line = <$pipe> {
# check if mpg321 printed something...
}但是,只有当您能够说服mpg321禁用控制台缓冲时,这才能起作用。
https://stackoverflow.com/questions/14681141
复制相似问题