Comunidad de diseño web y desarrollo en internet online

Problema con la API de Youtube no se ve el video

Citar            
MensajeEscrito el 26 Feb 2010 11:04 am
Buenos dias,

Estoy aprendiendo a utilizar AS3 y llevo 8 días rompiéndome la cabeza para solucionar este problema, Ojalá podais ayudarme.
Necesito cargar una serie de videos de Youtube en un swf, logro cargar el primero mediante una función en el swf inicial (main.swf),sobre el inicial cargo otro swf (movie2.swf)que tiene opciones de búsqueda y selección de videos , hasta aquí todo bien. he utilizado esta página com referencia :http://code.google.com/intl/en/apis/youtube/flash_api_reference.html

Me doy cuenta que no puedo acceder a la función que carga los videos en main.swf desde movie2.swf por el cambio del concepto de root. Así que decido crear una clase a la que pueda acceder desde cualquiera de los swf. Por medio de la clase que creé sólo se escucha el video pero no se ve, el código de la clase es el siguiente:

Código ActionScript :

package youTube{
//Importo las clases necesarias
      import flash.display.Sprite;
      import flash.display.MovieClip;
      import flash.display.Loader;
      import flash.events.*;
      import flash.net.*;
      import flash.system.Security;
      
//Evito problemas de crossdomain
Security.allowInsecureDomain("*");
Security.allowDomain("*");
      


   public class youTube extends Sprite{
      public var player:Object;
      public var videoId:String;
      public var loader:Loader = new Loader();
      public function youTube(videos:String=null){
         videoId=videos;
      // Contenedor
      loader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit);
      loader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3"));
      
      }
//Listeners
   private function onLoaderInit(event:Event):void {
    addChild(loader);
    loader.content.addEventListener("onReady", onPlayerReady);
    loader.content.addEventListener("onError", onPlayerError);
    loader.content.addEventListener("onStateChange", onPlayerStateChange);
    loader.content.addEventListener("onPlaybackQualityChange", onVideoPlaybackQualityChange);
}

   private function onPlayerReady(event:Event):void {
    // Event.data contains the event parameter, which is the Player API ID 
    trace("player ready:", Object(event).data);
   
    player = loader.content;
    
    //Este lo ejecuta
   player.loadVideoById(videoId);
   //Este lo carga y pausa
   //player.cueVideoById(videoId);
   
   
    // Tamaño y posición
    player.setSize(480, 360);
   player.x=385;
   player.y=113;
}

 private function onPlayerError(event:Event):void {
    // Event.data contains the event parameter, which is the error code
    trace("player error:", Object(event).data);
}

 private function onPlayerStateChange(event:Event):void {
    // Event.data contains the event parameter, which is the new player state
    trace("player state:", Object(event).data);
}

 private function onVideoPlaybackQualityChange(event:Event):void {
    // Event.data contains the event parameter, which is the new video quality
    trace("video quality:", Object(event).data);
}
// Función para parar la ejecución del video
public function destruir(){
player.stopVideo();
player.clearVideo();
player.destroy();
loader.unload();

}
   
}
   
}


El código en el swf desde donde llamo a la clase es:

Código ActionScript :

import youTube.youTube;
var YT:youTube= new youTube("u1zgFlCw8Aw");


En fin gracias de antemano por vuestro tiempo y ojalá me podais decir que estoy haciendo mal.

Por ikim

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Feb 2010 11:11 am
Lo siento la URL que publiqué no es la correcta ( soló funciona con el cromeless player) , substituir :

Código ActionScript :

loader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3"));


por:

Código ActionScript :

loader.load(new URLRequest("http://www.youtube.com/v/"+videos+"&version=3"));


También se me olvidó publicar el Output:

player ready:
player state: -1
player state: -1
video quality: medium
Error opening URL 'http://www.youtube.com/get_video?noflv=1&t=vjVQa1PpcFO37Pfwtst9PTN3BDIpYZvxmPiI6uqhlE4=&eurl=file%3A%2F%2F%2FC%7C%2FDocuments%2520and%2520Settings%2Fmaika2%2FMis%2520documentos%2Ftrabajos%2Fwebs%2Fconsorci%2Fweb%2Fprueba2.swf&splay=1&fmt=34&video_id=u1zgFlCw8Aw&el=embedded&asv=3'
player state: 3
player state: 1
Error opening URL 'http://video-stats.video.google.com/s?st=0.2&bt=0.668&md=1&cr=US&splay=1&vid=u2I7WFJyDzX1G9wcroednwtDQAiKA2ULC&fv=WIN%209%2C0%2C115%2C0&bd=121432&eurl=file%3A%2F%2F%2FC%7C%2FDocuments%2520and%2520Settings%2Fmaika2%2FMis%2520documentos%2Ftrabajos%2Fwebs%2Fconsorci%2Fweb%2Fprueba2.swf&ns=yt&hl=en&len=258.227&docid=u1zgFlCw8Aw&bc=125983&h=335&plid=AASAfvBxYz8Eqh_O&w=447&cfps=0&hbt=8.484&scoville=1&hbd=4391320&sd=B4A7D08C6HH&fexp=904404,905208&rt=1.792&fmt=34&et=0.2&el=embedded'
Error opening URL 'http://s2.youtube.com/s?st=0.2&yttk=1&asv=3&plid=AASAfvBxYz8Eqh_O&ctp=1&vid=u2I7WFJyDzX1G9wcroednwtDQAiKA2ULC&docid=u1zgFlCw8Aw&fmt=34&et=0.2&el=embedded&ns=yt'

Por ikim

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Feb 2010 06:35 pm
Por si a alguien le interesa, ya encontré la solución, como mencioné anteriormente estoy aprendiendo AS3 así que supuse que con el addChild en la clase era suficiente.

Sólo me faltaba una línea en el swf quedando así:

Código ActionScript :

import youTube.youTube;
var YT:youTube= new youTube("u1zgFlCw8Aw");
addChild (YT);


Me faltaba el addChild

Por ikim

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Sep 2010 04:31 am
Sería interesante que compartas tus archivos para ver el ejemplo :)

Por danigon

Claber

146 de clabLevel



Genero:Masculino  

Costa Rica

firefox

 

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