php-neuling braucht hilfe kann jemand helfen???

schmaler73

Grünschnabel
Hallo an alle,
mal eine Frage ein php script welches mir den status einer stream id ausliest d.h. meldet status online oder offline . ich müsste dises scrippt erweitern in so fern das wenn status offline ist dann reload webseite alle 10 sek. und starte player a. wenn status online dann starte player b.
wäre dankbar für eure hilfe. im anhang mal das script welches ich habe.
mit freundlichen grüßen
schmaler73
PHP:
<?php
function CheckStreamOnline($sid) {
   $lend=0;
   $h = @fsockopen("tcp://www.flatcast.com", 80, $errn, $errs, 10);
   if ($h) {
     $snd="HEAD /de/Player.aspx?sid={$sid} HTTP/1.1\r\n";
     $snd.="Accept: */*\r\n";
     $snd.="User-Agent: Mozilla/4.0 (compatible)\r\n";
     $snd.="Host: www.flatcast.com\r\n";
     $snd.="Connection: Close\r\n";

     $snd.="\r\n";
     fwrite($h, $snd);
     while ((!feof($h)) && ($lend==0)) {
       $l=fgets($h,255);
       $sp=strpos($l, "Location:");
       if ($sp!==false) {
         $sp=strpos($l, "Err.NotOnAir");
         if ($sp!==false) {
           $lend=1;
         }
       }
     }
     fclose($h);
   }

   return $lend;
}
?>
PHP:
<html><head>
<title>Flatcast Status-Beispiel</title>
</head>
<body>
Willkommen im Radio X<br />
   
Das Radio ist zur Zeit <?php
   include("flatcast.php");
   
   // die stream-id in der folgenden Zeile aendern !!!
   $meine_stream_id = 12345;
   
   
   $stream_status = CheckStreamOnline($meine_stream_id);
   
   if ($stream_status==0) {
     echo "offline";
   } else {
     echo "online";
   }
?>
</body>
</html>
 
Hi

was heißt, den Player starten?
Willst du auf "deiner" Seite Musik abspielen, und welche ist eben abhängig vom Streamstatus?
Ist dir bewusst, dass Seitenneuladen alle 10sec Unterbrechungen im Abspielen verursacht?
 
hallo sheel,
naja so in etwa nein nicht ganz ich frage den status vom sendestream ab ! ist der of weil technische probleme oder sendeschluss dann soll ein player starten der einen anderen stream versorgt mit musik aus eriner playliste.Geht der stream wieder online muss die wenseite neu laden d.h. im offline modus muss alle paar sek. neu geladen werden im online modus nicht. dann aber player 2 starten und player1 stoppen da player 2 das signal vom online status überträgt. quasi ein selbstgebauter auto dj so in der art nur halt alles auf dem pc.
da der hoster das nicht anbieten mag
lg schmaler73
 
Hallo schmaler73,

PHP ist rein serverseitig, der Browser muss neu geladen werden, wodurch die Musik unterbrochen wird.

Möglichkeit 1:
http://api.jquery.com/jquery.ajax/

Du kannst via JS einen Interval definieren ( setInteval() ).
Innerhalb dieses Interval kannst Du mit Ajax den Status von Deinem Server abrufen und ggf. den Player neu laden.

Contra:
Sollte der Sender zwischenseitlich online gehen, wird dies nur innerhalb des Interval geprüft. Setzt Du den Interval auf 120s - so kann es passieren, dass der Zuhörer mal gut und gern 90s verpasst, bis das Skript die Änderung erkennt.

Möglichkeit 2:
Etwas komplexer, jedoch ohne das oben genannte Problem:
http://socket.io/

Viele Grüße
 
Zurück