Flashhilfe.de - Flash Community

Flash, PHP und Shoutcast [Flash 8]

 


AntwortenRegistrieren Seite1 2 3 4  

Sven Wagener#1
Benutzerbild von Sven Wagener
Beiträge: 47
Wohnort: Düsseldorf
Registriert: Nov 2002

09.02.2006, 19:30

Einen Wunderschönen!

Ich würde gerne einen Shoutcast Stream in Flash abspielen. Dazu habe ich bereits folgendes gemacht:

Der Stream wird über PHP auf dem Server eingelesen und wieder als MP3 Stream ausgegeben. Hier das Script:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?

$streamname 
"64.236.34.196";
$port "80";
$path "/stream/1074";

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:0\r\n"); 
fputs($sock"Connection: close\r\n\r\n"); 

fpassthru($sock); 
fclose($sock); 

?>


In Flash lade ich dann den Stream mittels dieses kleinen Scripts:

ActionScript:
1
2
3
mySound = new Sound();
mySound.loadSound("push-stream.php", true);
mySound.start();


Der Stream wird jetzt

1. Lokal abgespielt
2. Im Mozilla
3. Im IE nicht

Hat jemand ne Ahnung warum der Stream im Internet Explorer nicht läuft oder nen Tipp, wie ich den zum laufen bringen kann? Technisch ist eigentlich alles möglich. hab nen root Server und kann auch alles ausführen.

Sven Wagener
http://www.rheinschmiede.de

MfG,

Sven Wagener
http://www.flashsaver.org
http://www.webrauschen.de
Werbung
Beiträge: 0
Registriert: Feb 2016


Sven Wagener#2
Benutzerbild von Sven Wagener
Beiträge: 47
Wohnort: Düsseldorf
Registriert: Nov 2002

Themenautor/in

15.02.2006, 10:55

Also, nach einiger Überlegung bin ich mal drauf gekommen die Möglichkeiten der Headerinfos anzusehen und bin fündig geworden. Das Problem liegt darin, dass der IE irgendwie keinen Stream annimmt, der unendlich lang ist. D.h. er will eine feste größe haben. Die Lösung ist eigentlich aber auch ganz einfach:

Wir sagen per Header jetzt einfach, dass der Stream nur eine bestimmte Länge hat. In dem Fall halt genug MB um den Stream so lange wie möglich zu halten. Das ist zwar kein unendliches Streaming, aber zumindest ein Workarround für einen Flash Streamplayer der einige Stunden am Stück spielt. Wichtig ist folgende Zeile:

header("Content-length: 1234567890"); <- Diese Zahl ist die Anzahl Bytes , die heruntergeladen werden sollen.

Diese muss wie folgt untergebracht werden

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<? 

$streamname 
"64.236.34.196"
$port "80"
$path "/stream/1074"

header("Content-type: audio/mpeg");
header("Content-length: 1234567890"); // Gew&uuml;nmschte Bytegr&ouml;&szlig;e einfach anpassen bzw. errechnen o.&auml;.
$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:0\r\n"); 
fputs($sock"Connection: close\r\n\r\n"); 

fpassthru($sock); 
fclose($sock); 

?>


So, hoffentlich gibbet in Zukunft ein paar mehr Flash-Internetradio-Player! Gebt bescheid, wenn Ihr was nettes gebastelt habt! Würde mich interessieren.

MfG,

Sven Wagener
http://www.rheinschmiede.de
grafik - druck - internet

MfG,

Sven Wagener
http://www.flashsaver.org
http://www.webrauschen.de
Sebastian#3
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

16.02.2006, 00:14

Hm, wollte das gerade mal nachbaun und testen, nur leider funktioniert es bei mir nicht. - nicht von localhost aus getestet wegen Sandbox

Das File wird gefunden, der Browser lädt auch ins unendliche, nur leider kommt kein Sound.

Wollte mich jetzt gar nicht weiter damit beschäftigen, da ich den Thread eigentlich einfach nur in das Tipps & Tricks Forum verschieben wollte. Deswegen die Bitte, hast Du eine Idee was falsch sein könnte?

