Page 1 sur 3

Lib vidéo de Chris + GetTime(VideoPosition(#Video))

Publié : mer. 18/janv./2006 9:58
par olivier
Salut à tous :D

J'utilise la belle lib de Chris pour un lecteur vidéo et cela marche super bien. Merci Chris !

J'ai passé mon lecteur à un pote et le temps des films devient loufoque.
00:02:16 : pour un film 2 min 16 !!!!

Mon pote est sous windows XP et moi 2000, mais je n'ai pas l'impression que cela vienne de là. Alors si vous auriez une idée du problème.

Fonctionnement :
1 - choisir un répertoire avec des film dans l'onglet répertoir
2- clic gauche sur un film dans l'onglet film
3 - clic gauche sur le film pour le plein écran
4 - clic gauche pour sortir du plein exran
en full mode :
+ volume page up page down
+ pause clic droit
+ avance et recul du film avec la souris si l'option est cochée

J'en profite pour remercier de nouveau Chris pour sa lib ainssi que Droopy pour la sienne qui me sert à chaque programme.

Voici le code (pas néttoyé)

Code : Tout sélectionner

;{- IncludeFile "2_variable.pb"

Global version$ , repertoire_execution$,repertoire_vu$

Global MouseVisible.l,VideoLoaded
MouseVisible = #True
Global taille_font,quit,souris
Global num_colonne_rep
num_colonne_rep=2
Global num_film,Full,rapport_film
Global largeur_liste,limite_bas,limite_haut,temps_affiche_barre,position_barre,temps_affiche_volume,der_time$,der_volume,num_rep
position_barre=60
largeur_liste=400
limite_bas=120
limite_haut=100
rapport_film=0
temps_affiche_volume=60
temps_affiche_barre=60


; IncludeFile "VideoLib.pb"
; IncludeFile "Video_Res.pb"

;- Constantes Fenêtres
Enumeration #PB_Compiler_EnumerationValue
    #Win_Player
    #Video
    #fichier_supprime
    #fichier_vu
EndEnumeration

;- Constantes Gadgets
Enumeration #PB_Compiler_EnumerationValue
    
EndEnumeration

;- Constantes diverses
;#Video = 0
#PBM_SETRANGE32 = #WM_USER + 6
#PBM_GETRANGE   = #WM_USER + 7

;- Constantes StatusBar
Enumeration #PB_Compiler_EnumerationValue
    #Status
EndEnumeration

;- Variables
Global hSeek, hProg, hPlayer, Change,hWnd1
Global Re.RECT

Global der_x_mouse, der_y_mouse,Volume,vit,nv_Film$,resize_font,affiche_defilement,temps_attente
resize_font=0

Dim list_film.s(500)


; #LVM_SETEXTENDEDLISTVIEWSTYLE = #LVM_FIRST + 54
; #LVM_GETEXTENDEDLISTVIEWSTYLE = #LVM_FIRST + 55
; Global ListIconGadget.l, Buffer1.l, Buffer2.l, lvi.LV_ITEM, updown.l, lastcol.l
; Buffer1 = AllocateMemory( 128)
; Buffer2 = AllocateMemory( 128)
;}
;{- IncludeFile "3_fenetre.pb"

Enumeration #PB_Compiler_EnumerationValue
    #fenetre_base
    #image_fond
    #liste_rep
    #btn_rep_plus
    #btn_rep_moins
    
    #liste_film
    #font
    #btn_font_moins
    #btn_font_plus
    
    #Btn_Eject
    #Btn_Load
    #Btn_Pause
    #Btn_Stop
    #Txt_Title
    #Progress
    #Frame0
    #Frame1
    #Btn_Play
    #btn_vu
    #Trk_Seek
    #Trk_LeftVolume
    #Trk_RightVolume
    #Trk_GeneralVolume
    
    #Fenetre_vision
    
    #onglet
    
    #btn_supprimer
    #txt_font
    #txt_souris
    #text_titre
    #font1
    #btn_quitter
    #temps
    #font2
    #font4
    
    #txt_rep_vu
    #string_rep_vu
    #rep_vu
    #btn_copie_lie
    
    #rapport
    #btn_rap0
    #btn_rap1
    #btn_rap2
    #btn_rap3
    #image_barre
    #gadg_image_barre
EndEnumeration


Procedure CallBack(Hnd,uMsg,wParam,lParam)
    
    Resultat = #PB_ProcessPureBasicEvents
    If resize_font=0 ;sinon cela met un message d'érreur lorsque l on change la font
        If Hnd = WindowID(#fenetre_base)
            
            ;Debug "callback"
            ;Debug uMsg
            Select uMsg
                
                Case #WM_MOVE
                    InvalidateRect_(hPlayer,@Re,#False)
                Case #WM_PAINT
                    InvalidateRect_(hPlayer,@Re,#False)
                    
                    
                    
            EndSelect
        EndIf
        
    EndIf
    
    ProcedureReturn Resultat 
EndProcedure 


Procedure Open_fenetre_base()
    
    hPlayer=OpenWindow(#fenetre_base, 0,0,GetSystemMetrics_(0),GetSystemMetrics_(1),  #PB_Window_BorderLess, "Video")
    ; hPlayer=OpenWindow(#fenetre_base, 0,0,800,600,  #PB_Window_BorderLess, "")
    If hPlayer
        
        If CreateGadgetList(WindowID())
            
            
            
            TextGadget(#text_titre,largeur_liste+30,5,450,50,"Vidéothèque",#PB_Text_Center)
            LoadFont(#font1,"",30)
            SetGadgetFont(#text_titre,FontID())
            
            TextGadget(#Txt_Title, largeur_liste+10, 70, 300, 40, "", #PB_Text_Center | #PB_Text_Border)
            LoadFont(#font2,"",24)
            SetGadgetFont(#Txt_Title,FontID())
            
            LoadFont(#font,"",taille_font)
            SetGadgetFont(#PB_Default,FontID())
            
            PanelGadget(#onglet, 2, 2, largeur_liste, 600)
            AddGadgetItem (#onglet,-1,"Film")
            
            
            ListIconGadget(#liste_film, 10, 20, 210, 200, "Film", largeur_liste-60)
            
            AddGadgetItem (#onglet,-1,"Dossier")
            TreeGadget(#liste_rep, 5, 50, 200, 200 ,#PB_Tree_CheckBoxes | #PB_Tree_AlwaysShowSelection)
            ButtonGadget(#btn_rep_plus,5,5,120,30,"+ dossier")
            ButtonGadget(#btn_rep_moins,140,5,120,30,"- dossier")
            
            
            AddGadgetItem (#onglet,-1,"Option")
            Frame3DGadget(#txt_font,2,5,largeur_liste-10,70,"Taille des caractères")
            ButtonGadget(#btn_font_plus,200,35,30,30,"+")
            ButtonGadget(#btn_font_moins,100,35,30,30,"-")
            
            CheckBoxGadget(#txt_souris,5,75,largeur_liste-10,30,"Avance avec souris")
            
            Frame3DGadget(#txt_rep_vu,2,110,largeur_liste-10,80,"Répertoire VU")
            StringGadget(#string_rep_vu,35,145,largeur_liste-60,30,"",#PB_Text_Center)
            ButtonGadget(#rep_vu,5,145,25,25,"...")
            
            ButtonGadget(#btn_copie_lie , 5, 195, largeur_liste-10, 30, "->C:\->Lire")
            Frame3DGadget(#rapport,2,235,largeur_liste-10,80,"Rapport h*l")
            yr=265
            largeur_btn=(largeur_liste-30)/4
            ButtonGadget(#btn_rap0, 10, yr, largeur_btn, 30, "1:1")
            ButtonGadget(#btn_rap1, 1*largeur_btn+10, yr, largeur_btn, 30, "4/3")
            ButtonGadget(#btn_rap2, 2*largeur_btn+10, yr, largeur_btn, 30, "16/9")
            ;ButtonGadget(#btn_rap3, 3*largeur_btn+10, yr, largeur_btn, 30, "4")
            
            
            
            CloseGadgetList()
            
            AddGadgetColumn(#liste_film,1,"Vu",40)
            AddGadgetColumn(#liste_film,num_colonne_rep,"Repertoire",200)
            
            
            
            ButtonGadget(#Btn_Pause, 290, 105, 80, 30, "Pause")
            
            hGVol = TrackBarGadget(#Trk_GeneralVolume, largeur_liste, 5, 20, limite_bas-5, 0, 1000,#PB_TrackBar_Vertical)
            
            
            TextGadget(#temps,300,300,300,30,"Temps",#PB_Text_Border|#PB_Text_Center)
            
            
            ButtonGadget(#btn_quitter,600,10,30,30,"X")
            hSeek = TrackBarGadget(#Trk_Seek, 230, 80, 200, 20, 0, 10)
            
            ButtonGadget(#btn_vu, 350, 105, 140, 30, "--> VU")
            ButtonGadget(#btn_supprimer, 350, 105, 140, 30, "Supprimer")
            
            hBrush1 = CreateSolidBrush_(RGB(0, 0, 0)) 
            SetClassLong_(hPlayer, #GCL_HBRBACKGROUND, hBrush1) 
            InvalidateRect_(hPlayer, #Null, #True) 
            
        EndIf
        SetWindowCallback(@CallBack())
    EndIf
    
EndProcedure

Procedure cache_gadget(type)
    
    ;type=0
    HideGadget(  #liste_rep,type  )
    HideGadget(   #btn_rep_plus ,type)
    HideGadget(   #btn_rep_moins ,type)
    HideGadget(   #liste_film,type)
    HideGadget(    #btn_font_plus,type)
    HideGadget(    #btn_font_moins,type)
    HideGadget(    #Btn_Pause,type)
    HideGadget(    #Txt_Title,type)
    HideGadget(    #btn_vu,type)
    HideGadget(    #Trk_Seek,type)
    HideGadget( #onglet   ,type)
    
    HideGadget(  #btn_supprimer  ,type)
    HideGadget(   #btn_quitter ,type)
    HideGadget(  #text_titre  ,type)
    HideGadget( #temps  ,type)
    HideGadget(  #Trk_GeneralVolume  ,type)
    ;HideGadget(    ,type)
    ;HideGadget(    ,type)
    ;HideGadget(    ,type)
    ;HideGadget(    ,type)
    
EndProcedure

Procedure resize_fenetre()
    ;LoadFont(#font,"",taille_font)
    ;SetGadgetFont(#PB_Default,FontID())
    l=WindowWidth()
    h=WindowHeight()
    ResizeGadget(#Trk_Seek,largeur_liste+40,h-limite_bas,l-largeur_liste-50,-1)
    ResizeGadget(#Btn_Pause,largeur_liste+30,h-95,-1,-1)
    ResizeGadget(#temps,largeur_liste+120,h-95,-1,-1)
    
    ResizeGadget(#onglet,5,5,largeur_liste,h-10)
    ResizeGadget(#liste_film,2,5,largeur_liste-15,h-60)
    ResizeGadget(#liste_rep,2,40,largeur_liste-15,h-100)
    
    
    ;ResizeGadget(#Txt_Title,220,80,l-230,30)
    
    ResizeGadget(#btn_vu,largeur_liste+120,h-40,-1,-1)
    ResizeGadget(#btn_supprimer,largeur_liste+280,h-40,-1,-1)
    ;ResizeGadget(#btn_copie_lie,largeur_liste+440,h-40,-1,-1)
    ResizeGadget(#btn_quitter,l-60,-1,-1,-1)
    
    ;ResizeGadget(#btn_font_plus,largeur_liste+20,h-25,-1,-1)
    ;ResizeGadget(#btn_font_moins,largeur_liste+90,h-25,-1,-1)
    ResizeGadget(#Trk_GeneralVolume,largeur_liste+5,h-limite_bas,20,-1)
    ResizeGadget(#Txt_Title,largeur_liste+10,-1,l-largeur_liste-15,-1)
    ResizeGadget(#text_titre,largeur_liste+10,-1,l-largeur_liste-85,-1)
    
EndProcedure




;}
;{- IncludeFile "4_procedure.pb"
Procedure.s path(fichier$)
    i=Len(fichier$)
    Repeat
        i=i-1
    Until Mid(fichier$,i,1)="\"
    Path$=Left(fichier$,i)
    ProcedureReturn Path$
EndProcedure

Procedure.s nom_fichier(fichier$)
    i=Len(fichier$)
    Repeat
        i=i-1
    Until Mid(fichier$,i,1)="\"
    Path$=Right(fichier$,Len(fichier$)-i)
    ProcedureReturn Path$
EndProcedure

Procedure.s ext(fichier$)
    i=Len(fichier$)
    Repeat
        i=i-1
    Until Mid(fichier$,i,1)="."
    Path$=Right(fichier$,Len(fichier$)-i+1)
    ProcedureReturn Path$
EndProcedure

Procedure.s nom_fichier_ss_ext(fichier$)
    i=Len(fichier$)
    Repeat
        i=i-1
    Until Mid(fichier$,i,1)="."
    Path$=Left(fichier$,i-1)
    ProcedureReturn Path$
EndProcedure

Procedure initialisation()
    
    prog$="lecteur_video.exe"
    repertoire_execution$=Space(255)
    res= SearchPath_(NULL,prog$,NULL, 256, @repertoire_execution$,NULL );
    repertoire_execution$=Left(repertoire_execution$,Len(repertoire_execution$)-Len(prog$))
    SetCurrentDirectory(repertoire_execution$)
    
    OpenPreferences(repertoire_execution$+"video.ini")
    taille_font=ReadPreferenceLong("Taille font",12)
    souris=ReadPreferenceLong("souris",1)
    Volume=ReadPreferenceLong("volume",1000)
    repertoire_vu$=ReadPreferenceString("Repertoire vu","c:\film\vu\")
    ClosePreferences()
    UseJPEGImageDecoder()
    
    ;CatchImage(#image_fond, ?im_fond)
    
EndProcedure
  
Procedure sauverep()
    
    CreateFile(0,"repertoire.txt")
    
    For i=0 To CountGadgetItems(#liste_rep)
        If GetGadgetItemText(#liste_rep,i,0)<>""
            
            WriteStringN(Str(GetGadgetItemState(#liste_rep,i)&#PB_Tree_Checked )+" "+ GetGadgetItemText(#liste_rep,i,0))
        EndIf
        
    Next
    CloseFile(0)
    
    
    CreatePreferences(repertoire_execution$+"video.ini")
    
    WritePreferenceLong("Taille font",taille_font)
    WritePreferenceLong("souris",souris)
    WritePreferenceLong("volume",Volume)
    WritePreferenceString("Repertoire vu",repertoire_vu$)
    
    ClosePreferences()
    
EndProcedure
  
Procedure lirerep()
    
    If OpenFile(0,"repertoire.txt")
        i=-1
        Repeat 
            ligne$=ReadString()
            If ligne$<>""
                nom_rep$=Right(ligne$,Len(ligne$)-2)
                i=i+1
                
                AddGadgetItem(#liste_rep,i,nom_rep$)
                If Left(ligne$,1)="4"
                    SetGadgetItemState(#liste_rep,i,#PB_Tree_Checked )
                EndIf
                
            EndIf
            
        Until Loc()=Lof()
        CloseFile(0)
        
    EndIf
    
    
EndProcedure

Procedure.s filtre_nom_film(nom$)
    
    nom$=RemoveString(nom$,".avi",1)
    nom$=RemoveString(nom$,"french",1)
    nom$=RemoveString(nom$,"divx",1)
    nom$=RemoveString(nom$,"dvd",1)
    nom$=RemoveString(nom$,"rip",1)
    nom$=RemoveString(nom$,"xvid",1)
    nom$=RemoveString(nom$,"-",1)
    nom$=RemoveString(nom$,"testé",1)
    nom$=RemoveString(nom$,"orore",1)
    nom$=RemoveString(nom$," fr ",1)
    nom$=RemoveString(nom$,"thenewsquad",1)
    nom$=RemoveString(nom$,"ggt",1)
    nom$=RemoveString(nom$,"rmt",1)
    nom$=RemoveString(nom$,"pmb",1)
    nom$=RemoveString(nom$,"crimetime",1)
    ;nom$=RemoveString(nom$,"",1)
    ;nom$=RemoveString(nom$,"",1)
    ;nom$=RemoveString(nom$,"",1)
    ;nom$=RemoveString(nom$,"",1)
    ;nom$=RemoveString(nom$,"",1)
    ;nom$=RemoveString(nom$,"",1)
    
    
    ProcedureReturn nom$
    
    
EndProcedure

Procedure lire_un_repertoire(rep$)
    ExamineDirectory(0,rep$,"*.*")
    Repeat 
        type=NextDirectoryEntry()
        If type =1
            nom_fichier$=DirectoryEntryName()
            ext$=LCase(GetPartOfFile(nom_fichier$,8))
            ;debug ext$
            If ext$="avi" Or ext$=" avi" Or ext$="rmvb" Or ext$="mp2"
                num_film=num_film+1
                ;AddGadgetItem(#liste_film,-1,nom_fichier$)
                ;SetGadgetItemText(#liste_film, num_film, rep$, num_colonne_rep)
                list_film(num_film)=rep$+nom_fichier$
            EndIf
            
        EndIf
        
        
    Until type=0
    
    
EndProcedure

Procedure remplir_liste_film()
    
    
    ClearGadgetItemList(#liste_film)
    num_film=-1
    
    For i=0 To CountGadgetItems(#liste_rep)
        If GetGadgetItemState(#liste_rep,i)=12 Or GetGadgetItemState(#liste_rep,i)=13
            ; num_film=num_film+1
            ; list_film(num_film)=GetGadgetItemText(#liste_rep,i,0)+"---> "+GetGadgetItemText(#liste_rep,i,0)
            lire_un_repertoire(GetGadgetItemText(#liste_rep,i,0))
            
        EndIf
        
        
    Next
    SortArray(list_film(),2,0,num_film)
    For i=0 To num_film
        nom_fichier$=nom_fichier(list_film(i))
        AddGadgetItem(#liste_film,-1,filtre_nom_film(nom_fichier$))
        SetGadgetItemText(#liste_film, i, list_film(i), num_colonne_rep)
    Next
    
    
EndProcedure

Procedure init_fenetre()
    resize_fenetre()
    lirerep()
    remplir_liste_film()
    
EndProcedure

Procedure TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
    Select uMsg
        Case #WM_TIMER
            Select idEvent
                Case 1
                    SetGadgetText(#temps,  GetTime(VideoLength(#Video))+" / " + GetTime(VideoPosition(#Video)))
                    ;SetGadgetState(#Progress, VideoPosition(#Video))
                    
                    SetGadgetState(#Trk_Seek, VideoPosition(#Video))
                    
                    
                    ;{ affichage de la position
                    
                    temps_affiche_barre=temps_affiche_barre+1
                    If Full=1 And temps_affiche_barre<40 And der_time$<>GetTime(VideoPosition(#Video))
                        l=WindowWidth()
                        h=WindowHeight()
                        StartDrawing(WindowOutput())
                        
                        der_time$=GetTime(VideoPosition(#Video))
                        ;Box(0,h-position_barre,l,taille_font+14,$EE1122)
                        
                        For barre=0 To taille_font+13
                            LineXY(0+20,h-position_barre+barre,(l-40),h-position_barre+barre,RGB(170-barre*3,164-barre*3,246-barre*3))
                        Next
                        For barre=1 To taille_font+6
                            LineXY(25,h-position_barre+3+barre,25+(l-50)*VideoPosition(#Video)/VideoLength(#Video),h-position_barre+3+barre,RGB(153-barre*4,233-barre*4,130-barre*4))
                        Next
                        DrawingMode(1)
                        
                        ;RGB($A8,$A8,$A8)
                        
                        DrawingFont(FontID())
                        FrontColor(0,0,0)
                        Locate (30,h-position_barre+2)
                        DrawText(GetTime(VideoPosition(#Video)));+" : "+Str(temps_affiche_barre))
                        Locate(l/2-TextLength("00:00:00")/2,h-position_barre+2)
                        DrawText(GetTime(VideoLength(#Video)))
                        Locate(l-TextLength("00:00:00")-55,h-position_barre+2)
                        DrawText(GetTime(VideoLength(#Video)-VideoPosition(#Video)))
                        
                        StopDrawing()
                    EndIf
                    If Full=1 And  temps_affiche_barre=42
                        l=WindowWidth()
                        h=WindowHeight()
                        StartDrawing(WindowOutput())
                        ;position_barre=60
                        Box(0,h-position_barre,l,taille_font+14,0)
                        StopDrawing()
                        InvalidateRect_(hPlayer,@Re,#False)
                    EndIf
                    ;}
                    
                    
                    ;{ affichage de la position
                    temps_affiche_volume=temps_affiche_volume+1
                    If Full=1 And temps_affiche_volume<40 And Volume<>der_volume
                        h=WindowWidth()
                        l=WindowHeight()
                        StartDrawing(WindowOutput())
                        der_volume=Volume
                        l=l-50
                        ; For barre=1 To 12
                        ; LineXY(l-28-barre  ,  h/2-104  ,  l-28-barre  ,   h/2+104   ,RGB(170-barre*3,164-barre*3,246-barre*3))
                        ; Next
                        ; For barre=1 To 12
                        ; LineXY(l-29+barre  ,  h/2-104  ,  l-29+barre  ,   h/2+104   ,RGB(170-barre*3,164-barre*3,246-barre*3))
                        ; Next
                        ; For barre=1 To 9
                        ; LineXY(l-20-barre  ,  h/2+100  ,  l-20-barre  ,   h/2+100-Volume/5   ,RGB(30+barre*4,125+barre*4,19+barre*4))
                        ; Next
                        ; For barre=1 To 9
                        ; LineXY(l-37+barre  ,  h/2+100  ,  l-37+barre  ,   h/2+100-Volume/5    ,RGB(30+barre*4,125+barre*4,19+barre*4))
                        ; Next
                        RGB($A9,$F1,$A0)
                        For barre=1 To taille_font/2+6
                            LineXY(  h/2-104  ,l-28-barre  ,    h/2+104   ,l-28-barre  , RGB(170-barre*3,164-barre*3,246-barre*3))
                        Next
                        For barre=1 To taille_font/2+6
                            LineXY(  h/2-104  ,l-29+barre  ,    h/2+104   ,l-29+barre   ,RGB(170-barre*3,164-barre*3,246-barre*3))
                        Next
                        For barre=1 To taille_font/2+2
                            LineXY( h/2-100  ,l-28-barre  ,    h/2-100+Volume/5   , l-28-barre , RGB(169-barre*5,241-barre*5,160-barre*5))
                        Next
                        For barre=1 To taille_font/2+2
                            LineXY( h/2-100  , l-29+barre   ,    h/2-100+Volume/5    ,l-29+barre   ,RGB(169-barre*5,241-barre*5,160-barre*5))
                        Next
                        DrawingFont(FontID())
                        DrawingMode(1)
                        FrontColor(0,0,0)
                        Locate (h/2-100 +20,l-40)
                        DrawText("Volume : "+Str(Volume/10)+" %");+" : "+Str(temps_affiche_barre))
                        StopDrawing()
                    EndIf
                    If Full=1 And  temps_affiche_volume=42
                        InvalidateRect_(hPlayer,@Re,#False)
                    EndIf
                    ;}
                    
                    ;SetGadgetState(#Trk_LeftVolume, VideoGetLeftVolume(#Video))
                    ;SetGadgetState(#Trk_RightVolume, VideoGetRightVolume(#Video))
                    ;SetGadgetState(#Trk_GeneralVolume,VideoGetVolume(#Video))
                    
            EndSelect
    EndSelect
EndProcedure

Procedure retaille_film()
    If VideoLoaded
        If Full=0
            cache_gadget(0)
            Hauteur_fenetre.f = WindowHeight()-260
            Largeur_fenetre.f = WindowWidth()-largeur_liste-20
        Else
            cache_gadget(1)
            Hauteur_fenetre.f = WindowHeight()
            Largeur_fenetre.f = WindowWidth()
        EndIf
        
        
        Hauteur_image.f = VideoHeight(#Video)
        Largeur_image.f = VideoWidth(#Video)
        rapport_fenetre.f =  Hauteur_fenetre /Largeur_fenetre
        rapport_image.f =  Hauteur_image /Largeur_image
        If rapport_image=rapport_fenetre
            h=Hauteur_fenetre
            l=Largeur_fenetre
        EndIf
        
        If rapport_image>rapport_fenetre
            h=Hauteur_fenetre
            l=Hauteur_fenetre/rapport_image
            sens_image=0
        EndIf
        
        If rapport_image<rapport_fenetre
            h=Largeur_fenetre*rapport_image
            l=Largeur_fenetre
            sens_image=1
        EndIf
        
        If rapport_film<>0
            If rapport_film=1
                Debug "4/3"
                h=Largeur_fenetre*3/4
                l=Largeur_fenetre
            EndIf
            If rapport_film=2
                Debug "16/9"
                h=Largeur_fenetre*9/16
                l=Largeur_fenetre
                
            EndIf
        EndIf
        
        
        
        
        If Full=0
            x=((Largeur_fenetre-l)/2)+10+largeur_liste
            y=((Hauteur_fenetre-h)/2)+120
            Re\left = x
            Re\top = y
            Re\right = x+l
            Re\bottom = y+h
            ResizeVideo(#Video, x,y,x+l,y+h)
            
            l=WindowWidth()
            h=WindowHeight()
            ResizeGadget(#Trk_Seek,largeur_liste+40,h-limite_bas,l-largeur_liste-50,-1)
            ;ResizeGadget(#temps,largeur_liste+400,h-60,-1,-1)
            
        Else
            x=((Largeur_fenetre-l)/2)
            y=((Hauteur_fenetre-h)/2)
            
            Re\left = 0
            Re\top = 0
            Re\right = GetSystemMetrics_(0)
            Re\bottom = GetSystemMetrics_(1)
            ResizeVideo(#Video, x,y,x+l,y+h)
            
            l=WindowWidth()
            h=WindowHeight()
            ResizeGadget(#Trk_Seek,5,h-60,l,-1)
            ;ActivateGadget(#Trk_Seek)
            ;ResizeGadget(#temps,largeur_liste+400,h-60,-1,-1)
            
        EndIf
    EndIf
    
    
    
    
EndProcedure

Procedure lire_film()
    SetGadgetText(#Txt_Title, "Film en chargement")
    If nv_Film$<>""
        rapport_film=0
        Debug nv_Film$
        If VideoLoaded ;arret la video si elle est déjà en marche
            StopVideo(#Video)
            FreeVideo(#Video)
            KillTimer_(hPlayer, 1)
            VideoLoaded=0
        EndIf
        ;num=GetGadgetState(#liste_film)
        ;Film$=GetGadgetItemText(#liste_film,num,2)+GetGadgetItemText(#liste_film,num,0)
        
        If LoadVideo(#Video, nv_Film$) ;load le film
            
            SendMessage_(hProg,#PBM_SETRANGE32,0,VideoLength(#Video))
            SendMessage_(hSeek,#TBM_SETRANGEMAX,#True,VideoLength(#Video))
            
            VideoLoaded = 1
            Timer_1 = SetTimer_(hPlayer, 1, 100,  @TimerProc())
            PlayVideo(#Video, hPlayer)
            VideoSetVolume(#Video, Volume)
            ;Volume= 1000
            ; vit=1
            ; vitesse_base=VideoGetSpeed(#Video)
            retaille_film()
            SetGadgetState(#Trk_GeneralVolume,VideoGetVolume(#Video))
            ;ActivateGadget(#Trk_Seek)
            SetGadgetText(#Txt_Title, filtre_nom_film(nom_fichier(nv_Film$)))
        Else
            SetGadgetText(#Txt_Title, "Impossible de charger le film")
            resul=MessageRequester("On essaye ?","Sous win98 les noms trop long ne sont pas accepté."+Chr(10)+Chr(13)+"Voulez vous réduire le nom ?",#PB_MessageRequester_YesNo )
            If resul=6
                
                nv_titre$=InputRequester("Changement du nom du film :","Indiquer le nouveau nom :",nom_fichier_ss_ext(nom_fichier(nv_Film$)))
                If nv_titre$<>"" And nv_titre$<>nom_fichier(nv_Film$)
                    RenameFile(nv_Film$,path(nv_Film$)+nv_titre$+ext(nv_Film$))
                    ;MessageRequester(nv_Film$,path(nv_Film$)+nv_titre$+ext(nv_Film$))
                    remplir_liste_film()
                EndIf
                
            EndIf
            
        EndIf
        
    EndIf
EndProcedure

Procedure affiche_defilement_thread(ess)
    affiche_defilement=1
    temps_attente=0
    Repeat
        temps_attente=temps_attente+1
        HideGadget(    #Trk_Seek,0)
        HideGadget(    #temps,0)
        
        Delay(100)
        
    Until temps_attente>50
    
    HideGadget(    #Trk_Seek,1)
    HideGadget(    #temps,1)
    affiche_defilement=0
    PostMessage_(WindowID(#fenetre_base),#WM_USER+1,1,1)
EndProcedure

Procedure efface_ligne_temps_thread(ess)
    Repeat
        Delay(2000)
        If Full=1
            
        EndIf
        
        
    Until fin=1
    
EndProcedure


;}


version$="13/01/06"

initialisation()


Open_fenetre_base()
;ListIconGadget = GadgetID(#liste_film) 
init_fenetre()
SetGadgetText(#Txt_Title, version$)
SetGadgetState(#txt_souris,souris)
SetGadgetText(#string_rep_vu,repertoire_vu$)
CreateThread(@efface_ligne_temps_thread(),1)
Debug ReportErrors(#True)
vit=1
quit=0
Repeat
    EventID = WaitWindowEvent()
    ;If EventID<>0 : Debug EventID : EndIf
    
    Select  EventWindowID()
        Case #fenetre_base 
            
            Select EventID
                Case #WM_USER+1 ;fin de cacher les gadget temps et track
                    If Full=0
                        HideGadget(    #Trk_Seek,0)
                        HideGadget(    #temps,0)
                    EndIf
                    
                Case #WM_MOUSEMOVE ;{déplacement du film avec la sourie
                    ;Debug "mouse mouve"
                    ;Debug WindowMouseX()
                    ;pos$=recup_emplacement_sur_image()
                    If Full = 1 
                        
                        ;debug "full"
                        ;If affiche_defilement=0
                        ;    CreateThread(@efface_ligne_temps_thread(),1)
                        ;EndIf
                        
                        ;temps_attente=0
                        
                        x_mouse=WindowMouseX() 
                        y_mouse=WindowMouseY() 
                        If souris
                            If x_mouse>pos_x_mouse_attente
                                
                                temps_affiche_barre=0
                                
                                PauseVideo(#Video)
                                pos=VideoPosition(#Video)+8000
                                If pos>VideoLength(#Video) : pos=VideoLength(#Video)-8000 : EndIf
                                VideoSeek(#Video,pos)
                                PlayVideo(#Video, hPlayer)
                                SetMouseXY(pos_x_mouse_attente,pos_y_mouse_attente )
                                
                            EndIf
                            If x_mouse<pos_x_mouse_attente
                                temps_affiche_barre=0
                                
                                PauseVideo(#Video)
                                pos=VideoPosition(#Video)-4000
                                If pos<0 : pos=0 : EndIf
                                VideoSeek(#Video,pos)
                                PlayVideo(#Video, hPlayer)
                                SetMouseXY(pos_x_mouse_attente,pos_y_mouse_attente )
                                
                            EndIf
                            If y_mouse<>pos_y_mouse_attente 
                                temps_affiche_barre=0
                            EndIf
                            
                            ;der_x_mouse=x_mouse
                            
                            ;InvalidateRect_(Hnd,@Re,#False)
                        EndIf
                        
                        
                        If MouseVisible
                            ShowCursor_(0)
                            MouseVisible = #False
                        EndIf
                    Else
                        
                        If MouseVisible = #False
                            ShowCursor_(1)
                            MouseVisible = #True
                        EndIf
                    EndIf
                    
                    
                    
                    ;If WindowMouseX()>50 And WindowMouseX()<150 And WindowMouseY()>50 And WindowMouseY()<150
                    
                    
                    
                    ;clic_droit=1
                    
                    ;}
                Case #WM_LBUTTONUP ;{pleine ecran entree sortie
                    
                    If VideoLoaded 
                        If  Full = 1
                            Full = 0
                            temps_affiche_volume=100
                            InvalidateRect_(hPlayer,@Re,#False)
                            retaille_film()
                            vit=1 
                            
                        Else
                            If WindowMouseX() >largeur_liste And WindowHeight()-WindowMouseY()> limite_bas And WindowMouseY()> limite_haut;supprime les clic dans la liste
                                pos_x_mouse_attente=WindowMouseX() 
                                pos_y_mouse_attente=WindowMouseY() 
                                ;ActivateGadget(#text_titre)
                                Full = 1
                                retaille_film()
                                vit=1 
                                
                            EndIf
                        EndIf
                    EndIf
                    ;}
                Case #WM_KEYDOWN  ;{touche clavier
                    Debug "clavier"
                    Debug EventwParam()
                    Select EventwParam();{changement de volume avec page up et page down
                        Case  33; page up
                            If  temps_affiche_volume>60 : der_volume=-1 : EndIf
                            temps_affiche_volume=0
                            Volume=Volume+10
                            If Volume>1000 :Volume=1000 : EndIf
                            VideoSetVolume(#Video, Volume)
                            SetGadgetState(#Trk_GeneralVolume,VideoGetVolume(#Video))
                        Case 34;page down
                            If  temps_affiche_volume>60 : der_volume=-1 : EndIf
                            temps_affiche_volume=0
                            Volume=Volume-10
                            If Volume<0 :Volume=0 : EndIf
                            
                            VideoSetVolume(#Video, Volume)
                            SetGadgetState(#Trk_GeneralVolume,VideoGetVolume(#Video))
                            ;}
                    EndSelect
                    ;}
                Case #WM_RBUTTONDOWN ;{sortie du plein ecran avec le clic droit
                    If Full = 1
                        
                        ;debug VideoStatus(#Video) 
                        If VideoStatus(#Video)      = 2
                            temps_affiche_barre=0
                            PauseVideo(#Video)
                        ElseIf VideoStatus(#Video)  = 3
                            ResumeVideo(#Video)
                        EndIf
                    Else
                        SetMouseXY(WindowWidth()/2-50,WindowHeight()/2+50)
                        Result = MessageRequester("Alerte","Voulez-vous quitter ?",#PB_MessageRequester_YesNo)
                        If Result = 6 
                            quit=1
                        EndIf
                    EndIf
                Case #WM_LBUTTONUP ;{clic souris
                    ; Debug pos$
                    ; Debug Str(x_image(WindowMouseX() ))+" / "+Str(y_image(WindowMouseY() ))
                    ; If pos$="selec_voir"
                    ; Voir_selection()
                    ; EndIf
                    ; 
                    ; If pos$="selec_deplacer"
                    ; operation_selection(1)
                    ; Ouvrir_repertoire()
                    ; vignette()
                    ; EndIf
                    ; 
                    ; If pos$="selec_copier" 
                    ; operation_selection(0)
                    ; 
                    ; EndIf
                    ; If pos$="selec_vider"
                    ; If FileSize(repertoire_execution$+"selection.txt")>0
                    ; DeleteFile(repertoire_execution$+"selection.txt")
                    ; EndIf
                    ; vignette()
                    ; EndIf
                    ;}
                    
                    
                    
                    ;}
                Case#PB_EventGadget
                    gadgetid= EventGadgetID()
                    Select gadgetid
                        Case #Trk_GeneralVolume ;{changement du volume
                            Volume=GetGadgetState(#Trk_GeneralVolume)
                            VideoSetVolume(#Video, Volume)
                            ;}
                        Case #btn_quitter :  quit=1
                        Case #btn_rep_plus ;{ajoute un répertoire
                            rep$=PathRequester("Ajout d'un répertoire",rep$)
                            
                            If rep$<>""
                                AddGadgetItem(#liste_rep,-1,rep$)
                                
                            EndIf
                            
                            ExamineDirectory(0,rep$,"*.*")
                            Repeat 
                                type=NextDirectoryEntry()
                                If type =2
                                    nom_fichier$=DirectoryEntryName()
                                    
                                    ;debug ext$
                                    If nom_fichier$<>"." And nom_fichier$<>".."
                                        AddGadgetItem(#liste_rep,-1,rep$+nom_fichier$+"\")
                                    EndIf
                                    
                                EndIf
                                
                                
                            Until type=0
                            sauverep()
                            
                            ;}
                        Case #btn_rep_moins;{supprime un répertoire
                            num=GetGadgetState(#liste_rep)
                            If num>-1
                                RemoveGadgetItem(#liste_rep, num)
                                sauverep()
                            Else
                                MessageRequester("Alerte","Il faut sélectionner un élément")
                            EndIf
                            ;}
                        Case #liste_rep 
                            Debug GetGadgetState(#liste_rep)
                            num_rep=GetGadgetState(#liste_rep)
                            ;etat=GetGadgetItemState(#liste_rep,num_rep)
                            remplir_liste_film()
                            Debug num_rep
                            ActivateGadget(#liste_rep)
                            ; SetGadgetItemState(#liste_rep,num_rep,etat)
                        Case #liste_film ;{Lance le film selectionné
                            Debug EventType()
                            Select EventType()
                                Case 0
                                    
                                    num=GetGadgetState(#liste_film)
                                    nv_Film$=GetGadgetItemText(#liste_film,num,num_colonne_rep)
                                    
                                    
                                    Position=SendMessage_(GadgetID(#liste_film), #LVM_GETTOPINDEX, 0, 0)
                                    nb_element= SendMessage_(GadgetID(#liste_film), 4136, 0, 0)
                                    num_cliquer= GetGadgetState(#liste_film)
                                    posi.POINT
                                    SendMessage_(GadgetID(#liste_film), #LVM_GETITEMPOSITION, num_cliquer -nb_element/2, posi)
                                    SendMessage_(GadgetID(#liste_film), #LVM_SCROLL, 0, posi\y)
                                    Position=SendMessage_(GadgetID(#liste_film), #LVM_GETTOPINDEX, 0, 0)
                                    SendMessage_(GadgetID(#liste_film), #LVM_GETITEMPOSITION, num_cliquer, posi)
                                    ;If num_film>num_cliquer
                                    Debug num_cliquer-Position
                                    SetMouseXY(GetMouseX(),posi\y+taille_font*4-5);taille_font*(num_cliquer-Position))
                                    lire_film()
                                Case 1
                                    PauseVideo(#Video)
                                    pos=VideoPosition(#Video)+VideoLength(#Video)/20
                                    If pos>VideoLength(#Video) : pos=VideoLength(#Video)-8000 : EndIf
                                    VideoSeek(#Video,pos)
                                    PlayVideo(#Video, hPlayer)
                            EndSelect
                            ActivateGadget(#Btn_Pause)
                            
                            ;}
                        Case #Btn_Pause ;{met en pause ou en lecture
                            
                            ; PlayVideo(#Video, hPlayer)
                            ; ;Volume= VideoGetVolume(#Video)
                            ; vit=1
                            ; ;vitesse_base=VideoGetSpeed(#Video)
                            ; retaille_film(1)
                            If VideoLoaded
                                ;debug VideoStatus(#Video) 
                                If VideoStatus(#Video)      = 2
                                    PauseVideo(#Video)
                                ElseIf VideoStatus(#Video)  = 3
                                    ResumeVideo(#Video)
                                EndIf
                            EndIf
                            ;}
                        Case #Trk_Seek ;{barre de défilement du film
                            PauseVideo(#Video)
                            VideoSeek(#Video, GetGadgetState(#Trk_Seek))
                            PlayVideo(#Video, hPlayer)
                            ;}
                        Case #btn_vu ;{déplace le film dans le répertoire vu
                            If VideoLoaded ;arret la video si elle est déjà en marche
                                SetGadgetText(#Txt_Title, "Film en cours de déplacement")
                                StopVideo(#Video)
                                FreeVideo(#Video)
                                KillTimer_(hPlayer, 1)
                                VideoLoaded=0
                                
                                
                                unite_film$=Left(nv_Film$,1)
                                Debug nv_Film$
                                Debug unite_film$+repertoire_vu$+nom_fichier(nv_Film$)
                                MakeSureDirectoryPathExists(unite_film$+repertoire_vu$+nom_fichier(nv_Film$))
                                ;MessageRequester(nv_Film$,unite_film$+repertoire_vu$+nom_fichier(nv_Film$))
                                Delay(3000)
                                resu=RenameFile(nv_Film$,unite_film$+repertoire_vu$+nom_fichier(nv_Film$))
                                
                                
                                RemoveGadgetItem(#liste_film,num)
                                If OpenFile(#fichier_vu,"film_vu.txt")
                                    FileSeek(Lof())
                                    WriteStringN(nom_fichier(nv_Film$))
                                    CloseFile(#fichier_vu)
                                EndIf
                                If resu
                                    SetGadgetText(#Txt_Title, "Film déplacé dans Vu")
                                EndIf
                            Else 
                                MessageRequester("Avertissement","Par sécurité le film doit être en lecture")
                                
                            EndIf
                            ;}
                        Case #btn_supprimer ;{supprime le film selectionner
                            
                            If VideoLoaded ;arret la video si elle est déjà en marche
                                SetGadgetText(#Txt_Title, "Film en cours de suppression")
                                StopVideo(#Video)
                                FreeVideo(#Video)
                                KillTimer_(hPlayer, 1)
                                VideoLoaded=0
                                Delay(3000)
                                resu=DeleteFile(nv_Film$)
                                If resu=0
                                    unite_film$=Left(nv_Film$,1)
                                    MakeSureDirectoryPathExists(unite_film$+repertoire_vu$+"poub\"+nom_fichier(nv_Film$))
                                    RenameFile(nv_Film$,unite_film$+repertoire_vu$+"poub\"+nom_fichier(nv_Film$))
                                    SetGadgetText(#Txt_Title, "Film déplacé dans poub")
                                Else
                                    SetGadgetText(#Txt_Title, "Film supprimé")
                                EndIf
                                
                                RemoveGadgetItem(#liste_film,num)
                                If OpenFile(#fichier_supprime,"film_supprimer.txt")
                                    FileSeek(Lof())
                                    WriteStringN(nom_fichier(nv_Film$))
                                    CloseFile(#fichier_supprime)
                                EndIf
                                
                                
                            Else 
                                MessageRequester("Avertissement","Par sécurité le film doit être en lecture")
                                
                            EndIf
                            ;}
                        Case #btn_copie_lie ;{Pour les portables, copie et lie li film à partir du disque c:\
                            If VideoLoaded ;arret la video si elle est déjà en marche
                                If GetDiskFreeSpaceEx("c:") *1024*1024<FileSize(nv_Film$)
                                    MessageRequester("Alerte","Le disque est plein,"+Chr(10)+"Libérez de l'espace en supprimant des film dans c:\film\")
                                Else
                                    
                                    SetGadgetText(#Txt_Title, "Film en cours de déplacement")
                                    StopVideo(#Video)
                                    FreeVideo(#Video)
                                    KillTimer_(hPlayer, 1)
                                    VideoLoaded=0
                                    MakeSureDirectoryPathExists("c:\film\")
                                    Delay(3000)
                                    Debug nv_Film$
                                    Debug "c:\film\"+nom_fichier(nv_Film$)
                                    resu=CopyFile(nv_Film$,"c:\film\"+nom_fichier(nv_Film$))
                                    
                                    If resu
                                        SetGadgetText(#Txt_Title, "Film déplacé dans Vu")
                                        nv_Film$="c:\film\"+nom_fichier(nv_Film$)
                                        lire_film()
                                    Else
                                        SetGadgetText(#Txt_Title, "Impossible de déplacé le film dans c:\film")
                                    EndIf
                                EndIf
                                
                                
                            Else 
                                MessageRequester("Avertissement","Par sécurité le film doit être en lecture")
                                
                            EndIf
                            ;}
                            
                            ;{******************* OPTION  *****************************
                            
                        Case #btn_font_plus;{agrandie la taille des police
                            If VideoLoaded ;arret la video si elle est déjà en marche
                                SetGadgetText(#Txt_Title, "Film en cours de déplacement")
                                StopVideo(#Video)
                                FreeVideo(#Video)
                                KillTimer_(hPlayer, 1)
                                VideoLoaded=0
                            EndIf
                            
                            resize_font=1
                            taille_font=taille_font+1
                            ;CloseWindow(#fenetre_base)
                            
                            Open_fenetre_base()
                            SetGadgetState(#onglet,2)
                            init_fenetre()
                            
                            resize_font=0
                            ; EndIf
                            
                            
                            ;resize_fenetre()
                            ;}
                        Case #btn_font_moins;{diminue la taillle des polices
                            
                            If VideoLoaded ;arret la video si elle est déjà en marche
                                SetGadgetText(#Txt_Title, "Film en cours de déplacement")
                                StopVideo(#Video)
                                FreeVideo(#Video)
                                KillTimer_(hPlayer, 1)
                                VideoLoaded=0
                            EndIf
                            If VideoLoaded =0
                                resize_font=1
                                taille_font=taille_font-1
                                ;CloseWindow(#fenetre_base)
                                Open_fenetre_base()
                                init_fenetre()
                                SetGadgetState(#onglet,2)
                                resize_font=0
                            EndIf
                            ;}
                            
                            
                        Case #txt_souris
                            souris=GetGadgetState(#txt_souris)
                        Case #rep_vu ;{selectionne le répertoire vu
                            nv_rep_vu$=PathRequester("Répertoire de déplacement pour les films déjà vu",repertoire_vu$)
                            If nv_rep_vu$<>""
                                repertoire_vu$=Right(nv_rep_vu$,Len(nv_rep_vu$)-1)
                                SetGadgetText(#string_rep_vu,repertoire_vu$)
                            EndIf
                            ;}
                        Case #btn_rap0 ;{Rapport hauteur largeur
                            If rapport_film<>0
                                rapport_film=0
                                retaille_film()
                            EndIf
                            
                            
                        Case #btn_rap1
                            If rapport_film<>1
                                rapport_film=1
                                retaille_film()
                            EndIf
                            
                            
                        Case #btn_rap2
                            If rapport_film<>2
                                rapport_film=2
                                retaille_film()
                            EndIf
                            ;}   
                    EndSelect
            EndSelect
            

            
    EndSelect
    
Until EventID = #PB_EventCloseWindow Or quit=1
    
sauverep()
    
End
    

Re: Lib vidéo de Chris + GetTime(VideoPosition(#Video))

Publié : mer. 18/janv./2006 10:21
par Chris
olivier a écrit :Salut à tous :D

J'utilise la belle lib de Chris pour un lecteur vidéo et cela marche super bien. Merci Chris !

J'ai passé mon lecteur à un pote et le temps des films devient loufoque.
00:02:16 : pour un film 2 min 16 !!!!

Mon pote est sous windows XP et moi 2000, mais je n'ai pas l'impression que cela vienne de là. Alors si vous auriez une idée du problème.
00:02:16 pour 2 mn 16 s, c'est l'affichage normal.
Ou est le problème?

Le format de la durée du film, c'est hh:mm:ss

Publié : mer. 18/janv./2006 11:54
par Backup
je pense qu'il a voulu te dire , que pour un film
2 minute 16 c'etait peu !!
peut etre son film faisait 2 Heures 16 et que ta lib affiche 2 minutes 16 !! :)

Publié : mer. 18/janv./2006 12:20
par Chris
Si c'est ça, je n'ai pas ce problème.

J'ai essayé avec un film en Avi et un en Wmv, (respectivement, 1h : 17mn : 50s et 1h : 09 mn 11s) et ça s'affiche correctement.

J'ai chargé les films dans l'exemple qui est dans l'archive de la librairie.
Les temps donnés par le programme sont strictement les mêmes que ceux donnés par le Window Media Player.

Revérifie ton code, parce que je ne vois pas ce qui cloche.

Publié : mer. 18/janv./2006 13:00
par olivier
Merci pour vos réponses.

Cela marche sur le portable à ma mère, avec win98 et pas de problème. Sur mon PC win2k, et pas de problème. Sur un autre PC avec win XP et toujours pas de problème. Mais chez lui ???? 2min17 pour un film d'une heure 45 ????

D'apres vos réponse, vus n'avez jamais entendu parlé d'un problème comme celui là.

Espérons qu'une autre personnne aura une piste à ma donner, car je ne vois pas dans quelle direction chercher.

a+

Publié : mer. 18/janv./2006 13:13
par lionel_om
C'est pas un problème de codecs ????

Publié : mer. 18/janv./2006 13:22
par Chris
lionel_om a écrit :C'est pas un problème de codecs ????
Probablement un truc comme ça.

Publié : mer. 18/janv./2006 13:27
par lionel_om
En parlant de codec, personnellement j'ai un problème avec la MCI... au bout d'un très grand nombre d'utilisation de ces commandes, cette "Lib" commence à merdouiller...

* Par exemple le temps des chasons est agrandi (le bug s'étend j'usqu'à Window XP même ou l'info-bulle des MP3 affiche la même durée que la commande Mci pour récupérer la longeur d'une chanson, mais cette valeur n'est pas la même que celle de Windows Media Player...)

* La commande Mci "open ... as ..." plante.

Vous n'avez aps de raison pour pallier à ça ? Ou avec quelle autres commandes je peux lire des MP3 ???

Merci d'avance.. :wink:

Publié : mer. 18/janv./2006 13:43
par Chris
Mouais!!!!... Bof!!!!...

Si elle plante, tu fais comme moi!
Tu balances ça dans la corbeille, et basta! :lol:

Sinon, faudrait que je regarde le code, mais comme j'ai pas le courage...

Puis je ne sais même pas si je l'ai encore, en plus :lol:

Publié : mer. 18/janv./2006 14:03
par Backup
chez moi ta lib fonctionne tres bien !!! :D

Publié : jeu. 19/janv./2006 13:08
par lionel_om
Dobro a écrit :chez moi ta lib fonctionne tres bien !!! :D
Quelle Lib ??? 8O

Publié : jeu. 19/janv./2006 13:42
par Backup
lionel_om a écrit :
Dobro a écrit :chez moi ta lib fonctionne tres bien !!! :D
Quelle Lib ??? 8O
va sur le site de Chris , et récupere sa librairie Video !! :D
(insdispensable pour mon calculateur de bitrate)

Publié : jeu. 19/janv./2006 13:47
par Backup
allez ! aidez nous a la tester cette librairie ..... :D

Publié : jeu. 19/janv./2006 13:50
par lionel_om
Je l'ai dl, je la testerai demain (une fois mes exams finis...) :wink:

Publié : jeu. 19/janv./2006 14:14
par Chris
Quand je l'ai mise en ligne la première fois, il y a à peu près un an, j'ai demandé à ce que que vous la testiez.

Les deux seuls à l'avoir fait, sont Flype et Kingpix.
http://purebasic.hmt-forum.com/viewtopi ... sc&start=0

J'en ai conclu qu'elle fonctionnait bien et qu'il n'y avait pas de bug.
Maintenant, pour la corriger, il faut la refaire entièrement parce que je ne retrouve pas le code. (A moins qu'il ne soit sur un de mes anciens CD de sauvegarde, je n'ai pas été voir).