I've been googling around to find out how you might do this and as it was
SUCH a pain i thought i'd share
enjoy
a
MP3Streamer class
package
{
import flash.display.*;
import flash.events.*;
import flash.external.*;
import flash.media.*;
import flash.net.*;
/**
* case study to create mp3 player with NetStream
* using the akamai test mp3 streaming url
* rtmp://
cp67126.edgefcs.net/ondemand/mediapm/ovp/content/test/video/nocc_small.mp3
* @author Allandt Bik-Elliott
*/
public class MP3Streamer extends Sprite
{
private var _nc : NetConnection;
private var _ns : NetStream;
private var _player : Video;
/**
* standard flashdevelop setup
*/
public function MP3Streamer():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
createConnection();
}
/**
* create the NetConnection and add the callback client, this gives us scope
to create the NetStream in this class later
*/
private function createConnection():void
{
_nc = new NetConnection();
// this is super important although you could add it to an anonymous
object, I prefer to do stuff in classes
_nc.client = this;
_nc.addEventListener(NetStatusEvent.NET_STATUS, handleStatusEvents);
_nc.addEventListener(IOErrorEvent.IO_ERROR, handleErrors);
_nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, handleErrors);
_nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleErrors);
// connect to the stream server / application
_nc.connect("rtmp://cp67126.edgefcs.net/ondemand/");
}
/**
* callback function - this is needed and the NetConnection will error
without it
* it also gives us a convenient jumping off point to add the NetStream
object
*/
public function onBWDone():void
{
_ns = new NetStream(_nc);
// note the structure of this: 'mp3:' at the start and no file suffix at the
end
_ns.play("mp3:mediapm/ovp/content/test/video/nocc_small");
// add a player to output this stuff - you could add this in a view and
pull the netstream from your model
_player = new Video();
_player.attachNetStream(_ns);
}
/**
* output errors
* @param e
*/
private function handleErrors(e:Event):void
{
trace("Error: " + e);
// output to javascript console if in browser
if (ExternalInterface.available) ExternalInterface.call("console.log",
e.toString());
}
/**
* this isn't necessary for this simple application but is worthwhile to see
what the player is doing
* @param e
*/
private function handleStatusEvents(e:NetStatusEvent):void
{
trace(e);
for (var prop:String in e.info)
{
trace(prop + " is " + e.info[prop]);
}
}
}
}
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders