Commentçamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

Le streaming video sans peine : tu appuies, ça marche.

5/5 (17 avis)

Vue 83 991 fois - Téléchargée 8 600 fois

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 / Exemple :


// 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

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.