Piotr Majewski twórca serwisu Czas na e-Biznes napisał prośbę o napisanie odtwarzacza Shoutcast na stronę internetową. Pomyślałem że warto spróbować.
Wziąłem kod aplikacji Audio Visualisation Bena Stucki`ego. Lokalnie uruchomiłem serwer Apache i dodałem plik stream.php z następującym kodem
$streamname = "91.121.68.159";
$port = "8435";
$path = "/";
header("Content-type: audio/mpeg");
$sock = fsockopen($streamname,$port);
fputs($sock, "GET $path HTTP/1.0\r\n");
fputs($sock, "Host: $streamname\r\n");
fputs($sock, "User-Agent: WinampMPEG/2.8\r\n");
fputs($sock, "Accept: */*\r\n");
fputs($sock, "Icy-MetaData:1\r\n");
fputs($sock, "Connection: close\r\n\r\n");
fpassthru($sock);
fclose($sock);
Zauważyłem że kod działa, ale co jakiś czas przerywało i cisza trwała przez 2 sek.
Kod AS3 jaki dodałem to:
var request:URLRequest = new URLRequest("http://83.11.127.222/stream/stream.php");
var buffer:SoundLoaderContext = new SoundLoaderContext(50*1000, true);
var mySound:Sound = new Sound(request, buffer);
mySound.play(0,0);
Wychodzi na to, że chyba trzeba jakoś to buforować co jakiś czas np: co 2 sek i pilnować czasu odtwarzania, ale czy to ma sens w przypadku technologii Shoutcast?
Myślałem o wykorzystaniu klasy URLStream, ale chyba to nie nadaje się obsługi klasy Sound. Czy są jakieś uwagi?
środa, 11 lipca 2007
Shoutcast w Flex 2
Autor: Michał Małaj o godzinie 21:04
Subskrybuj:
Komentarze do posta (Atom)
1 komentarz:
Czesc, doradzalbym mimo wszystko nie puszczanie tego przez PHP zbyt duzy podwojny transfer niepotrzebnie po stronie serwera. Lepiej chyba bezposrednio sie w stream wpiac, powinno dzialac analogicznie a moze wyeliminowac Ci te 2 sekundowy przerwy. Ewentualnie jezeli przez brak crossdomain.xml nie bedzie dzialac zrobic to na zasadzie bramki redirectowej w php czyli mniej wiecej:
< ?
header("Location: http://xxx.xxx.xxx.xxx:yyy/;stream.nsv");
? >
Ja mam z kolei inne pytanie czy zauwazyles przy powyzszym kodzie cos typu memory leak czyli zbyt dlugie odtwarzanie powoduje znaczny skok zasobow, co moze prowadzic do zablokowania dzwieku w ogole?
Prześlij komentarz