LINUX.ORG.RU

Скрипт для mplayer


0

0

У mplayer есть фитча slave mode. Суть в том, что например запускается в терминале "mplayer -slave -really-quiet file.ogg". Пока файл играется mplayer не отдает терминал и если в нем напечатать скажем pause, то mplayer поставит паузу.

Как на bash реализовать введение команд в выводе запущеной программы?


Ответ на: комментарий от trill

#!/bin/bash
FIFO=/tmp/mplayer-remote


case $1 in
"launch")
 if (pidof mplayer); then echo "MPlayer already started!"; exit; fi;
 rm -f "$FIFO"
 mkfifo "$FIFO"
 while (pidof mplayer); do cat $FIFO; done | mplayer -slave "$2"
 rm "$FIFO";;


"pause")
 echo "pause" > "$FIFO";;


"play")
 echo "pause" > "$FIFO";;


"stop")
 echo "quit" > "$FIFO"
 ;;


"forward")
 echo "seek 150" > "$FIFO";;


"rewind")
 echo "seek -150" > "$FIFO";;


*)
echo "MPlayer Control Version 0.5"
echo "Allows you to control MPlayer remotely via shell-commands."
echo "Usage: mplayerctrl [Option] Filename"
echo "Options"
echo " launch: launch mplayer and create Fifo"
echo " play: play if playback is paused"
echo " pause: pause if playback is paused"
echo " stop: stop playback and quit"
echo " forward: Forward 60sec "
echo " rewind: Rewind 60sec "
;;
esac

trill
() автор топика
Ответ на: комментарий от trill

> while (pidof mplayer); do cat $FIFO; done | mplayer -slave "$2"
интересно, сколько этот скрипт будет жрать процессора?))
в общем, у тебя получится, что если ты послал pause в $FIFO, то плееру она будет передаваться огромное количество раз.
интересно, что будет с forward и rewind :)

xydo ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.