Nachtrag:
Ah alles klar. Im IE gehts mit dem Header, im FF dann nicht mehr. Werd mal schaun was man da machen kann. Schöne Sache jedenfalls!

Grüsse,
Sebastian
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Geändert von Sebastian am 16.02.06 um 00:30 Uhr
Sebastian#4
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

16.02.2006, 01:06

Hab leider nichts über den IE Bug gefunden. Allerdings eine schöne Alternative für das PHP Script:

ActionScript:
1
2
3
4
System.security.allowDomain("http://64.236.34.196");
mySound = new Sound(this);
mySound.loadSound("http://64.236.34.196:80/stream/1074", true);
mySound.start();

Da kannst Du dir das PHP Script sparen und der Traffic geht nicht über Deinen Server. Denke das ist das beste daran ;)

... leider nicht die ultimative Lösung. Hatte grad ein RadioStream bei dem das nicht funktioniert hat.

Grüsse,
Sebastian
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Werbung
Beiträge: 0
Registriert: Feb 2016


Teltronik#5
Benutzerbild von Teltronik
Beiträge: 17
Registriert: Mar 2005

16.02.2006, 01:14

Hallo Sebastian

Also bei mir läuft es im IE als auch im Firefox.

Teltronik

Teltronik#6
Benutzerbild von Teltronik
Beiträge: 17
Registriert: Mar 2005

16.02.2006, 01:21

ActionScript:
1
2
3
4
System.security.allowDomain("http://64.236.34.196");
mySound = new Sound(this);
mySound.loadSound("http://64.236.34.196:80/stream/1074", true);
mySound.start();


Das geht bei meinem Radio auch nicht. Wenn es bei Dir mal geklappt hat, dann wars bestimmt ein icecast server.

Ich habs es so verstanden, dass auf dem Server von dem ich den Stream laden möchte einen crossdomain.xml liegen muss. Das haben aber auch schon andere (so glaube ich) getestet und es ging nicht.

Im Moment ist wohl die einzige Möglichkeit es mit dem php Script zu machen.

Sebastian#7
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

16.02.2006, 01:37

>> Wenn es bei Dir mal geklappt hat, dann wars bestimmt ein icecast server.
Also bei dem funktioniert es ohne PHP Script:

ICY 200 OK
icy-notice1: <BR>This stream requires <a href="http://www.winamp.com/">Winamp</a><BR>
icy-notice2: SHOUTcast Distributed Network Audio Server/SolarisSparc v1.9.5<BR>
icy-name: .977 The Hitz Channel
icy-genre: Pop Rock Top 40
icy-url: http://www.hitsradio.com
icy-pub: 1
icy-metaint: 0
icy-br: 128
icy-irc: #shoutcast
icy-icq: 0
icy-aim: N/A


Bei dem nicht:

ICY 200 OK
icy-notice1:<BR>This stream requires <a href="http://www.winamp.com/">Winamp</a><BR>
icy-notice2:SHOUTcast Distributed Network Audio Server/win32 v1.9.5<BR>
icy-name:BIGUPRADIO.COM Slamming Dancehall Reggae <<ONE LOVE>> Online Reggae Music Store www.bigupradio.com
icy-genre:reggae
icy-url:http://www.bigupradio.com
content-type:audio/mpeg
icy-pub:1
icy-br:128


Zum PHP Script:
Bei mir funktioniert es mit Angabe von Content-length nicht im FF aber im IE. Ohne Angabe gehts im FF aber im IE nicht. Schon merkwürdig.

Habe die neuste FF Version, neuste Win Patches und neuste IE 6 Version installiert.

Naja, werd jetzt erst mal ins Bettchen und morgen Abend noch einmal danach schaun.

Wünsche eine gute Nacht.

Grüsse,
Sebastian
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Geändert von Sebastian am 16.02.06 um 01:37 Uhr
Teltronik#8
Benutzerbild von Teltronik
Beiträge: 17
Registriert: Mar 2005

