PLAYER FLV AS3 - XML

on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010 - 7 mai 2009 à 23:41
cs_lanner Messages postés 131 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 8 avril 2015 - 30 oct. 2010 à 20:54
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49987-player-flv-as3-xml

cs_lanner Messages postés 131 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 8 avril 2015
30 oct. 2010 à 20:54
Salut

Vous avez un exemple d'implémentation sur une page html ?

Merci
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
27 mai 2009 à 10:41
Non je n'ai pas adapté cette source pour visualiser un flux rmtp, je pense que google pourras t'en dire plus. Ici la source charge du flv vu que j'ai utiliser un composant FLVPlayback, je suis en train de réadapter cette source sans composant, avec la classe Video, pour qu'on puisse également lire du mp4 (H264) mais ce sera pour dans quelques semaines ....
@+.
ninjafury Messages postés 19 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 9 mai 2010
26 mai 2009 à 09:58
merci pour cette source, celà correspond à ce que je cherchais, continue commé celà, beau travail.
est ce que tu as essayé de l'adapter pour visualiser un flux rtmp, étant newbie sur flash, j'ai essayé de suivre les docs adobe mais j'avoue mon incompétence dans ce domaine.
je vais bien étudié tes sources et essayé de l'adapté sur mon site pour pouvoir enfin faire ce que j'essaye de faire depuis 3 mois.
merci encore
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
12 mai 2009 à 21:31
Et je viens de tester un mp4 en fullscreen, la qualité est juste impressionnante !!!
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
12 mai 2009 à 21:26
Ah ben voilà, j'ai juste jeter un coup d'oeil aux sources dispos sur le 1er lien cité plus haut et il s'avère que pour lire un mp4 en Flash il suffit d'utiliser la norme d'encodage H264, pour le reste ben un objet de classe Video() , NetStream() et NetConnetion. C'est absolument pareil que pour un FLV, vu que c'est le player (9 minimum) qui gère le codec. Donc d'ici une a deux semaines ma source revue et corrigée sans ce G*ç""&%ç de composant FLVPlayback qui m'apporte de toutes façons que des problèmes inutiles.
Voilà ;)
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
12 mai 2009 à 19:15
Je te l'accorde, ça surcharge le code...cependant tu choisi pas toujours le nom des variables, surtout si tu réutilise le code de quelqu'un d'autre. Et là, je t'assure que lorsque tu passe des heures à chercher une erreur tout ça parceque t'as pas mis this, ben après tu fait un effort pour le mettre à chaque fois...
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
12 mai 2009 à 18:39
A part pour pointer une variable locale, on utilise this que pour des callbacks (ou tout accès à l'objet pointé en retour)...
Je n'ai pas pensé à ce cas la, car je n'utilise pas strictement les même noms de paramètres et de variables dans une classe :s c'est assez embrouillant en effet et on pourrait même aller un peu plus loin...

package toto {
class toto {
private var toto:toto;
private function f(toto:toto):toto { ... }
}
}

Je rajoute un $ devant les noms de paramètres pour les différencier.
Rajouter un this à chaque ligne sa surcharge trop le code, je suis contre quand ce n'est pas nécessaire.

Stef.
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
12 mai 2009 à 15:58
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
12 mai 2009 à 11:50
Salut,
moi je suis pour mettre systematiquement les this, car non seulement on sait si la variable est une propriètés de la classe, mais ça permet d'éliminer certaine erreur de nom de variable ou de nom de fonction. Dire que la seule utilité de this est de pouvoir être passé en callback est une abberation stef. Ca signifie que tu n'est pas encore tout a fait familiarisé avec la POO. Voici le cas le plus simple :

private var toto:int;
public function fct(toto:int):void
{
this.toto = toto;
}
ici j'ai mis vonlontairement le même nom de variable pour montrer l'interet
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
11 mai 2009 à 23:09
Hello,

Est-ce que l'égalité stricte ne serait pas plus coûteuse en temps de calcul qu'une simple égalité? En plus de vérifier une valeur, il faut vérifier un type. Si quelqu'un a déjà fait des tests...

Pour le this, je ne comprend pas le problème. Normalement sa principale utilité (seule?) est d'être passé en paramètre pour spécifier un callback, mais pas vraiment pour faire jolie :o

Stef.
skconcept Messages postés 11 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 11 mai 2009
11 mai 2009 à 19:44
Merci pour votre source. Je ne suis pas connaisseur donc ne pourrai apporter aucune remarque technique. Néanmoins merci pour votre partage avec les non initiés comme moi pour les aider à essayer de comprendre.
faiblard Messages postés 337 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 janvier 2011
11 mai 2009 à 18:52
"Est-ce que tu penses que ça améliorerait les perfs ? ... Je continue d'étudier ça."
pour les this ça n'améliore pas les perfs mais certain trouvent ça plus lisible car on sais de suite que c'est un membre de la classe

Pour les fonctions Fwd et Rew : Tu fais qu'un fonction avec différent paramètres... Après faut réfléchir a comment faire :)

Effectivement j'avais pas vu que tu décrémenté le inc... Erreur de ma part :)

Pour les égalités strict : cela est sensé être plus performants en AS3 mais cela permet surtout de vérifier la valeur et le type de la variable testé ce qui rend le code plus robuste.
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
11 mai 2009 à 18:43
Hello Faiblard,
Merci pour ton commentaire.
:)

