Comunidad de diseño web y desarrollo en internet online

Problema con redirección en el video.

Citar            
MensajeEscrito el 09 Abr 2014 03:47 pm
Buenas a todos otra vez hoy vengo con una duda diferente.

Estoy haciendo un reproductor de vídeo con AS3 y resulta que los vídeos que quiero cargar se accede desde una ruta que redirecciona a la real yo pongo dominio.es/V/23 y este internamente me dice que el video esta en otra ruta dominio.es/videos/video4.mp4.

Si está ruta la pongo hardcodeada directamente en el programa de adobe flash funciona perfectamente, el problema viene cuando intento pasarle esa ruta por flashvars desde un HTML y entonces no funciona esa redirección.

Espero haberme explicado con claridad.

Mi pregunta es como puedo hacer para que pasando la ruta usando las flashvars siga reproducciendose el vídeo.

He aquí mi código.

Código ActionScript :

//Importamos las clases necesarias.
   import flash.display.*;
   import flash.media.*;
   import flash.net.*;
   import flash.utils.*;
   import flash.events.*;
   import flash.display.*;
   import flash.media.Sound;

//Parametros que recibimos de HTML
var $__paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;

//Datos para el video.
var $__UrlVideo:String = String($__paramObj["video"]);                     //Url del video
var $__nc:NetConnection;                  //Conexion con servidor.
var $__ns:NetStream;                     //Empieza el Streaming.
var $__video:Video;                        //Objeto video.
var $__AutoPlay:String = String($__paramObj["autoplay"]);                  //Obtenemos el Play.
var $__Loop:String;
var $__Poster:String= String($__paramObj["poster"]);                     //Ruta del poster.
var $__InsertPoster:URLRequest;               //Objeto para la petición del poster.
var $__CargadorPoster:Loader;               //Cargador del poster.
var $__Sonido:SoundTransform;
var $__timer:Timer;
      
//Metadatos del video.
var $__anchoV:Number;
var $__altoV:Number;
      
      
var altoBarra:Number = BarraNav.height;
//Metodo constructor pinta el video y crea la conexión.

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
      
      //Función inicializadora.

   $__nc = new NetConnection();                                          //Generamos la conexión
   $__nc.connect(null);                                                //Le decimos que el video esta alojado en un servidor externo que no es Flash Media Server.
         
   $__ns = new NetStream($__nc);   
         
   $__ns.client = this;
         
   $__ns.addEventListener(NetStatusEvent.NET_STATUS, this.estadoReproduccion);   
   $__ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR,NoError);                   //Añadimos un evento para que ignore errores de syncronismo.
                  
   $__video = new Video();                                                //Creamos el objeto video.
   $__video.attachNetStream($__ns);
   stage.addChild($__video);            

   if($__AutoPlay != "TRUE")
   {
      $__CargadorPoster = new Loader();
      $__InsertPoster = new URLRequest(this.$__Poster);
      $__CargadorPoster.load($__InsertPoster);
      stage.addChild($__CargadorPoster);
   }
         
   if($__AutoPlay == "TRUE"){
      $__ns.play($__UrlVideo);
   }else{
      $__ns.play($__UrlVideo);
      $__ns.pause();
   }

ObjectIndex();


//Metodos para ingnorar errores.      
function NoError(event:AsyncErrorEvent):void{
   //ignora errores.
}

//metodo de posicion del elemento.
function ObjectIndex():void{
   removeChild(Btn_fullscreen);
   removeChild(Btn_play);
   removeChild(Btn_pause);
   removeChild(Btn_SoundOn);
   removeChild(Btn_SoundOff);
   removeChild(BarraNav);
   
   stage.addChild(BarraNav);
   stage.addChild(Btn_fullscreen);
   stage.addChild(Btn_play);
   stage.addChild(Btn_pause);
   stage.addChild(Btn_SoundOn);
   stage.addChild(Btn_SoundOff);
}

               
//Metodos internos.
function estadoReproduccion(event:NetStatusEvent):void{                     //Obtenemos el estado de video.
   switch(event.info.code){
      case "NetStream.Play.Start":
      this.ratonAction();
      break;
      case "NetStream.Play.Stop":
      this.opacity();
      break;
   }
}
      
function onMetaData(info:Object){
   
   stage.addEventListener(Event.RESIZE,DimensionesRepro);
   
   function DimensionesRepro(event:Event=null):void{
   var ancho:Number = stage.stageWidth;
   var alto:Number = info.height*(((ancho*100)/info.width)/100);
   $__video.width = ancho;
   
   
   
   $__video.height = alto;
   $__video.y = (stage.stageHeight - alto) / 2;
   
   BarraNav.width = ancho;
   BarraNav.y = stage.stageHeight - BarraNav.height;
   
   Btn_pause.x = 0;
   Btn_pause.y = stage.stageHeight - Btn_pause.height;
   
   Btn_play.x = 0;
   Btn_play.y = stage.stageHeight - Btn_play.height;
   
   Btn_SoundOn.x = stage.stageWidth - (Btn_SoundOn.width + Btn_fullscreen.width);
   Btn_SoundOn.y = stage.stageHeight - Btn_SoundOn.height;
   
   Btn_SoundOff.x = stage.stageWidth - (Btn_SoundOn.width + Btn_fullscreen.width);
   Btn_SoundOff.y = stage.stageHeight - Btn_SoundOff.height;
   
   Btn_fullscreen.x = stage.stageWidth - Btn_fullscreen.width;
   Btn_fullscreen.y = stage.stageHeight - Btn_fullscreen.height;
}

   DimensionesRepro();
   
   
}
      
//Metodos con funcionalidades.
function silenciar(event:MouseEvent):void{                              //Eliminamos el sonido del video por completo.
   $__Sonido = new SoundTransform(0.0);
   $__ns.soundTransform = $__Sonido;
}
      
function sonido(event:MouseEvent):void{
   $__Sonido = new SoundTransform(1.0);                                    //SoundTransform el primero numero es el volumen y el segundo el canal -1 izquierdo 1 derecho.
   $__ns.soundTransform = $__Sonido;
}
            
//Control de reproduccion del video.
function Play(event:MouseEvent):void{
   $__ns.resume();
}
      
function Pause(event:MouseEvent):void{
   $__ns.pause();
}

function opacity():void{
   Btn_fullscreen.height = this.altoBarra;
   Btn_play.height = this.altoBarra;
   Btn_pause.height = this.altoBarra;
   Btn_SoundOn.height = this.altoBarra;
   Btn_SoundOff.height = this.altoBarra;
   BarraNav.height = this.altoBarra;
}

function ratonAction(){
   var inactivo;
   var t:Number = 3000;
   
   stage.addEventListener(MouseEvent.MOUSE_MOVE,ratonMovido);
   inactivo = setTimeout(ratonParado,t);
   
   function ratonMovido(e:MouseEvent):void{
      clearTimeout(inactivo);
      inactivo = setTimeout(ratonParado,t)
      opacity();
   }
   
   function ratonParado():void{
      Btn_fullscreen.height = 0;
      Btn_play.height = 0;
      Btn_pause.height = 0;
      Btn_SoundOn.height = 0;
      Btn_SoundOff.height = 0;
      BarraNav.height = 0;
   }
}


y aqui el tramo hardcodeado en el propio programa.

Código ActionScript :

/Datos para el video.
var $__UrlVideo:String = "http://www.viwomail.es/videoemail/C/28/video/envio";                     //Url del video
var $__nc:NetConnection;                  //Conexion con servidor.
var $__ns:NetStream;                     //Empieza el Streaming.
var $__video:Video;                        //Objeto video.
var $__AutoPlay:String = "TRUE";                  //Obtenemos el Play.
var $__Loop:String;
var $__Poster:String ='http://www.viwomail.es/video/front/viwomail/video_viwomail/poster_viwomail.jpg';                     //Ruta del poster.
var $__InsertPoster:URLRequest;               //Objeto para la petición del poster.
var $__CargadorPoster:Loader;               //Cargador del poster.
var $__Sonido:SoundTransform;
var $__timer:Timer;


Gracias ante todo.

Por tecnoendika

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Abr 2014 04:46 pm
Yo no tengo ningun problema con el redireccionamiento:
Hice una

https://dl.dropboxusercontent.com/u/21621726/cristalab/video_fv/index.html escribió:

demo
y anda bien.

https://dl.dropboxusercontent.com/u/21621726/cristalab/video_fv/TestVideo.as escribió:

Acá tenés el código
, aunque no hace diferencia para vos, ya que hace lo mismo que cualquier reproductor de video en su forma más básica.

Por rodrigolopezpeker

61 de clabLevel



 

chrome
Citar            
MensajeEscrito el 09 Abr 2014 05:05 pm
Gracias por responder.

Tú solución está cargando la URL dentro del SWF yo estoy intentando pasarla desde fuera con los flashvars.

Si lo pongo dentro del SWF si me funciona si lo intento pasar como parametro desde fuera no.

Por tecnoendika

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Abr 2014 07:30 pm
Para nada, fijate bien el código:
Abri
https://dl.dropboxusercontent.com/u/21621726/cristalab/video_fv/index.html
y pone ver codigo fuente (HTML).
- linea 21 y 22
var flashvars = {};
flashvars.videoURL = "http://www.viwomail.es/videoemail/C/28/video/envio";


La clase que subi esta leyendo los datos de FlashVars...

var params:Object = stage.loaderInfo.parameters;
var url:String;
if (params.videoURL) {
url = params.videoURL;
tf.text = 'FlashVars::videoURL=' + url;
} else {
tf.text = 'FlashVars::videoURL inexistente.';
return;
}

Asi que problablemente no estas leyendo bien los parametros FlashVars en tu codigo.

Por rodrigolopezpeker

61 de clabLevel



 

chrome
Citar            
MensajeEscrito el 10 Abr 2014 09:05 am
Hola ya he visto como pasas los parametros ahora un preguntita.

El video se te ve en el navegador o solamente sale la dirección URL porq con tu ejemplo tampoco lo veo.

Gracias (Lo mismo es mi pc que no lo veo con el).

Por tecnoendika

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Abr 2014 03:25 pm
El problema está solucionado es un problema del código PHP que analizaba la petición.

En Chrome funcionaba bien y en el resto también muchas gracias.

Por tecnoendika

15 de clabLevel



 

firefox

 

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