16.02.2006, 02:56

@Sebastian

Ich habe es gerade nochmals auf 3 unterschiedlichen FF getestet. 1.06, 1.5.1, 1.07. Alle auf unterschiedlichen Systemen und alle drei laufen mit der Header Angabe ohne Probleme.

Zwei Probleme gibt es.

1. Der Traffic, das kann man aber mit dem Streaming Provider vielleicht klären, das dort ein PHP Script zum Einsatz kommt.

2. Das ansteigende Memory im Flash Player. Na ja der Header begrenzt ja schon mal die Länge der Zeit, die ein User hören kann. Wenn ihm der Stream gefällt, dann kann er ja zum normalen Player wechseln. Die push-stream.php.mp3 Datei fliegt ins Temp Verzeichnis der Platte und bei 128K sind es bei 30 min. mal schnell 50MB. Daran kann man aber so glaube ich nichts machen, das der Stream nicht gespeichert wird.

Mal sehen wie es weiter geht.

Gruß
Teltronik

Sven Wagener#9
Benutzerbild von Sven Wagener
Beiträge: 47
Wohnort: Düsseldorf
Registriert: Nov 2002

Themenautor/in

16.02.2006, 09:07

Also meine Erfahrung ist, dass man für den Shoutcast Server in jedem Fall über das PHP Script streamen muss. Der Icecast Server (so sagen auch andere User im Netz) kann direkt per Flash gestreamt werden.

Der Befehl

ActionScript:
1System.security.allowDomain("http://64.236.34.196");


Hatte mich mit dem IE und Shoutcast auch nicht weiter gebracht. Ausschließlich mit den Header Angaben über PHP kam ich weiter.

Das Thema Traffic ist natürlich auch so eine Sache. Aber man sollte ja dann auch nicht unbedingt eine Trafficlimitierung auf dem Webspace / Server haben wenn man streamt.

Hier ein paar Provider mit entsprechenden Angeboten:

http://www.1blu.org/
http://www.rubas.ch/webhosting/webspace-uebersicht.html
http://www.strato.de/server/index.html

Das mit dem Memory ist mir im übrigen auch aufgefallen. Die einzige Möglichkeit die mir da einfällt ist eine kurze Unterbrechung des Streams ggf. durch ein Refresh der Seite o.ä.

MfG,

Sven Wagener
http://www.rheinschmiede.de
grafik - druck - internet
MfG,

Sven Wagener
http://www.flashsaver.org
http://www.webrauschen.de
Sven Wagener#10
Benutzerbild von Sven Wagener
Beiträge: 47
Wohnort: Düsseldorf
Registriert: Nov 2002

Themenautor/in

15.11.2007, 14:51

Im übrigen habe ich hier noch einmal genauestens beschrieben, wie man sich einen Webradio Player in Flash bauen kann:

http://www.webrauschen.de/webradio-internetradio-player-mit-adobe-flash-realisieren/

MfG,

Sven Wagener
http://www.flashsaver.org
http://www.webrauschen.de
MfG,

Sven Wagener
http://www.flashsaver.org
http://www.webrauschen.de
derSESO#11
Benutzerbild von derSESO
Beiträge: 21
Wohnort: Brunnthal
Registriert: Jul 2006

07.01.2008, 22:21

hallo!

irgendiwe klappt das nicht mit der anleitung vom sven wagener.
in der flash-datei steht nur folgendes:

mySound = new Sound(this);
mySound.loadSound("push-stream.php", true);
mySound.start();

und die php-datei habe ich entsprechend angepasst.

achja, wenn ich die fla-datei aus dem bsp. von webrauschen.de öffnen will, meldet flash mx, das die datei ein unerwartetes dateiformat hat.

derSESO
dies schrieb
Sven Wagener#12
Benutzerbild von Sven Wagener
Beiträge: 47
Wohnort: Düsseldorf
Registriert: Nov 2002

Themenautor/in

07.01.2008, 22:46

