Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> FIFO oraz PHP, .... czyli jak sprawdzać czy można zapisać?
kiler129
post
Post #1





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

Ostrzeżenie: (0%)
-----


Witajcie!
Siedze od wczoraj nad zdawało by się prostym killkulinijkowym kodem mającym za zadanie kontrolować mplayera.

  1. <?php
  2. //Mplayera odpalamy tak:
  3. //mplayer -ao alsa -quiet -slave -input file=/root/mplayerCtrl /tmp/plik.mp3 >/root/mplayerOut
  4.  
  5. $ctrlF = '/root/mplayerCtrl'; //Fifo
  6. $outF = '/root/mplayerOut'; //Zwykly plik
  7.  
  8. $cfp = fopen($ctrlF, "w");
  9. fclose(fopen($outF, "w+")); //Czyscimy z poprzednich smieci outfile
  10. fwrite($cfp, $argv[1]."\n");
  11.  
  12. while(empty($r))$r=file_get_contents($outF); //Mplayer zwraca z opznieniem totez czasmi trzba zaczekac
  13. echo $r."\n";
  14. ?>


I skrypt niestety nie działa - zawiesza się zazwyczaj przy fwrite. Jedyne co udało mi się zmusić do działania to poniższy kod:

  1. <?
  2. $ctrlF = '/root/mplayerCtrl';
  3. $outF = '/root/mplayerOut';
  4.  
  5. $mpst=shell_exec('ps u -C "mplayer" | grep "mplayer"'); if(empty($mpst))die;
  6. echo "Clean out file\n";
  7. fclose(fopen($outF, "w+")); //Open, erase, close
  8. echo "Send cmd '".$argv[1]."'\n";
  9. shell_exec("echo ".$argv[1]." > $ctrlF");
  10. echo "Read response\n";
  11. while(empty($r))$r=file_get_contents($outF);
  12. echo $r."\n";
  13. echo "Done\n\n";
  14. ?>

Ale chyba każdy widzi, że jest ekhem ... do kitu (IMG:style_emoticons/default/smile.gif) Chcę to zrobić za pomocą php - bez execów.

Ten post edytował kiler129 2.12.2010, 12:57:32
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kiler129
post
Post #2





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

Ostrzeżenie: (0%)
-----


Odpalam go normlanie z konsolki: php test1.php get_file_name (IMG:style_emoticons/default/smile.gif)
Czyszcze plik mplayerOut ponieważ na starcie mplayer wrzuca tam śmieci dotyczące m.in. niezalezienia ekranu do video czy braku LIRC (szybciej przed każdą komendą czyścić niż sprawdzać czy to pierwsza komenda czy kolejna).
Mplayer zwraca po ok. 30-40ms ale z tym jest różnie - zależy od komendy,
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 05:49