Hej,
Jeg er igang med et lille script til mplayer (en movieplayer i linux) i php.
Mplayer kan man sætte i "slavemode", så den modtager kommandoer fra STDIN.
F.eks pause, skip, quit osv... Men hvordan gør jeg så jeg kan skrive til
mplayer's STDIN, fra php? Jeg har prøvet følgende:
Eksempel 1:
$fh_in = fopen ("main.cmd", "r"); // main.cmd er en FIFO fil
$fp = popen('mplayer -slave $file', 'w');
while (1)
{
$input = fgets ($fh_in, 255);
fputs($fp, $input);
}
-----------------------------
Eksempel 2:
$pid = pcntl_fork();
if ($pid)
{
sleep(3);
echo "quit\n";
pcntl_waitpid($pid, &$temp, 0);
}
else
{
exec ("mplayer -slave $file");
}
--------------------------
I eks. 1, kan jeg fra en kommandoprompt skrive "echo pause > main.cmd",
hvorefter der bliver pauset. Dvs. at kommandoen bliver sendt videre til
mplayer. Men til gengæld afslutter programmet aldrig, pga. while(1) løkken.
I eks. 2, opfatter mplayer ikke at der bliver skrevet kommandoer fra
php-scriptet, til gengæld afslutter programmet, når sangen er slut.
Er der nogen af Jer, der har en løsning til hvordan jeg kan få ovenstående
til at virke? Hvis jeg ikke hra forklaret det ordentligt, må I endelig sige
til.
På forhånd tak.
--
Med venlig hilsen
Jonas Jalling
|