Forums Développement Multimédia

Aller au contenu

- - - - -

Ecran noir - vidéo YouTube dans une application Air

CODE VIDEO

Aucune réponse à ce sujet

#1 qc910

    Ceinture Blanche

  • Members
  • Pip
  • 1 messages

Posté 21 March 2014 - 22:45 PM

Bonjour, je poste car là je suis complètement bloqué.

Je suis actuellement en stage et doit travaillé sur le développement d'une application mobile Air déjà commencée et développée avec la bibliothèque Starling. On m'a demandé d'y ajouter des vidéos Youtube.
Jusque là pas de problème, j'ai ajouté le player avec l'aide de l'API YouTube, à la compilation et à l'essai sur ordinateur, la vidéo s'affiche et se lance normalement. Là où ça bogue, c'est lorsque je la lance sur le mobile, le player s'ouvre avec l'image de présentation et lorsqu'on lance la vidéo le son joue mais pas l'image, pas de vidéo.
Là où c'est bizarre, c'est quand je repars sur l'écran d'accueil du mobile et reviens sur l'appli, là, la vidéos fonctionne nickel, image et son.

J'ai chercher un peu partout, essayais des truques, mais rien. Ce truque bizarre est mon meilleur résultat.

Voilà mon code qui charge le player et la vidéo, mais je ne pense pas que ça vienne de là. Si quelqu'un à une idée d'où peut venir le problème ou une autre méthode pour lire des vidéos YouTube avec AS3, je prend.

Merci.

[code]package lanceur
{
import starling.events.*;
import starling.core.Starling;
import feathers.controls.Label;
import org.flashdevelop.utils.FlashConnect;
import flash.display.Loader;
import flash.events.Event;
import flash.net.URLRequest;

import starling.core.Starling;
import org.flashdevelop.utils.FlashConnect;

/**
* ...
* @author quentin couillard
*/
public class YouTubeLanceur extends Lanceur
{
private var _Url:String;
private var loader:Loader;
private var player:Object;
private var chargeTxt:Label;

public function YouTubeLanceur(DivX:Number, DivY:Number, url:String):void {
_Url = url;
super(DivX,DivY);
}
override protected function draw():void {
super.draw();

chargeTxt = new Label();
chargeTxt.text = "Chargement...";
this.addChild(chargeTxt);

chargeTxt.x = header.x + header.width *2/5;
chargeTxt.y = header.y + header.height / 4;

//A PARTIR DE LA CODE API YOUTUBE
loader = new Loader();
loader.contentLoaderInfo.addEventListener(flash.events.Event.INIT, onLoaderInit);
loader.load(new URLRequest(_Url));
}
override protected function closing(event:starling.events.Event):void {
player.stopVideo()
player = null;
Starling.current.nativeStage.removeChild(loader);
loader = null;
super.closing(event);
}

private function onLoaderInit(event:flash.events.Event):void {
Starling.current.nativeStage.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:flash.events.Event):void {
this.removeChild(chargeTxt);

// Event.data contains the event parameter, which is the Player API ID
FlashConnect.trace("player ready:", Object(event).data);
// Once this event has been dispatched by the player, we can use
// cueVideoById, loadVideoById, cueVideoByUrl and loadVideoByUrl
// to load a particular YouTube video.
player = loader.content;

// Set appropriate player dimensions for your application

player.setSize(calque.width, calque.height);//Prend les dimensions d'un objet Rectangle
player.x =calque.x;
player.y = calque.y;
}
private function onPlayerError(event:flash.events.Event):void {
// Event.data contains the event parameter, which is the error code
FlashConnect.trace("player error:", Object(event).data);
}
private function onPlayerStateChange(event:flash.events.Event):void {
// Event.data contains the event parameter, which is the new player state
FlashConnect.trace("player state:", Object(event).data);
}
private function onVideoPlaybackQualityChange(event:flash.events.Event):void {
// Event.data contains the event parameter, which is the new video quality
FlashConnect.trace("video quality:", Object(event).data);
}
}

}[/AS]




Répondre à ce sujet



  

1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP