IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[FLASH MX2004 PRO] NetStream et notifications onStatus...


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Ingénieur développement
    Inscrit en
    Juillet 2004
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement

    Informations forums :
    Inscription : Juillet 2004
    Messages : 323
    Par défaut [FLASH MX2004 PRO] NetStream et notifications onStatus...
    J'ai un gros gros soucis avec les notifications de onStatus de la classe NetStream.

    En effet, dans certains cas, les notifications de type NetStream.Play.Stop et NetStream.Play.Empty n'arrivent pas.

    C'est toujours au même endroit que cela ce produit.
    Dans le cas ou je fais appel à des fichier FLV dans le même répertoire que mon FLASH ou dans un dossier au même niveau, ça fonctionne.
    Par contre, dès que je fais appel à un fichier distant sur un serveur web, avec une url, je n'obtiens pas les notifications NetStream.Play.Empty et NetStream.Play.Stop dans le onStatus.

    J'ai juste NetStream.Play.Start et NetStream.Play.FULL et je ne peux donc pas détecter la fin de la vidéo.

    Savez-vous d'ou cela provient?

    J'utilise le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    stop();
     
    var netStreamJLR_chrono_180:NetStream = _level0.loading.videoManagerStep.chooseNetStreamFromFolder("JLR_chrono_180");
    trace("debug chrono : "+netStreamJLR_chrono_180.bytesLoaded+"/"+netStreamJLR_chrono_180.bytesTotal);
    this.myVideo.attachVideo(netStreamJLR_chrono_180);
     
    netStreamJLR_chrono_180.onStatus = function(infoObject) {
    	maVariable = infoObject.code;
    	trace(maVariable);
    	if (maVariable == "NetStream.Play.Stop") {
    		_root.gotoAndPlay("EM1D");
    	}
    };
     
    netStreamJLR_chrono_180.pause();
    La vidéo FLV a déjà été chargée au préalable, je récupère donc un objet de type NetStream grâce à la méthode chooseNetStreamFromFolder(). Tout se passe bien car la vidéo est bien lue, le son aussi est ok.

    Je trace "maVariable", celle-ci me renvoie des NetStream.Play.Full mais aucun NetStream.Play.Stop. Je ne comprends pas pourquoi? De plus, cela ne se produit que lorsque je fais appel à des url comme je l'ai expliqué plus haut.

    En fait, si mon fichier appelé est "truc/machin.flv", ça fonctionne, mais si j'ai "http://localhost/truc/machin.flv", je ne reçois pas les notifications NetStream.Play.Stop et NetStream.Play.Empty, ce qui est très génant car je ne peux pas savoir si la vidéo a été jouée ou non...

    Savez-vous comment je peux tester si la vidéo est finie? Ou alors, savez-vous d'ou peut provenir le problème?

    Merci.

  2. #2
    Membre expérimenté Avatar de younes_
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 229
    Par défaut Re: [FLASH MX2004 PRO] NetStream et notifications onStatus..
    Salut,
    J'ai pas le reste de ton code pour savoir ce qui va pas mais, en tout essai avec cet exemple, la fonction onStatus reçois tout les évènements diffusés par Netstream.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var my_nc:NetConnection = new NetConnection();
    my_nc.connect(null);
     
    var my_ns:NetStream = new NetStream(my_nc);
    // my_video est un object Video sur la scéne
    my_video.attachVideo(my_ns);
    my_ns.play("http://www.videospark.com/feeds/sumo.flv");
     
    my_ns.onStatus = function(infoObject:Object) {
      for (var prop in infoObject) 
        trace("\t"+prop+":\t"+infoObject[prop]);
      trace("");
    };
    PS : J'ai remarqué aussi qu'avec certaine type compression de la video en format flv, Flash n'arrive pas à détecter la fin de la video.

    a+

  3. #3
    Membre éclairé
    Profil pro
    Ingénieur développement
    Inscrit en
    Juillet 2004
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement

    Informations forums :
    Inscription : Juillet 2004
    Messages : 323
    Par défaut
    Bien joué, ça vient en effet de la vidéo!

    J'ai passé un jour entier à chercher le problème, donc merci, tu m'as bien mis sur la voie!

    Il était temps que je trouve.
    Le problème, c'est qu'il va falloir réencoder toutes les vidéos.

    As-tu plus d'infos sur les formats de compression à éviter?

    Merci beaucoup en tous cas!

  4. #4
    Membre expérimenté Avatar de younes_
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 229
    Par défaut
    Salut,

    Je ne sais pas en réalité quelle format il faut... mais d'après les testes que j'ai effectués seule la compression avec Sorenson Squeeze permet d'éviter ce problème.

    a+

  5. #5
    Membre expérimenté Avatar de younes_
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 229
    Par défaut
    Bon, je viens de trouver d'où vient le probléme... En fait, c'est un bug dans la plupart des logiciels de compression qui n'enregistrent pas correctement le métadata qui détermine la durée de la vidéo.
    Pour régler ce probléme, il suffit de patcher les fichiers flv avec cet outil grauit: Buraks FLVMDI.

    Voilà

    a+

  6. #6
    Membre éclairé
    Profil pro
    Ingénieur développement
    Inscrit en
    Juillet 2004
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement

    Informations forums :
    Inscription : Juillet 2004
    Messages : 323
    Par défaut
    J'ai essayé le soft, mais ça ne fonctionne pas.

    En fait, j'ai essayé de lire mes vidéos avec le lecteur "Riva TNT", et pour toutes les vidéos qui ont des problèmes, le lecteur n'arrive pas tout à fait à la fin.
    Il doit donc réellement y avoir un problème sur ces vidéos.

    Je pense donc qu'il faut réencoder les vidéos.
    C'est étrange car certaines fonctionnent et d'autres non.

    En tous cas, merci pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH MX2004 PRO] Code de préload en AS2 & player 7
    Par Geilgestorm dans le forum Flash
    Réponses: 3
    Dernier message: 22/10/2004, 16h26
  2. Réponses: 18
    Dernier message: 19/08/2004, 15h11
  3. [FLASH MX2004 PRO] Remplacer un caractere
    Par alex57 dans le forum Flash
    Réponses: 2
    Dernier message: 17/08/2004, 19h50
  4. [FLASH MX2004 PRO] Problème étrange avec LoadClip...
    Par josemoroide dans le forum Flash
    Réponses: 6
    Dernier message: 04/08/2004, 15h41
  5. [FLASH MX2004 PRO] Bug scrollPane
    Par dens63 dans le forum Flash
    Réponses: 16
    Dernier message: 26/07/2004, 10h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo