[icecast] Icecast in Macromedia Flash

Mitja Pirih Mitja.Pirih at radiocapris.com
Sat Nov 29 09:58:10 UTC 2003



Thanks for a lot of usefull info.

> -----Original Message-----
> From: Macsym [mailto:macsym69 at yahoo.fr]
> Sent: Saturday, November 29, 2003 6:00 AM
> To: icecast at xiph.org
> Subject: [icecast] Icecast in Macromedia Flash
> 
> 
> Hello everybody,
> This topic was already published in the icecast development 
> list but it did
> not interest many people there because it is related to 
> Macromedia Flash and
> apparently all the development team is running Linux PPC (the 
> flash plugin
> is not available for Linux PPC). For this reason, I was 
> advised to transfer
> this topic to this regular icecast list.
> Sorry for those who subscribed to both icecast and 
> icecast-dev lists; you
> will receive two times this message.
> 
> So here is the thing: I am trying to build an mp3 player in 
> Macromedia Flash
> that would work with Icecast. Using Flash as a mp3 player 
> instead of Winamp,
> XMMS,. could democratize Icecast because the Flash plugin is
> cross-platform/cross-browser, it is installed on almost every computer
> connected to the internet (Windows, MAC, Linux - but NOT 
> linux PPC) and it
> will be embedded into a webpage.
> I successfully imported an Icecast live stream into Flash 
> with this simple
> ActionScript code:
> TestIcecast = new Sound();
> TestIcecast.loadSound("http://myradio.com:8000/mystream", true);
> TestIcecast.start(0,0)
> 
> For those who don't know flash, here is the process of 
> creating a flash
> animation: you edit the code into a .fla file, then export 
> this code into a
> .swf file (the flash animation) and then embed this flash 
> animation into a
> webpage.
> HERE IS THE PROBLEM: the code above works perfectly in a 
> standalone swf file
> but not when the swf is embedded into a webpage.
> 
> I analyzed the logs of my icecast server to understand what 
> is happening:
> 
> When I run the swf in standalone mode (not embedded), the 
> ACCESS log is:
> 192.168.0.3 - - [27/Nov/2003:04:37:46 Romance Standard Time] 
> "GET /mystream
> HTTP/1.1" 200 246535 "(null)" 
> "http://192.168.0.4:37/mystream" 13712368.
> 
> When I run the webpage in which the swf is embedded in, I can 
> see the swf
> contacts the server but no stream is played. The ACCESS log is:
> 192.168.0.3 - - [27/Nov/2003:04:42:58 Romance Standard Time] 
> "GET /mystream
> HTTP/1.1" 200 328981 "(null)" "-" 13712464
> 
> I both case, the ERROR log is:
> [.]Client connected
> [.]Source found for client
> [.[Client added
> 
> It means the swf, even when embedded, can access the stream 
> (but it doesn't
> play anything). Anyway, I noticed the only difference between 
> the two ACCESS
> logs is the "http://192.168.0.4:37/mystream" (in first log) 
> instead of "-"
> (in second log) that appears behind "(null)". Please not that 
> I made other
> tests with Winamp and the habitual information that appears 
> behind "(null)"
> is "-".
> 
> I thought the problem might come from the headers that Icecast need to
> receive from regular players (Winamp,.) before sending the 
> stream because I
> think my Flash animation doesn't send any header information 
> when embedded
> into a webpage (headers information is send by the browser 
> instead). For
> this reason I tried to use a php script that sends hardcoded header
> information (Content-type: audio/mpeg; GET <path of the 
> stream> HTTP/1.1;
> protocol: \"http\") to the server. Then I call the URL of 
> this script into
> my flash code instead of the URL of the stream. The php script is:
> <?php
> $streamname = "192.168.0.4"; // put in whatever stream you 
> want to play 
> $port = "37"; // put in the port of the stream 
> $path = "/mystream"; // put in any extra path, this is 
> usually just a / 
> header("Content-type: audio/mpeg"); 
> $sock = fsockopen($streamname,$port); 
> fputs($sock, "GET $path HTTP/1.1\n");
> fputs($sock, "protocol: \"http\"\n");
> fputs($sock, "Connection: close\n\n");
> fpassthru($sock);
> ?>
> I still have the same problem even with the script: I can 
> listen to the
> stream when I run the swf in standalone mode but NOT when it 
> is embedded
> into a webpage. I also analyzed the access logs of Icecast 
> when I call the
> php script into my flash animation instead of the direct 
> source URL (this
> test was realized with the swf embedded):
> 
> 192.168.0.5 - - [27/Nov/2003:04:54:03 Romance Standard Time] 
> "GET /mystream
> HTTP/1.1" 200 94383 "(null)" "-" 4549088
> 
> You can notice that it creates the exact same log if I use 
> the php or the
> direct stream source when I test my swf embedded.
> 
> Is there any header information missing in my php script? What header
> information do I have to add in order to send the
> "http://192.168.0.4:37/mystream" information (instead of "-") 
> that appears
> after "(null)" into the ACCESS log (mentioned above)? Do you think the
> problem might come from the macromedia Flash player's 
> security policy? Note
> that the same problem happens with Shoutcast.
> 
> Thank you very much for any help!
> 
> MAX 
> 
> 
> --- >8 ----
> List archives:  http://www.xiph.org/archives/
> icecast project homepage: http://www.icecast.org/
> To unsubscribe from this list, send a message to 
> 'icecast-request at xiph.org'
> containing only the word 'unsubscribe' in the body.  No 
> subject is needed.
> Unsubscribe messages sent to the list will be ignored/filtered.
> 
--- >8 ----
List archives:  http://www.xiph.org/archives/
icecast project homepage: http://www.icecast.org/
To unsubscribe from this list, send a message to 'icecast-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Icecast mailing list