/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Problem med STDIN og fifo
Fra : Jonas Jalling


Dato : 18-06-04 22:56

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



 
 
Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408943
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste