begin process at 2008 07 21 00:09:01
1 213 530 membres
431 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LE STREAMING VIDEO SANS PEINE : TU APPUIES, ÇA MARCHE.


Information sur la source

Catégorie :Video Niveau : Initié Date de création : 06/02/2005 Vu / téléchargé: 56 636 / 7 684

Note :
9,08 / 10 - par 12 personnes
9,08 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note

Description

décortication du maniement complexe de la video en live avec l'ami flash MX 2004 (obligé ce coup ci :) ). déja vu.
y'en a déja 5 dont 2 tro la classe mais disons que... bon ben disons rien.
si vous etes un(e) flemmard(e) ou un(e) curieu(xse), ça peut valoir le détour.

Source

  • // le streaming VIDEO sans peine.
  • // pour les non-comprenants
  • //
  • // Créer un objet NetConnection : c'est obligé ; sans ça point de FLV.
  • var Ma_Connection:NetConnection = new NetConnection();
  • // Créer une connexion en flux continu :
  • // pour l'instant elle est vide, juste on l'ouvre
  • Ma_Connection.connect(null);
  • //Créer un objet NetStream qui permettra de choisir
  • //notre media via la connection ouverte
  • Mon_Flux = new NetStream(Ma_Connection);
  • /////////////////////////////
  • // preloader ///
  • /////////////////////////////
  • // nota : il existe un handler onStatus() :
  • // onStatus() ça permet de controler ce qui se passe pendant que ça charge
  • // ou s'il y a une erreur mais bon... passons
  • this.onEnterFrame = function(){
  • //Mon_Flux.bytesTotal; = le poids total du flv en octets
  • //Mon_Flux.bytesLoaded; = le nombre d'octets chargés
  • tot = Mon_Flux.bytesTotal; //récupère le poids total du FLV
  • lod = Mon_Flux.bytesLoaded; //récupère le poids déjà chargé
  • pourcent = lod/tot; //rapport : déja chargé / restant à charger
  • fait = int(pourcent*100);//pourcentage de chargement
  • // tant que tout n'est pas chragé
  • if (fait <100)
  • {
  • //la barre de progression... heu... progresse
  • progbar.bar._width = fait*2.9;// la taille finale de la progressbar est 290px
  • progbar._alpha = 100;
  • // sortie pour voir la progression en chiffres
  • // trace(pourcent +" "+progbar.bar._width);
  • }else{
  • //si c'est fini
  • if (fait == 100)
  • {
  • //estompe la progbar
  • progbar._alpha =10;
  • }
  • }
  • };
  • // associer la vidéo qui sort de Mon_Flux à l'objet Video sur la scène :
  • ma_video.attachVideo(Mon_Flux);
  • // définir la durée du tampon :
  • // un tampon ça sert à ne pas interrompre le flim quand il est diffusé.
  • // C'est comme quand on grave un CD.
  • // dilemne : on doit choisir entre un gros tampon bien confortable
  • // mais inchargeable et un petit tampon tout con qui s'essouffle très vite.
  • // faut essayer... la valeur est en dizièmes de secondes.
  • Mon_Flux.setBufferTime(5);
  • // lire quel fichier ?
  • Mon_Flux.play("http://nicoptere.land.free.fr/tutos/02/2.flv");
  • /////////////////////////////
  • function lecture() {
  • // afficher la position de la tête de lecture en secondes
  • tmp = Mon_Flux.time; // récupère le temps actuel via netstream
  • sec = Math.round(tmp);//arrondit pour faire des secondes sans virgule
  • temps.text = sec+" secs";// affichage de la seconde en cours de lecture
  • bl.text = Mon_Flux.bufferLength;// données effectivement chargées dans le tampon
  • bt.text = Mon_Flux.bufferTime;// taille du tampon en diièmes de secondes
  • }
  • // rafraichit toutes les secondes
  • setInterval( lecture, 1000 );
  • /////////////////////////////
  • // boutons 'aller à' ///
  • /////////////////////////////
  • /// surement optimisable...
  • function aller(qui){
  • // indique la seconde dans le champ de texte
  • // en fonction des 2 caractères finaux du nom du clip
  • qui.onRollOver =function(){
  • _root.texte.text = qui._name.substr(3,2);
  • }
  • qui.onPress = function(){
  • // atteindre la seconde voulue
  • Mon_Flux.seek(qui._name.substr(3,2));
  • }
  • }
  • aller(_root.seg0);
  • aller(_root.seg19);
  • aller(_root.seg30);
  • aller(_root.seg52);
  • /////////////////////////////
  • // bouton play_pause ///
  • /////////////////////////////
  • /// surement optimisable...
  • function arret(qui){
  • qui.onPress = function()
  • {
  • if (f==1){
  • qui.gotoAndPlay(1);
  • Mon_Flux.pause(false);
  • }else{
  • qui.gotoAndPlay(2);
  • Mon_Flux.pause();
  • }
  • }
  • }
  • arret(play_pause);
  • // cette exemple est principalement extrait de l'aide (=F1 :) ) de Flash
  • // mots-clés : NetStream / NetConnectionn / FLV
  • // le pti film est à moi, tu peux le montrer à tes amis
  • // mais pas le vendre contre du bon pognon :)
  • // voila bonnes expériences à toutes et à tous.
  • // nicoptere@free.fr
// le streaming VIDEO sans peine.
// pour les non-comprenants
//
// Créer un objet NetConnection : c'est obligé ; sans ça point de FLV.

var Ma_Connection:NetConnection = new NetConnection();

// Créer une connexion en flux continu :
// pour l'instant elle est vide, juste on l'ouvre
Ma_Connection.connect(null);

//Créer un objet NetStream qui permettra de choisir
//notre media via la connection ouverte 

Mon_Flux = new NetStream(Ma_Connection);

/////////////////////////////
//        preloader       ///
/////////////////////////////
// nota : il existe un handler onStatus() :
// onStatus() ça permet de controler ce qui se passe pendant que ça charge
// ou s'il y a une erreur mais bon... passons

this.onEnterFrame = function(){
	//Mon_Flux.bytesTotal;  = le poids total du flv en octets
	//Mon_Flux.bytesLoaded; = le nombre d'octets chargés 
	
	tot = Mon_Flux.bytesTotal; //récupère le poids total du FLV
	lod = Mon_Flux.bytesLoaded; //récupère le poids déjà chargé
	pourcent = lod/tot; //rapport : déja chargé / restant à charger
	fait = int(pourcent*100);//pourcentage de chargement 

// tant que tout n'est pas chragé
if (fait <100)
	{
	//la barre de progression... heu... progresse
	progbar.bar._width = fait*2.9;// la taille finale de la progressbar est 290px
	progbar._alpha = 100;
	// sortie pour voir la progression en chiffres
//	trace(pourcent +"  "+progbar.bar._width);
	}else{
	//si c'est fini
	if (fait == 100)
		{
		//estompe la progbar
		progbar._alpha =10;
		}
	}
};

// associer la vidéo qui sort de Mon_Flux à l'objet Video sur la scène :
ma_video.attachVideo(Mon_Flux);

// définir la durée du tampon :
// un tampon ça sert à ne pas interrompre le flim quand il est diffusé.
// C'est comme quand on grave un CD.
// dilemne : on doit choisir entre un gros tampon bien confortable
// mais inchargeable et un petit tampon tout con qui s'essouffle très vite.
// faut essayer... la valeur est en dizièmes de secondes.

Mon_Flux.setBufferTime(5);

//   lire quel fichier ?  
Mon_Flux.play("http://nicoptere.land.free.fr/tutos/02/2.flv");

/////////////////////////////
function lecture() {
	// afficher la position de la tête de lecture en secondes
	tmp = Mon_Flux.time; // récupère le temps actuel via netstream

	sec = Math.round(tmp);//arrondit pour faire des secondes sans virgule

	temps.text = sec+" secs";// affichage de la seconde en cours de lecture
	
	bl.text = Mon_Flux.bufferLength;// données effectivement chargées dans le tampon

	bt.text = Mon_Flux.bufferTime;// taille du tampon en diièmes de secondes
}
// rafraichit toutes les secondes
setInterval( lecture, 1000 );

/////////////////////////////
//    boutons 'aller à'   ///
/////////////////////////////
///   surement optimisable...

function aller(qui){
	// indique la seconde dans le champ de texte
	// en fonction des 2 caractères finaux du nom du clip
	qui.onRollOver =function(){
	_root.texte.text = qui._name.substr(3,2);
	}
	qui.onPress = function(){	
	// atteindre la seconde voulue
	Mon_Flux.seek(qui._name.substr(3,2));
	}
}
aller(_root.seg0);
aller(_root.seg19);
aller(_root.seg30);
aller(_root.seg52);

/////////////////////////////
//   bouton  play_pause   ///
/////////////////////////////
///   surement optimisable...

function arret(qui){
	qui.onPress = function()
	{
		if (f==1){
		qui.gotoAndPlay(1);
		Mon_Flux.pause(false);
		}else{
		qui.gotoAndPlay(2);
		Mon_Flux.pause();
		}	
	}
}
arret(play_pause);
// cette exemple est principalement extrait de l'aide (=F1 :) ) de Flash
// mots-clés : NetStream / NetConnectionn / FLV
// le pti film est à moi, tu peux le montrer à tes amis
// mais pas le vendre contre du bon pognon :)
// voila bonnes expériences à toutes et à tous.
// nicoptere@free.fr

Conclusion

aha ! ce coup ci j'ai mis le code !
il manque une bricole dans le clip play_pause:
dans la frame 1 :
f=1;
stop();

dans la frame 2 :
f=2;
stop();

bon rien d'autre à dire je crois
a bientot
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de Loubiou le 07/02/2005 10:35:50

    Très bien expliquée ta source Bravo !

    Mais tu as oublié de dire qu'il fallait un serveur Flash et quel type de serveur flash de l'autre côté! (Flash remoting ou flash communication server côté FTP ?).

    Il faudrait un jour qu'on fasse une source pour expliquer comment installer et paramétrer le serveur Flash. Je sais qu'il existe des hébergeurs qui ont en option le serveur Flash au canada. Si vous en connaissez en France ça nous serait bien utile.

  • signaler à un administrateur
    Commentaire de nicoptere le 07/02/2005 21:20:49

    "Remarque : Cette classe est également prise en charge dans Flash Player 6, dans le cadre d'une utilisation avec Flash Communication Server. Pour plus d'informations, consultez la documentation de Flash Communication Server."
    dixxit F1 dans flash MX2004 pro

    donc apriori ce serait du flash communication Server (à vue de nez V. 1.5)

    sinon, ça marche sur mon espace free (donc a fortiori chez les payants) exemple :

    http://nicoptere.land.free.fr/tutos/02/player_fou.html


    ceci dit, si qq'un a une solution ...

  • signaler à un administrateur
    Commentaire de nicoptere le 08/02/2005 01:48:30

    je me suis rendu compte que j'avais oublié un truc : merci.
    :)

  • signaler à un administrateur
    Commentaire de tristan220681 le 09/02/2005 17:41:56

    Bonjour,
    Cette source est vraiment très interessante, et va bien me servir.
    Je te remercie de l'avoir aussi bien expliquer.
    Je suis encore débutant en Flash, et je cherche à faire quelquechose en plus que tu n'as pas fait.
    C'est une barre de progression de la lecture de la video avec un drag and drop sur celle-ci. Je trouve ça plus pratique que des boutons que tu cliques pour aller à un endroit dans ta video.
    Mais je n'arrive pas à le faire. Est-ce que quelqu'un pourrait m'aider !

    Merci beaucoup en tout cas déjà pour ta source très complète

  • signaler à un administrateur
    Commentaire de zoukozouko le 14/02/2005 18:53:12

    petit pb: si tu clik sur "aller a 52, tu mets pause et ensuite play, et lanim va directement sur 67.
    J'ai pas reussi a resoudre le pb avant de poster ce message, dsl.

  • signaler à un administrateur
    Commentaire de nicoptere le 02/03/2005 23:19:32

    Jc : merci.
    tes liens sont très intéressants et très instructifs !

    sinon, en général, les gens codent comme ils pensent. étant plutôt 'slow-minded' et pas très logique à la base, je dois admettre que tes remarques ('déclaration explicite', par ex.) me passent malheureusement au dessus de la tête pour l'instant. mais un jour je comprendrai tout !

    zoukozouko :
    je vois ce que tu veux dire, ça fait pareil chez moi. je n'ai aucune solution, on dirait qu'il a le feu au Q... mystère.
    si tu trouves une solution, peux tu m'en faire part?

    merci à tous deux.
    nico

  • signaler à un administrateur
    Commentaire de domi123 le 16/05/2005 15:13:48

    Juste une p'tite question, comment fait-on pour créer une vidéo en FLV ?

  • signaler à un administrateur
    Commentaire de jeveutminscrire le 22/05/2005 11:25:58

    Moi aussi j'aimerais savoir comment faire de vidéo flv bon je pense que je vais poser cette question sur le forum

  • signaler à un administrateur
    Commentaire de gui21 le 27/07/2005 02:20:38

    merci, j'avais fait une croix sur la video en "streaming" sous flash, je reviiiii.

  • signaler à un administrateur
    Commentaire de gui21 le 27/07/2005 16:14:39

    Voici un complement de code pour que la video se lise en boucle

    intégrer ce code dans la fonction lecture():
    if (bl.text == "0") {
    Mon_Flux.seek(qui._name.substr(3,2));
    }

  • signaler à un administrateur
    Commentaire de ramniline le 20/09/2005 21:05:14

    Ta source est vraiment exélente et trés pratique! t'as bien bossé.
    Je voudrais te poser une question, car :
    Moi, j'ai plusieurs frames avec sur chacune d'elles une vidéo qui ce charge à ta maniere(encore merci).
    Ca marche trés bien sauf qu'il y'a des conflits au niveau de l'inscription du temps "lu", lorsqu'une premiere vidéo a été activée avant les autres.
    (Pour la premiere ca va, c'est pour les suivantes que ça beug!)
    J'aimerais savoir, comment annuler cette connection quand je passe sur une image différente. Où si tu as une autre solution.....

    Encore merci

  • signaler à un administrateur
    Commentaire de Striker04 le 08/12/2005 07:51:10

    Merci pour la source, pour ceux qui ont eu des problèmes avec Flash communication server voilà comment j'ai fait pour tester mon streaming en local:
    -Dans la ligne 9 au lieu de Ma_Connection.connect(null); j'ai mis:
    Ma_Connection.connect("rtmp://localhost/demo_online");
    -Et dans la ligne 56 j'ai mis Mon_Flux.play("mavideo");(Important: Pas d'extension)
    -Ensuite aprés avoir installer Flash comm et démarrer le serveur vous créez un dossier demo_online dans C:\Program Files\Macromedia\Flash Communication Server MX\applications dans lequel vous remettez un autre dossier s'appellant streams dans lequel vous inserez un autre dossier (oui je sais ça en fait beaucoup)s'apellant _definst_.C'est dans ce dernier que vous devrez mettre vos videos.
    -En clair à la fin vous devriez avoir ça C:\Program Files\Macromedia\Flash Communication Server MX\applications\demo_online\streams\_definst_

    Voilà voilà


  • signaler à un administrateur
    Commentaire de larsen44 le 13/02/2006 10:36:01

    Salut, et tout d'abord bravo pour ta source, c'est vraiment bien commenté et compréhensible de tous, je suis moi même programmeur mais le flash et moi ca fait deux, j'ai donc adapté ton code pour faire ma propre vidéo, mais là j'ai un soucis si tu veux, à la fin de la vidéo je voudrait lancer autre chose :

    Si tu veux je lance la vidéo qui me sert d'intro et à la fin de celle-ci je voudrait afficher mon pseudo avec les lettre arrivant des 4 coins de l'écran, (ca je sais faire) et en même temps mettre un son lisant ce fameux pseudo...

    J'espere etre clair, en gros je lance la vidéo à la fin de celle ci je voudrais pouvoir lancer un son avec mon pseudo et en même temps afficher les lettre de celui-ci,puis une fois ceci fait lancer une autre page...

    Saurais tu me venir en aide ou quelqu'un pourrait-il m'aider car là partant déja de ce code c'est pas très simple pour moi...

    Merci d'avance...

  • signaler à un administrateur
    Commentaire de Straw le 01/05/2006 12:36:21

    je dois faire la meme chose.. et à mon avis, on doit utiliser le code de lecture en boucle.. :

    if (bl.text == "0") {
    Mon_Flux.seek(qui._name.substr(3,2));
    }

    et dans le if, tu lance le swf par exemple que tu veux charger...

    Essayons

  • signaler à un administrateur
    Commentaire de lyseblake2 le 15/07/2007 18:33:12

    Bonjour,

    Lorsque je veux rajouter un renvoi sur mon fichier.flv dont le time code est supérieur à 99 secondes (ex: aller(_root.seg126);), il me renvoi au time code de 12 sec. Est ce que qq'1 a une piste...? Merci


  • signaler à un administrateur
    Commentaire de Wiseroms le 15/10/2007 18:02:06

    bonjour, je te remercie pour ce player qui marche trés bien mais j'aurais aimé savoir si il était possible d'en mettre deux sur la même page ?? J'essaye depuis un petit moment en changeant le nom des variables mais sans succés, si quelqu'un peut m'aider ?!

Ajouter un commentaire

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS