Chargement d'une video avant sa lecture fluide (Flash8)

eliloup Messages postés 13 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 1 mai 2006 - 30 avril 2006 à 13:50
einbob Messages postés 1 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 5 mai 2006 - 5 mai 2006 à 09:43
Bonjour,
Je réalise un site où il y a un extrait de film de 1min 30 ( le FLV compréssé fait 5mo et des cacahuetes), mais lorsqu'on veut le voir, il se met en play de suite et ça rame énormement pour la lecture. Il ne passe bien qu'a la deuxième lecture.
Comment puis-je faire pour que cela charge un moment (soit au chargement du site, soit quand on fait appel au film) puis que ça se mette en lecture de façon fluide apres un temps?
C'est une video en FLV , je travaille sur flash8 et j'ai un niveau de débutante...
Merci beaucoup c'est urgent
Elise

3 réponses

cs_alise Messages postés 2203 Date d'inscription lundi 12 juillet 2004 Statut Membre Dernière intervention 26 janvier 2010
30 avril 2006 à 20:36
je pense que si tu va voir l'article de phillFlash, tu apprendras pas mal de choses sur la vidéo et tu pourras certainement trouver une soluce à ton pb :
http://philflash.inway.fr/phpstream/index.html
tu peux aussi aller voir là :
http://www.flashforum-oi.info/tut/lesLascars/lesLascars2.html


Alise
form flashforum-oi.info
0
eliloup Messages postés 13 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 1 mai 2006
1 mai 2006 à 09:48
Merci bien, mais après avoir lu attentivement les liens ça ne m'aide pas vraiment. Je n'ai aucune bases en PHP, et surtout pas le temps de m'y plonger...
Je pensais qu'il pouvais y avoir une astuce "simple" sur flash pour le strreaming!
En fait j'ai inséré directement mon lecteur FLV sur une page de mon projet...peut etre y'a t-il "juste" des modifications à faire aux niveaux de la config ?
Une idée ?....
0
einbob Messages postés 1 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 5 mai 2006
5 mai 2006 à 09:43
j'ai le meme souci, pour l'instant je ne peut que te proposer de mettre avant le ns.play (ns = nom de ton NetStream) ns.bufferTime(le_temps_de_pause_que_tu_veux)
ce n'est pas du tout optimisé, je pensait faire un calcul à partir de vitesse de la connexion du client et a partir de ca calculer le temps qu'il mettrais à telecharger la vidéo - la durée de la vidéo:

var bandwith = 0;
var lecture = false;
function setBandwith(bw) {
_level0.bandwith = bw;
}
function video() {
//Ouvre une connexion locale qui vous permet de lire les fichiers vidéo (FLV) depuis une adresse HTTP ou depuis un système de fichiers local.
// on crée l'objet de connexion (objet NetConnection)
maConnexion = new NetConnection();
// Connexion à la source de donnée
// quand il s'agit de charger une video externe sans utiliser FlashComm
// il faut transmettre le paramètre null à la méthode connect
//on se connecte
maConnexion.connect(null);
//on crée un objet NetStrean pour pouvoir utiliser les méthodes et prpopriétés permettant de lire des vidéos en local ou depuis une adressse http
// Création d'une occurence de l'objet NetStream
monFluxVideo = new NetStream(maConnexion);
// attachement du flux video à une occurence de l'objet Video
ici.ecran.attachVideo(monFluxVideo);
//on définis le nombre d'images par secondes:
fps = 12;
function essai(fv) {
if (bandwith != Infinity) {
nbOctetTotal = monFluxVideo.bytesTotal;
temps_chargement = (nbOctetTotal/bandwith)-(nbOctetTotal/fps);
statusmsg2 = "nb bytes total "+nbOctetTotal+" *** "+(nbOctetTotal/(fps*6000));
statusmsg3 = "temps de chargement"+temps_chargement;
if (temps_chargement>=0) {
fv.setBufferTime(temps_chargement);
}
} else {
nbOctetTotal = monFluxVideo.bytesTotal;
statusmsg2 = "nb bytes total "+nbOctetTotal;
fv.setBufferTime(0.1);
}
}
// lancement de la lecture
monFluxVideo.play("eveque_moins_oiseaux.flv");
//maintenant que l'on connais le fichier sur lequel on travaille,
essai(monFluxVideo);
//permet de lisser la video lorsqu'elle est redimensionnée
monFluxVideo.smoothing;
//bouton play
bt_joue.onRelease = function() {
monFluxVideo.play("eveque_moins_oiseaux.flv");
};
//bouton pause
bt_pause.onRelease = function() {
monFluxVideo.pause();
};
//bouton stop
bt_stop.onRelease = function() {
monFluxVideo.pause();
monFluxVideo.seek(0);
};
//bouton avance
bt_avance.onRelease = function() {
monFluxVideo.seek(monFluxVideo.time+10);
};
//bouton recule
bt_recule.onRelease = function() {
monFluxVideo.seek(monFluxVideo.time+10);
};
//----son
//ici.ecran.attachAudio(monFluxVideo);
var monson = new Sound(ecran);
var i = 100;
moins.onPress = function() {
monson.setVolume(i -= 5);
son = i add " %";
};
plus.onPress = function() {
son = i add " %";
if (i>=100) {
i = 100;
} else {
monson.setVolume(i += 5);
}
};
//fonction de démarrage en fonction de ce qui est chargé
//Spécifie la durée de la mise en mémoire tampon des données avant le démarrage de l'affichage du flux vidéo.
//monFluxVideo.setBufferTime(4000);
monFluxVideo.seek(info);
function verif() {
// info prend pour valeur la position dans le temps en seconde (tete de lecture)
info = Math.round(monFluxVideo.time) add " sec";
}
setInterval(verif, 100);
function charg() {
pourcentage = "Chargement : " add Math.round((monFluxVideo.bytesLoaded/monFluxVideo.bytesTotal)*100) add " %";
}
setInterval(charg, 100);
}

mais ici ca ne marche pas a cause du NetStream.bytesTotal qui me rends -1, (si tu as une solution pour ça, ça serait super cool...) mais tu peux éviter ca vu que tu connais déja la taille de ta vidéo.

en espérant que ça a pu t'aider un peu
0
Rejoignez-nous