Comunidad de diseño web y desarrollo en internet online

Creando tu propia clase VideoPlayer

Citar            
MensajeEscrito el 30 Ene 2007 08:01 pm
Debo admitir que estoy verde en cuanto al uso de clases , pero ya era hora de dar ese paso. Así que mi reto es hacer una clase VideoPlayer con miras a hacerlo componente después. He leido, me he quebrado el coco un poco, probando,etc., pero me falto bastante todavìa.

Bueno, decidí empezarme a embarrar las manos y esto es lo que llevo:

Código :

class VideoPlayer {
   //variables publicas
   public var vidConexion:NetConnection;
   public var videoStatus:String;
   public var controls:MovieClip;
   public var video:Video;
   public var vidStream:NetStream;
   public var videoPos:Number;
   public var thumb:MovieClip;
   public var timebar:MovieClip;
   public var bPlay:Button;
   public var bPause:Button;
   public var bStop:Button;
   public var bForward:Button;
   public var bBackward:Button;
   //variables privadas
   //duracion del video tomada del metadata del mismo
   private var duracionVid;
   // duracion en minutos y segundos
   private var duracionMinSeg;
   public function PlayerVideo() {
      vidConexion = new NetConnection();
      vidConexion.connect(null);
      vidStream = new NetStream(vidConexion);
      //carga el video .FLV  al objeto video
      video.attachVideo(vidStream);
      vidStream.setBufferTime(1.000000E-001);
   }
   public function creaPlayer(mPlay:String, mPause:String, mStop:String, mForward:String, mBackward:String) {
      controls.attachMovie(mPlay, "bPlay", controls.getNextHighestDepth());
      controls.attachMovie(mPause, "bPause", controls.getNextHighestDepth());
      controls.attachMovie(mStop, "bStop", controls.getNextHighestDepth());
      controls.attachMovie(mForward, "bForward", controls.getNextHighestDepth());
      controls.attachMovie(mBackward, "bBackward", controls.getNextHighestDepth());
      controls.bPlay.onRelease = function() {
         vidStream.pause(false);
         this._visible = false;
         controls.bPause._visible = true;
         videoStatus = "playing";
      };
      controls.bPause.onRelease = function() {
         vidStream.pause(true);
         this._visible = false;
         controls.bPlay._visible = true;
         videoStatus = "paused";
      };
      controls.bStop.onRelease = function() {
         vidStream.pause(true);
         vidStream.seek(0);
         controls.bPlay._visible = true;
      };
      controls.bForward.onRelease = function() {
         if ((vidStream.time+3)<duracionVid) {
            videoPos = vidStream.time+3;
            vidStream.seek(Math.floor(videoPos));
         } else {
            trace("No avanzar más");
         }
      };
      controls.bBackward.onRelease = function() {
         if ((vidStream.time-3)<duracionVid) {
            videoPos = vidStream.time-3;
            vidStream.seek(Math.floor(videoPos));
         } else {
            trace("No avanzar más");
         }
      };      
   }
}


Por el momento es con algunas funciones básicas.