Hast Du schon mal die volle zur PHP Datei angegeben? (mit http://www ...)

MfG,

Sven Wagener
http://www.flashsaver.org
http://www.webrauschen.de
MfG,

Sven Wagener
http://www.flashsaver.org
http://www.webrauschen.de
derSESO#13
Benutzerbild von derSESO
Beiträge: 21
Wohnort: Brunnthal
Registriert: Jul 2006

08.01.2008, 07:52

ja, habe ich auch schon probiert.

mit http://...
mit ./ davor
und nur den dateinamen

liegen beide im gleichen verzeichnis.

derSESO
dies schrieb
derSESO#14
Benutzerbild von derSESO
Beiträge: 21
Wohnort: Brunnthal
Registriert: Jul 2006

11.01.2008, 22:21

Kann mir keiner weiterhelfen?
Benörige dringend einen einfachen WebRadio-Player!. :(

derSESO
dies schrieb
Sven Wagener#15
Benutzerbild von Sven Wagener
Beiträge: 47
Wohnort: Düsseldorf
Registriert: Nov 2002

Themenautor/in

11.01.2008, 22:40

Ja, ich kann Dr schon weiterhelfen, hatte nur nicht die zeit dazu.

Aber ein größeres Problem gibt es:

Es kann gut sein, dass Dein Provider die Ansprache der Ports über Deinen Webspace verbietet. Sag mir einfach, was Dein PHP Script ausgibt, wenn Du es versuchst im Browser ausgibst.

Gibt es überhaupt was aus?

Sven

MfG,

Sven Wagener
http://www.flashsaver.org
http://www.webrauschen.de
MfG,

Sven Wagener
http://www.flashsaver.org
http://www.webrauschen.de
derSESO#16
Benutzerbild von derSESO
Beiträge: 21
Wohnort: Brunnthal
Registriert: Jul 2006

12.01.2008, 08:25

Sorry. :)

Es wird eben nix angeziegt.

Quelltext der html-Datei (test_1.html):
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<HTML>
<HEAD>
<meta http-equiv=Content-Type content="text/html;  charset=ISO-8859-1">
<TITLE>test_1</TITLE>
</HEAD>
<BODY bgcolor="#FFFFFF">
<!-- URL's used in the movie-->
<!-- text used in the movie-->
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
WIDTH="550" HEIGHT="400" id="test_1" ALIGN="">
<PARAM NAME=movie VALUE="test_1.swf"> <PARAM NAME=quality VALUE=medium> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED src="test_1.swf" quality=medium bgcolor=#FFFFFF  WIDTH="550" HEIGHT="400" NAME="test_1" ALIGN=""
TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
</OBJECT>
</BODY>

</HTML>


Quelltext der php-Datei (daten.php):
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php

// Verbindungsdaten des Streams
$streamname = "http://stream.frozen-radio.com"; // Server (Host)
$port = "9000"; // Port des Streams
$path = "/"; // Zusätzliche Pfadangaben zum Stream

$stream_quality=128; // Kbit/s
$buffer_time=5; // Die Anzahl der Minuten, die der Stream Puffern soll

$stream_quality_kbytes=$stream_quality/8;
$stream_quality_kbytes_per_minute=$stream_quality*60;

$content_length=$buffer_time*1024*$stream_quality_kbytes_per_minute;

$length_header="Content-length: ".$content_length;

header("Content-type: audio/mpeg");
header($length_header);
$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:0\r\n");
fputs($sock, "Connection: close\r\n\r\n");

fpassthru($sock);
fclose($sock);

?>


Quelltext der flash-Datei (test_1.swf):
ActionScript:
1
2
3
mySound = new Sound(this);
mySound.loadSound("./daten.php", true);
mySound.start();


TestLink:  http://www.onixfm.de/test_1.html
derSESO
dies schrieb
Geändert von derSESO am 12.01.08 um 08:28 Uhr

AntwortenRegistrieren Seite1 2 3 4  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2020 Sebastian Wichmann - Flashhilfe.de