The_Moye
Messages postés32Date d'inscriptionsamedi 12 novembre 2005StatutMembreDernière intervention21 août 2020
-
5 sept. 2008 à 16:18
Crazyx
Messages postés128Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention15 octobre 2008
-
15 oct. 2008 à 11:29
Bonjour tout le monde !
J'essaye de faire un petit lecteur vidéo perso pour mon site, et j'ai quelques petits problèmes.
La vidéo est lu correctement, le bouton stop marche, mais j'aimerais avoir la possibilité de reprendre la lecture de la vidéo à partir du bouton "play" plutôt que du bouton "pause".
Comme la méthode pause() permet de stopper/reprendre la vidéo, je me suis qu'en mettant simplement
monstream.pause()
sur le bouton "play", la vidéo allait reprendre.
Mais non, la vidéo peut maintenant etre stoppée/reprise depuis le bouton "play", mais pas si la pause est due au bouton "pause".
Sur la plupart des lecteurs vidéos disponibles sur le net, on clique sur pause pour arrêter et sur play pour reprendre, ça doit donc être possible.
Une idée?
Autre question, j'aimerais savoir comment "lier" une seekbar (barre de load/time) à une vidéo.
On ne peut pas la lier automatiquement?
Pour le moment j'ai un :
La longueur de ma seekbar augmente bien en fonction de la position dans la vidéo, mais je ne sais pas si c'est très propre.
Et puis je ne sais pas comment me deplacer dans cette barre pour arriver à une position spécifique dans ma vidéo.
Encore un truc, ma seekbar + boutons sont contenus dans un clip se cachant au bout de quelques secondes.
Un rollover au dessus d'une partie invisible de se clip rend ce menu a nouveau visible.
Mais dans les phases de descente et remonté de ce clip, ma seekbar perd son pourcentage de remplissage.
Une idée pour palier ce problème?
Crazyx
Messages postés128Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention15 octobre 2008 6 sept. 2008 à 06:40
Bonsoir.
je sais pas comment tu as fait ton lecteur pour être plus précis dans mes réponses, mais me faudrait des détails pour t'aider.
Si tu utilise la média class :
Pour le bouton pause
if (monstream.playing == true)
{ monstream.pause(); }
else
{ monstream.play(); }
Si Flvplayback :
y'a une propriété .playPauseButton
tout ce que je sais c que c pas du netstream sinon pause() stop/relance la lecture.
La seekbar, je ne pourrai pas t'aider, je ne connais pas trop la lecture de vidéo avec flash. Mais je pense que si tu veux faire les choses a la mano, il faut que tu récupére la longueur de média lu, pr fixer la taille de ta seek bar max, enfin regarde sur l'aide de flash y'a des choses intéressante.
et pour ta seekbar, si c un movieclip avec des actions définit (press, rollover etc) essaye la propriete .enable = false pr désactiver (jpense)
The_Moye
Messages postés32Date d'inscriptionsamedi 12 novembre 2005StatutMembreDernière intervention21 août 2020 6 sept. 2008 à 11:15
Salut Crazyx, merci de ta réponse
Pour la seekbar, j'en ai résolue une partie.
La perte du pourcentage de remplissage venait simplement du fait que ma seekbar avait perdu son nom d'occurrence lors de ces deux phases.
Maintenant tout est rentré dans l'ordre.
Pour gérer ma vidéo j'utilise bien un netstream.
La méthode pause() permet bien d'arrêter ou reprendre la lecture, mais seulement a partir du même bouton.
Si lors de la lecture de ma video, j'appuie sur "pause", elle va bien s'arrêter et un nouvel appuie sur pause la fera reprendre.
Si lors de la lecture j'appuie sur "pause", elle va s'arrêter mais un appuie sur "lecture" ne la fera pas reprendre.
Voici le code sur mon _root :
var ntc:NetConnection = new NetConnection();
ntc.connect(null);
var nts:NetStream = new NetStream(ntc);
vid.attachVideo(nts);
nts.setBufferTime(3);
nts.play("mavideo.flv");
Le code associer à mon bouton pause :
on(release)
{
_root.nts.pause();
}
Et je m'étais créé un petit booléen sur le root pour savoir si j'étais en train de lire si j'étais en pause
Voici le code pour play :
on(release)
{
if(_root.OnPause)
_root.nts.pause();
}
Je viens de tester un trace() de _root.nts.playing , et on me dit "undefined".
_root.nts me sort bien [object object]
Crazyx
Messages postés128Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention15 octobre 2008 7 sept. 2008 à 06:53
Effectivement y'avait de mentionner sur ton post NetStream j'ai vraiment mal lu ta question.
Alors si c'est du netstream :
Pour ta seekbar :
Pour l'indicateur de la mise en tampon ("bufférisation") : comparaison entre _root.nts.bufferLength et .bufferTime
Pour la position actuelle de la lecture : _root.nts.time
Pour aller vers une position donné : _root.nts.seek(temps en secondes).
Pour l'histoire de la reprise de la lecture après la pause en ayant appuyé sur le bouton play :
_root.NsPlayed = 0;
on(release)
{
if (_root.NsPlayed == 0)
{ _root.nts.play(); _root.NsPlayed = 1; }
else
_root.nts.pause();
}
Sur stop aussi, tu dois ajouter l'action _root.NsPlayed = 0;
Ca fait genre un flag pour savoir si la vidéo est déjà en lecture, si oui alors .pause() quand on appuye sur Play sinon .play()
et au stop, on remet le flag à 0, pour signifier que la lecture est stoppée.
Enfin je pense qu'il faut faire comme ça, tu me diras si ca marche. Jme pencherai plus sur ton truc demain matin si ça donne rien ce que j'ai écris avant.
The_Moye
Messages postés32Date d'inscriptionsamedi 12 novembre 2005StatutMembreDernière intervention21 août 2020 6 oct. 2008 à 12:52
Bonjour bonjour !
Une nouvelle fois merci pour ta réponse Crazyx , mais j'avais déjà tenté le coup du flag, ça ne fonctionnait pas.
Mon flag était bien déclaré au niveau root, et son état passait bien à 1 ou 0 en fonction de la lecture (du moins en fonction de l'appuie sur un bouton).
La seekbar quand à elle fonctionne à merveille !
Il ne me reste plus que cette histoire de play/pause.
Vous n’avez pas trouvé la réponse que vous recherchez ?