- Pour le this il semblerait de ce que j'ai pu voir que plus personne l'utilise dans les classes AS3, mais bon là je ne suis sûr de rien, c'est ma première classe et j'ai encore de la peine à saisir les notions de local, global, private et public.

Est-ce que tu penses que ça améliorerait les perfs ? ... Je continue d'étudier ça.

- Pour les fonctions Fwd et Rew, en effet on m'a déjà suggérer de faire qu'une seule fonction. Mais en fait c'est pas si simple que ça vu qu'il y a deux boutons ... , à moins qu'on puisse se référer à un objet en disant "si c'est tel objet qui est pressé fais ceci, sinon ..." .

.. Mmh , je vais encore y réfléchir ...

- Désolé pour le ; c'est corrigé pour la prochaine Màj. Pour le nom du String, en effet un nom plus explicite serait : var nodeXML, c'est corrigé également.

Pour la la ligne: "player.play(xml.elements()[inc].@stream);" , non ce n'est pas la même que string.
Ici "inc" prend la valeur de la décrémentation en cours, si la décrémentation = 0, (soit nodeXML:String), alors on la stop .

C'est peut-être pas la meilleur façon de procéder remarque, si t'as une meilleure idée ...

_ Pour l'égalité stricte, jamais utilisé donc j'y avait pas pensé, j'imagine que tu la propose parce que ça améliorerait la solidité de la fonction, c'est ça ?

La fonction volume est mal foutue pour l'instant, je te l'accorde également, je finis de corrigé mon fullscreen et je m'y attèle ... :)

@+
faiblard Messages postés 337 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 janvier 2011
11 mai 2009 à 10:52
Après une première lecture rapide :

Il serait préférable de mettre les this. devant les membres de la classe (ça fait quelque carac en plus mais on sais de suite si c'est une variable local ou non...)

Je pense que l'on peu en réfléchissant un peu regrouper en partie les fonction Fwd et Rew le code étant très proche même dans ton exemple...

(a part le else qui est légèrement différent dans les 2 mais on doit pouvoir regrouper...)

de plus dans functionRew :

(un ; a la fin de var string et un nom plus explicite serais pas de refus)
var string:String = (xml.elements()[inc].@stream)

if (string != (xml.elements()[0].@stream))
{
inc--;
player.play(xml.elements()[inc].@stream);

Pourquoi va tu rechercher xml.elements()[inc].@stream sur la ligne ci dessus? ce n'est pas la même que contenu dans string?

Pourquoi ne pas passez au égalité/inégalité stricte? (=== et !==)

Utilité de cette ligne : Si c'est = a 0 on assigne 0... de même légèrement au dessus (dans le code) mais avec 10
if (sf.volume == 0)
{
sf.volume = 0;
}
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
9 mai 2009 à 22:37
Donc cette source a son intérêt c'est un fait. Ce qui serait en revanche intéressant de savoir c'est "est-ce qu'elle est bien codée" et "que pourrais-t-on optimiser".
Ça aurait été plus profitable d'avoir ton avis sur ces points là.
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
9 mai 2009 à 22:26
Si c'est une critique et elle est pas valable. Des lecteurs FLV et codé proprement en AS3 y en a pas tant que ça et y en a encore pas sur Flashkod ! Par contre il est certain que je vais l'améliorer petit à petit. J'ai déjà fait quelques corrections mais j'attends de voir si un commentaire constructif m'incitera à en faire d'autres avant la MàJ.
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
9 mai 2009 à 19:22
Salut,

Bien. Donc ton player peut lire les vidéos FLV. Le truc, c'est que des players FLV on en trouve quand même en quantité enorme sur le net, et pas que des codes sales baclés. Je pense qu'au lieu de refaire toujours et encore la même chose (c'est pas une critique hein) il serait bon d'aller de l'avant. Par exemple ça serait simpatique si un player Flash pouvait lire du Mpeg! En plus, un lecteur Mpeg en Flash serait une première!

Stef.
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
8 mai 2009 à 01:17
Ah lalal ! Comme il est vilain !
En effet j'y avais pensé au lors du codage du chargement pi je me suis perdu dans mes différentes fonctions et du coup j'ai complètement oublié :=D !!

Donc à ajouter aux écouteurs:

xmlLoader.addEventListener(IOErrorEvent.IO_ERROR, functionIOError);

Et y associé la fonction:

function functionIOError(event:IOErrorEvent):void {
xmlLoader.removeEventListener(IOErrorEvent.IO_ERROR, functionIOError);
removeChild( xmlLoader);
}

Sans oublié d'importer la classe :

import flash.errors.IOError;

Voilà :=)
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
8 mai 2009 à 00:30
Salut,

je n'ai pas encore regardé le code mais déjà je peux te dire que tu as oublié de gérer les erreurs IO sur ton chargement XML :p

Stef.
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
7 mai 2009 à 23:41
Ouuupss, j'ai oublié:
Merci à Gremlins7 et Peg de Flashkod et Dada et Monz de Mediabox pour les coups de pouce !
Rejoignez-nous