Diverses questions NetStream / seekbar

The_Moye Messages postés 32 Date d'inscription samedi 12 novembre 2005 Statut Membre Dernière intervention 21 août 2020 - 5 sept. 2008 à 16:18
Crazyx Messages postés 128 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 15 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 :

this.onEnterFrame = function()
{
    truc = ((nts.time)/30.04)*100;
    if (truc <= 100)
    {
        //trace(truc);
        this.Barre_Nav.progba.progress_mc._width= truc;
    }
};

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?

Merci d'avance pour tout aide :)
A voir également:

5 réponses

Crazyx Messages postés 128 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 15 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)
0
The_Moye Messages postés 32 Date d'inscription samedi 12 novembre 2005 Statut Membre Dernière intervention 21 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]
0
Crazyx Messages postés 128 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 15 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.

Bonne nuit
0
The_Moye Messages postés 32 Date d'inscription samedi 12 novembre 2005 Statut Membre Dernière intervention 21 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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Crazyx Messages postés 128 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 15 octobre 2008
15 oct. 2008 à 11:29
"Je viens de tester un trace() de _root.nts.playing , et on me dit "undefined" "
et la avec ce que je t'ai envoyé ca affiche bien la valeur?


c bizarre que ca ne fonctionne pas ... tu as essayé de copier le code que je t'ai envoyé ? avec play la ou il faut et pause la ou il faut?


En attendant que tu répondes je vais tester ca va etre plus simple.


 


A bientot j'essaie de faire vite et je reviens vers toi
0
Rejoignez-nous