Hallo,
ich wollte mal diese Dokumentation umsetzen um die Metadaten eines Shoutcast Streams abzufangen. Ja ich weiß das es zum auslesen der Metadaten eines Shoutcast Streams schon ein paar Klassen gibt, diese kann ich aber leider nicht benutzen da ich das für eine Art Stream-Proxy brauche.
Habe schonmal ein bisschen was angefangen aber leider komm ich nicht ganz klar mit dem Byte zahlen und komm somit nicht an das Length Byte
Naja Hier mal mein Quellcode, vielleicht könnt ihr mich ja ein bisschen unterstützen
ich wollte mal diese Dokumentation umsetzen um die Metadaten eines Shoutcast Streams abzufangen. Ja ich weiß das es zum auslesen der Metadaten eines Shoutcast Streams schon ein paar Klassen gibt, diese kann ich aber leider nicht benutzen da ich das für eine Art Stream-Proxy brauche.
Habe schonmal ein bisschen was angefangen aber leider komm ich nicht ganz klar mit dem Byte zahlen und komm somit nicht an das Length Byte
Naja Hier mal mein Quellcode, vielleicht könnt ihr mich ja ein bisschen unterstützen
PHP:
<?php
$stream_ip = "123.123.123.123";
$stream_port = 8000;
$metaint = 0;
$linelen = 128;
$fp = fsockopen($stream_ip, $stream_port);
if ($fp) {
fputs($fp, "GET / HTTP/1.0\r\n");
// fputs($fp, "User-Agent: WinampMPEG/5.0\r\n\r\n");
fputs($fp, "Icy-MetaData:1\r\n\r\n");
while(!feof($fp)) {
$bla = fgets($fp,$linelen);
// echo $bla;
//if(stristr($bla, "streamtitle")) echo $bla;
if(stristr($bla, "icy-metaint")) {
preg_match("#icy-metaint:([0-9]+)#is",$bla,$tmp);
//var_dump($tmp);
//exit;
$metaint = $tmp[1];
$bytes = $metaint;
}
if($bytes<0) {
$bytes = $metaint;
echo $bla."\n";
} elseif($bytes>0 && $bytes<=$metaint) {
// echo strlen($bla)."\n";
//echo "nich moep\n";
$bytes = $bytes - strlen($bla);
}
//echo "BYTES[ ".$bytes." ]\n";
//if($bytes>0 && $bytes<200) echo $bla;
//if(is_buffer($bla)==false) echo $bla;
}
}
?>