Para rematar , me desesperé en verlo funcionar así que "cree" una instancia de esta clase de esta forma(no sin antes hacer su linkage respectivo a cada botón (donde hice prubas usàndolos como Movie Clips pero me sale un error de The class or interface 'bPlay' could not be loaded.):

Código :

import VideoPlayer
var VP:VideoPlayer=new VideoPlayer();
VP.creaPlayer("bPlay","bPause","bStop","bForward","bBackward");


:oops: Así de verde estoy :lol:
P.D. HELP!

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 31 Ene 2007 03:40 am
....ah Felicitaciones .
si a pesar de ya vi OOP en la Universidad , la he implementado muy poco en mis aplicaciones ,
voy a probar tu clase a ver que tal

Por eveevans

Claber

450 de clabLevel

3 tutoriales

 

Nicaragua

firefox
Citar            
MensajeEscrito el 31 Ene 2007 05:38 pm
Help please! Estoy algo trabadón con esto.

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 31 Ene 2007 05:44 pm
Riendo Gracias eveevans , en verdad da pena andar preguntando sobre esto siendo que ya vimos algo de esto en la universidad (memoria traicionera, por què no puse màs atención en clases, sí... en clase de classes) Apenado

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 31 Ene 2007 08:16 pm
Estos cambios son los que hice , lo probé y parece ya accesar a las funciones.
Tips, sugerencias, correcciones, todo se acepta. :D


Código :

class Video_Player {
   //variables publicas
   public var vidConexion:NetConnection;
   public var videoStatus:String;
   public var controls:MovieClip;
   public var video:Video;
   public var vidStream:NetStream;
   public var videoPos:Number;
   public var thumb:MovieClip;
   public var timebar:MovieClip;
   public var bPlay:Button;
   public var bPause:Button;
   public var bStop:Button;
   public var bForward:Button;
   public var bBackward:Button;
   //variables privadas
   //duracion del video tomada del metadata del mismo
   private var duracionVid;
   // duracion en minutos y segundos
   private var duracionMinSeg;
   public function Video_Player() {
      trace("Player Video creado");
      vidConexion = new NetConnection();
      vidConexion.connect(null);
      vidStream = new NetStream(vidConexion);
      //carga el video .FLV  al objeto video
      video.attachVideo(vidStream);
      vidStream.setBufferTime(1.000000E-001);
      bPlay.onRelease = function() {
         vidStream.pause(false);
         this._visible = false;
         bPause._visible = true;
         videoStatus = "playing";
         trace("Aplaste Play");
      };
      bPause.onRelease = function() {
         vidStream.pause(true);
         this._visible = false;
         bPlay._visible = true;
         videoStatus = "paused";
         trace("Aplaste Pause");
      };
      bStop.onRelease = function() {
         vidStream.pause(true);
         vidStream.seek(0);
         bPlay._visible = true;
         trace("Aplaste Stop");         
      };
      bForward.onRelease = function() {
         if ((vidStream.time+3)<duracionVid) {
            videoPos = vidStream.time+3;
            vidStream.seek(Math.floor(videoPos));
            trace("Aplaste FF");
         } else {
            trace("No avanzar más");
         }
      };
      bBackward.onRelease = function() {
         if ((vidStream.time-3)<duracionVid) {
            videoPos = vidStream.time-3;
            vidStream.seek(Math.floor(videoPos));
            trace("Aplaste BF");            
         } else {
            trace("No avanzar más");
         }
      };
   }
}

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Feb 2007 11:04 pm
Ya me responden los botones , ahora queda la parte de hacer funcionar el video :P .
A contunuaciòn los leves cambios.

La clase así va:

Código :

class Video_Player extends MovieClip {
   //variables publicas
   public var vidConexion:NetConnection;
   public var videoStatus:String;
   public var controls:MovieClip;
   public var video:Video;
   public var vidStream:NetStream;
   public var videoPos:Number;
   public var thumb:MovieClip;
   public var timebar:MovieClip;
   public var bPlay:Button;
   public var bPause:Button;
   public var bStop:Button;
   public var bForward:Button;
   public var bBackward:Button;
   //variables privadas
   //duracion del video tomada del metadata del mismo
   private var duracionVid;
   private var vidpath:String;
   // duracion en minutos y segundos
   private var duracionMinSeg;
   public function Video_Player() {
      controls = this;
      creaConexionVideo();
      creaControles();
      trace("Video Player creado");
   
    vidStream.play(vidpath);
   
}


private function creaConexionVideo():Void{
   //----------------------------------------------------------------
      //   Creamos las conexiones para el video
      //----------------------------------------------------------
      vidConexion = new NetConnection();
      vidConexion.connect(null);
      vidStream = new NetStream(vidConexion);
      //carga el video .FLV  al objeto video
      video.attachVideo(vidStream);
      vidStream.setBufferTime(1.000000E-001);

      controls = _root.createEmptyMovieClip("controls", _root.getNextHighestDepth());
}

private function creaControles():Void{
               
      //---------------------------------------------------------------------
      //       Controles
      //---------------------------------------------------------------------
      bPlay.onRelease = function() {
         vidStream.pause(false);
         this._visible = false;
         bPause._visible = true;
         videoStatus = "playing";
         trace("Playing: "+vidpath);
         vidStream.play(vidpath);
      };
      bPause.onRelease = function() {
         vidStream.pause(true);
         this._visible = false;
         bPlay._visible = true;
         videoStatus = "paused";
         trace("Aplaste Pause");
      };
      bStop.onRelease = function() {
         vidStream.pause(true);
         vidStream.seek(0);
         bPlay._visible = true;
         trace("Aplaste Stop");
      };
      bForward.onRelease = function() {
         if ((vidStream.time+3)<duracionVid) {
            videoPos = vidStream.time+3;
            vidStream.seek(Math.floor(videoPos));
            trace("Aplaste FF");
         } else {
            trace("No avanzar más");
         }
      };
      bBackward.onRelease = function() {
         if ((vidStream.time-3)<duracionVid) {
            videoPos = vidStream.time-3;
            vidStream.seek(Math.floor(videoPos));
            trace("Aplaste BF");
         } else {
            trace("No avanzar más");
         }
      };
   }
   public function set setVideoPath(path:String) {
      this.vidpath = path;
   }
}



En el archivo fla mando llamar el metodo que setVideoPath de esta forma:

Código :

mControl.setVideoPath("http://www.geelife.de/x/ash/VoodooClinton.flv");


Pero... al dar Play :

Código :

Playing: undefined


:crap:

Sigo dándome de topes, pero ahí poco a poco va saliendo. Ayuda please!

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.