MovieStatus()=0

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Pingtix
Messages : 159
Inscription : mer. 03/nov./2004 15:30

MovieStatus()=0

Message par Pingtix »

Quand je lis une video, la commande MovieStatus() me retourne toujours 0.
Pourtant avec la démo je n'avais pas ce problème, que dois-je faire ?
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Exact, il y a un bug!

FREEEEEEEEEDDDD!!!!! :lol:
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Ben non, pas de bug :lol:

Vérifie que ta boucle contient WindowEvent(), et pas WaitWindowEvent()

Code : Tout sélectionner

;/Constantes Window
Enumeration
  #Window_0
EndEnumeration

If InitMovie() = 0
  End
EndIf

Movie$  = OpenFileRequester("Sélectionner une vidéo","","Fichiers vidéo (avi, wmv,mpg)|*.avi;*.wmv;*.mpg",0)
If Movie$ : LoadMovie(0,Movie$) : Else : End : EndIf

If OpenWindow(#Window_0, 300, 300, 100, 100, #PB_Window_SystemMenu, "Fenêtre 1",0)
  ResizeWindow(MovieWidth(),MovieHeight())
  
  Repeat
    Etat = MovieStatus() : SetWindowTitle(#Window_0, Str(Etat)+ " : ''Return'' = Start/Stop : ''P'' = Pause/Resume")
    
  Select WindowEvent() ;<---- et non WaitWindowEvent()...
      Case #WM_KEYDOWN
        Select EventwParam()
          Case #VK_P
            If Etat = -1
              ResumeMovie()
            ElseIf Etat > 0
              PauseMovie()
            EndIf
            
          Case #VK_RETURN
            If Etat > 0
               StopMovie()
            ElseIf Etat = 0
              PlayMovie(0, WindowID(#Window_0))
            EndIf
        EndSelect
        
      Case #PB_EventCloseWindow
        FreeMovie(0) : quit = #True
    EndSelect
  Until quit
  End
EndIf
Perso, j'aime pas trop cette méthode qui consiste à tester l'état de la vidéo directement dans la boucle, mais bon...!
Je préfère mettre ça dans une procédure dédiée a un Timer.
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

Quand on utilise WindowEvent(), surtout ne pas oublier Delay(20) au cas ou WindowEvent() retourne 0 sinon on bouffe tout le temps processeur.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Quand on utilise WindowEvent(), surtout ne pas oublier Delay(20)
pourquoi je constate chez moi que delay(1) suffit (pas 20) ??
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

parce que delay(1) est deja amplement suffisant (1 ms est enorme pour un processeur). Surtout que le temps de latence entre les processes sous windows est de l'ordre de 20 ms (d'apres mes vieux souvenirs).
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Ca marche bien, j'ai testé sur mon début de lecteur Mci, je passe de 100% de temps CPU à +- 12%
http://purebasic.hmt-forum.com/viewtopic.php?t=1984

Par contre, la fenêtre avec les commandes est beaucoup plus longue à ouvrir avec 20 ms, et même avec 1 ms, on voit nettement le temps d'attente entre l'affichage de la fenêtre, et celui des gadgets.

Le delay(), il faut bien le mettre dans le boucle des évènements, tout de suite après le Repeat, ou à la fin, juste avant Until.

C'est bien ça?
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

Pour la position du delay, voir ma reponse sur l'autre thread :)
Pingtix
Messages : 159
Inscription : mer. 03/nov./2004 15:30

Message par Pingtix »

Euh, Chris, sur ton programe aussi, ca reste à 0
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Ta as appuyé sur "Enter", pour lancer la lecture???
Pingtix
Messages : 159
Inscription : mer. 03/nov./2004 15:30

Message par Pingtix »

Oui, mais ca reste a 0.
J'ai resté de compiler le programme sur le PC de mon frere (suffit de pas lui dire ^^) et là, ca marche...
Je me demande si ça n'est pas un problème de codec.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Bizarre ça! 8O

Tu est sûr d'avoir les codecs pour lire le film que tu veux ouvrir.
Sinon, je ne vois pas!
Pingtix
Messages : 159
Inscription : mer. 03/nov./2004 15:30

Message par Pingtix »

Oui, je n'ai jamais eu de problème.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Alors, je ne vois pas ce qu'il y a de spécial dans ton PC.

Pique celui de ton frère, il s'en apercevra peut-être pas :lol:
Pingtix
Messages : 159
Inscription : mer. 03/nov./2004 15:30

Message par Pingtix »

Je pense que ca vient des codecs que j'ai installés, car j'ai installé un pack de codecs sur mon PC et lui non. Le probleme c'est que si je l'enleve je ne peux plus rien lire....
Répondre