« ActionScript 2.0 - clase 2.1 (ahora sí) | Inicio | Audio Video Streamer 2.0 »

audio video streamer en flashcom

Bueno, esta tarde me puse a hacer un audiovideostreamer en flashcom. Faltan de pulir cosas, como obtener la longitud del stream y alguna cosilla, pero bueno, ahí van unos códigos

//Creamos la conexión al servidor. nc=new NetConnection(); /* Función: onStatusTemplate Desc: Función onStatus para netConnection y netStream params: info -> objeto que trae la información desde el servidor Nota: Esta función (onStatusTemplate) está basada en la plantilla realizada por Kevin Towes para su libro "Macromedia Flash Communication Server MX" ( pangaea newmedia inc ) página 449, apéndice E */ function onStatusTemplate(info){ info_array=info.code.split("."); trace("·······················Comienzo de mensaje"); trace(new Date()); trace("Mensaje recibido para el objeto: "+info_array[0]); trace("LEVEL: "+info.level); trace("CODE: "+info.code); /*Aquí el resto de la plantilla, no la pongo entera que es muy larga pues contempla todos los casos de NetConnection y NetStream */ } //Asignación de la plantilla. NetConnection.prototype.onStatus=onStatusTemplate; NetStream.prototype.onStatus=onStatusTemplate; //Conexión al servidor ( por debajo de onStatus para que no escape ninguno ) nc.connect("rtmp:/videolistado/videomusic"); /* Función: audioVideoStreamer Desc: Crea objetos de la clase audioVideoStreamer, permitiendo la reproducción de audio y video. La asignamos como _global para ser accedida desde cualquier nivel/anidamiento fácilmente Params: streamName -> El nombre del stream videoObjectName -> El nombre del objeto video netConnectionName -> El nombre de la conexión que utilizamos soundmcName -> El nombre de un mc que usaremos para controlar el volumen bufferTimeC -> El buffer que establecemos */ _global.audioVideoStreamer=function(streamName, videoObjectName, netConnectionName, soundmcName, bufferTimeC){ //Asignación this.my_ns=streamName; this.my_video=videoObjectName; this.my_nc=netConnectionName; this.my_sound_mc=soundmcName; this.my_buffer=bufferTimeC; //Creación this.my_ns=new NetStream(this.my_nc); this.my_video.attachVideo(this.my_ns); this.my_ns.setBufferTime(this.my_buffer); this.my_sound_mc.attachAudio(this.my_ns); this.soundControl=new Sound(this.my_sound_mc); this.soundControl.setVolume(50); }//audioVideostreamer /* Función: doPlay Desc: Comienza a reproducir el stream indicado. Se desdobla en dos partes ya que la ejecución es distinta si se trata de un stream de audio ( mp3 )de uno de video ( flv ) Params: selectedStream -> El stream seleccionado para su reprodución selectedType -> Tiene dos posibles valores, "flv" o "mp3", nos indica el tipo de archivo que queremos reproducir */ audioVideoStreamer.prototype.doPlay=function(selectedStream,selectedType){ if(selectedType=="flv"){ this.my_ns.play(selectedStream); }//flv else if(selectedType=="mp3"){ this.my_ns.play("mp3:"+selectedStream); }//mp3 };//doPlay /* Función: doRewing Desc: Rebobina el stream una cantidad indicada de segundos, en este caso está preparado para que sea 10 segundos, pero se puede cambiar para recibir esta cantidad como parámetro Params: no tiene */ audioVideoStreamer.prototype.doRewing=function(){ this.my_ns.seek(this.my_ns.time-10); };//doRewing /* Función: doForward Desc: Avanza el stream una cantidad indicada de segundos, en este caso está preparado para que sea 10 segundos, pero se puede cambiar para recibir esta cantidad como parámetro Params: no tiene */ audioVideoStreamer.prototype.doForward=function(){ this.my_ns.seek(this.my_ns.time+10); };//doForward /* Función: doPause Desc: Pausa la reproducción del stream. Para que el stream vuelva a reproducirse, deberá ejecutarse esta función de nuevo Params: no tiene */ audioVideoStreamer.prototype.doPause=function(){ this.my_ns.pause(); };//doPause /* Función: doDisconnect Desc: Termina la reproducción del stream y lo libera. No cierra la conexión Params: no tiene */ audioVideoStreamer.prototype.doDisconnect=function(){ this.my_ns.play(false); this.my_ns.clear(); };//doDisconnect //////////////////////////USO this.createEmptyMovieclip("mi_mc", 1); reproductor=new audioVideoStreamer(el_stream, my_video, nc, mi_mc, 2); video1={label:"Macromedia", data:"video macromedia", typeF:"flv"}; musica1={label:"Bob & Marcia", data:"young gifted and black", typeF:"mp3"}; mis_Streams=[video1, musica1]; my_lb.setDataProvider(mis_Streams); my_lb.setChangeHandler("elegir", this); elegir=function(c){ selectedStream=c.getSelectedItem().data; selectedType=c.getSelectedItem().typeF; _root.reproductor.doPlay(selectedStream, selectedType); }; stop_btn.onRelease=function(){ reproductor.doDisconnect(); }; pause_btn.onRelease=function(){ reproductor.doPause(); }; rewing_btn.onRelease=function(){ reproductor.doRewing(); }; forward_btn.onRelease=function(){ reproductor.doForward(); };

Cuando esté terminado, lo pongo para descargar ( los archivos fla o as y el main.asc). Pero de momento para los no iniciados en flashcom les puede servir como punto de partida para ver qué fácil es hacer un reproductor de audio y video.

Ah claro, en pantalla tengo un objeto video de nombre: my_video, un componente listbox de nombre: my_lb y una serie de botones: stop_btn, pause_btn, rewing_btn, forward_btn

Continuará...