begin process at 2010 02 09 20:37:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Multimedia

 > AVI&MPXB3 - LECTEUR DIVX ET VCD-SVCD UTILISANT LE CONTRÔLE MEDIAPLAYER

AVI&MPXB3 - LECTEUR DIVX ET VCD-SVCD UTILISANT LE CONTRÔLE MEDIAPLAYER


 Information sur la source

Note :
8,4 / 10 - par 5 personnes
8,40 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Multimedia Niveau :Débutant Date de création :29/08/2002 Date de mise à jour :31/08/2002 00:37:10 Vu / téléchargé :7 872 / 654

Auteur : BobBigBoss

Ecrire un message privé
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Ce code permet la lecture de fichiers video DivX et VCD-SVCD utilisant le contrôle Media Player. Il permet la lecture du film en mode plein écran également. La fenêtre a un design assez sympa.
J'ai un problème avec les icones : une fenêtre ayant pour propriété BorderStyle à n'affiche pas son icone dans la barre des tâches, et c'est le cas avec ma Form. Quelqu'un peut-il m'indiquer ce qu'il faut faire ? (n'oubliez pas de voter !)  

Source

  • 'Ce projet utilise un contrôle MediaPlayer pour lire les fichiers video.
  • 'Il fonctionne avec la nouvelle version de Windows Media Player pour Win98,
  • 'à savoir WMP7. Je n'ai pas testé avec les anciènnes versions.
  • Option Explicit
  • Dim fichier As String, i As Integer
  • 'fichier = fichier à lire i = compteur de boucle
  • 'APIs pour le déplacement de la fenêtre
  • Private Declare Function ReleaseCapture Lib "user32" () As Long
  • Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  • 'API pour afficher la fenêtre au 1er plan, indispensable pour le mode plein écran
  • Private Declare Sub SetWindowPos Lib "user32" (ByVal hwnd As Long, _
  • ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _
  • ByVal cy As Long, ByVal wFlags As Long)
  • 'Procédure qui intervertit l'état actuel de la fenêtre lorsque l'on clique sur celle-ci :
  • 'passage du mode fenêtré au mode plein écran et inversement
  • Private Sub Form_Click()
  • If Me.WindowState = vbNormal Then
  • Me.WindowState = vbMaximized
  • Else
  • Me.WindowState = vbNormal
  • End If
  • End Sub
  • 'Procédure qui permet de déplacer la fenêtre en mode fenêtré (appel des APIs)
  • Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  • 'Si on est en mode plein écran, on sort sans rien exécuter
  • If Me.WindowState = vbMaximized Then Exit Sub
  • Call ReleaseCapture
  • Call SendMessage(hwnd, &HA1, 2, 0&)
  • End Sub
  • 'Procédure exécutée lorsque, on mode plein écran, on bouge la sourie,
  • 'afin de faire apparaître la barre d'outils en bas de l'écran
  • Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  • 'Si l'affichage est fenêtrée, on sort sans rien exécuter
  • If Me.WindowState = vbNormal Then Exit Sub
  • If Y > Me.Height - 500 Then
  • 'Si on descend le curseur tout en bas de l'écran, la barre d'outils est affichée
  • tlbCommande.Visible = True
  • Else
  • 'Sinon, on a plus qu'à remonter le curseur pour cacher la barre d'outils
  • tlbCommande.Visible = False
  • End If
  • End Sub
  • 'Procédure exécutés lors du passage du mode fenêtré en mode plein écran et inversement
  • 'Visuellement, il ne se passe rien dans les autres cas (mode réduit, par exemple) !
  • 'mais en interne, l'API SetWindowPos est appelé dans tous les cas
  • Private Sub Form_Resize()
  • 'Si le nouvel état (donc actuel) de la fenêtre est le mode fenêtré
  • If Me.WindowState = vbNormal Then
  • 'La fenêtre reprend son image de fond qui est le même que celui du PictureBox picFenetre
  • Me.Picture = picFenetre.Picture
  • 'Le contrôle MediaPlayer mplVideo reprend ses dimensiosn d'origine
  • mplVideo.Top = 440
  • mplVideo.Left = 330
  • mplVideo.Height = 5000
  • mplVideo.Width = 7000
  • 'On "réactive" chacun des 3 "boutons" du groupe lblMenu (Réduire, Agrandir, Fermer),
  • 'ainsi que le titre de la fenêtre (Index 0), en les rendant visibles
  • For i = 0 To 3
  • lblMenu(i).Visible = True
  • Next
  • 'On "réactive" chacun des 6 "boutons" du groupe lblCommande
  • '(Play, Pause, Stop, Reverse, Forward, Open) en les rendant visibles
  • For i = 0 To 5
  • lblCommande(i).Visible = True
  • Next
  • 'On cache également la barre d'outils qui s'affiche en bas de l'écran en
  • 'mode plein écran, au cas où l'on viendrait justement du mode plein écran
  • tlbCommande.Visible = False
  • 'Si le nouvel état (donc actuel) de la fenêtre est le mode plein écran
  • ElseIf Me.WindowState = vbMaximized Then
  • 'On éfface l'image de fond de la feuille pour laisser place à une couleur de fond noir
  • 'déjà définie dans la fenêtre des propriétés de la feuille (BackColor = WindowFrame)
  • Me.Picture = LoadPicture()
  • 'On élargit les dimensions du contrôle MediaPlayer pour qu'il prenne tout l'écran
  • mplVideo.Top = 700
  • mplVideo.Left = 0
  • mplVideo.Height = Me.Height - 1400
  • mplVideo.Width = Me.Width
  • 'On "désactive" chacun des 3 "boutons" du groupe lblMenu (Réduire, Agrandir, Fermer),
  • 'ainsi que le titre de la fenêtre (Index 0), en les rendant invisibles
  • For i = 0 To 3
  • lblMenu(i).Visible = False
  • Next
  • 'On "désactive" chacun des 6 "boutons" du groupe lblCommande
  • '(Play, Pause, Stop, Reverse, Forward, Open) en les rendant invisibles
  • For i = 0 To 5
  • lblCommande(i).Visible = False
  • Next
  • End If
  • Call SetWindowPos(Me.hwnd, -1, 0, 0, 0, 0, &H2 + &H1 + &H40)
  • End Sub
  • 'Avant de quitter complètement le programme, on arrête un éventuel fichier en lecture
  • Private Sub Form_Unload(Cancel As Integer)
  • mplVideo.Stop
  • End
  • End Sub
  • 'Procédure exécutée lorsque l'on clique sur les "boutons" de réduction,
  • 'd'agrandissement ou de fermeture situés dans le coin supérieur droit de la fenêtre
  • Private Sub lblMenu_Click(Index As Integer)
  • Select Case Index
  • Case 1 'Réduire dans la barre des tâches
  • Me.WindowState = vbMinimized
  • Case 2 'Agrandir en mode plein écran
  • Me.WindowState = vbMaximized
  • Case 3 'Fermer le programme
  • Unload Me
  • End Select
  • End Sub
  • Private Sub lblCommande_Click(Index As Integer)
  • 'Pause et Stop provoquent parfois des erreurs !?!
  • On Error Resume Next
  • Select Case Index
  • Case 0 'Play
  • 'Si aucun fichier à lire n'a été sélectionné, on prévient l'utilisateur puis on sort
  • If fichier = "" Then
  • MsgBox "Aucun fichier sélectionné !" & vbCrLf & "Ouvrez d'abords un fichier", _
  • vbOKOnly + vbExclamation, App.EXEName & " : avertissement !"
  • Exit Sub
  • End If
  • mplVideo.Play
  • Case 1 'Pause
  • mplVideo.Pause
  • Case 2 'Stop
  • mplVideo.Stop
  • mplVideo.FileName = fichier
  • Case 3 'Reverse
  • mplVideo.FastReverse
  • Case 4 'Forward
  • mplVideo.FastForward
  • Case 5 'Open
  • dlgOuvrir.ShowOpen
  • fichier = dlgOuvrir.FileName
  • 'Si aucun fichier sélectionné, on sort sans rien effectuer
  • If fichier = "" Then Exit Sub
  • mplVideo.FileName = fichier
  • 'On affiche le contrôle MediaPlayer seulement si un fichier est sélectionné
  • mplVideo.Visible = True
  • End Select
  • End Sub
  • 'Procédure exécutée lorsque l'on clique sur un bouton de la barre d'outils qui apparaît
  • 'en bas en mode plein écran lorsque l'on fait descendre le curseur en bas de l'écran
  • Private Sub tlbCommande_ButtonClick(ByVal Button As MSComctlLib.Button)
  • If Button.Index < 5 Then
  • 'Lors d'un click sur l'un des 3 premiers boutons (Reduire, Restaurer, Fermer)
  • Select Case Button.Index
  • Case 1: Me.WindowState = vbMinimized 'Réduire dans la barre des tâches
  • Case 2: Me.WindowState = vbNormal 'Restaurer en mode fenêtré
  • Case 3: Unload Me 'Fermer le programme
  • End Select
  • Else
  • 'Lors d'un click sur l'un des 6 autres boutons, on appelle la procédure lblCommande_Click
  • 'qui contient déjà les routines à exécuter pour chacun de ces 6 boutons (pour ne pas tout réecrire)
  • 'L'index du bouton "Play" est "5" mais il correspond à l'index "0" pour le lblCommande, d'où
  • Call lblCommande_Click(Button.Index - 5)
  • End If
  • End Sub
'Ce projet utilise un contrôle MediaPlayer pour lire les fichiers video.
'Il fonctionne avec la nouvelle version de Windows Media Player pour Win98,
'à savoir WMP7. Je n'ai pas testé avec les anciènnes versions.

Option Explicit
Dim fichier As String, i As Integer
'fichier = fichier à lire      i = compteur de boucle

'APIs pour le déplacement de la fenêtre
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

'API pour afficher la fenêtre au 1er plan, indispensable pour le mode plein écran
Private Declare Sub SetWindowPos Lib "user32" (ByVal hwnd As Long, _
  ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _
  ByVal cy As Long, ByVal wFlags As Long)



'Procédure qui intervertit l'état actuel de la fenêtre lorsque l'on clique sur celle-ci :
'passage du mode fenêtré au mode plein écran et inversement
Private Sub Form_Click()
If Me.WindowState = vbNormal Then
  Me.WindowState = vbMaximized
Else
  Me.WindowState = vbNormal
End If
End Sub

'Procédure qui permet de déplacer la fenêtre en mode fenêtré (appel des APIs)
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Si on est en mode plein écran, on sort sans rien exécuter
If Me.WindowState = vbMaximized Then Exit Sub
Call ReleaseCapture
Call SendMessage(hwnd, &HA1, 2, 0&)
End Sub


'Procédure exécutée lorsque, on mode plein écran, on bouge la sourie,
'afin de faire apparaître la barre d'outils en bas de l'écran
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Si l'affichage est fenêtrée, on sort sans rien exécuter
If Me.WindowState = vbNormal Then Exit Sub
If Y > Me.Height - 500 Then
  'Si on descend le curseur tout en bas de l'écran, la barre d'outils est affichée
  tlbCommande.Visible = True
Else
  'Sinon, on a plus qu'à remonter le curseur pour cacher la barre d'outils
  tlbCommande.Visible = False
End If
End Sub


'Procédure exécutés lors du passage du mode fenêtré en mode plein écran et inversement
'Visuellement, il ne se passe rien dans les autres cas (mode réduit, par exemple) !
'mais en interne, l'API SetWindowPos est appelé dans tous les cas
Private Sub Form_Resize()
'Si le nouvel état (donc actuel) de la fenêtre est le mode fenêtré
If Me.WindowState = vbNormal Then
  'La fenêtre reprend son image de fond qui est le même que celui du PictureBox picFenetre
  Me.Picture = picFenetre.Picture
  
  'Le contrôle MediaPlayer mplVideo reprend ses dimensiosn d'origine
  mplVideo.Top = 440
  mplVideo.Left = 330
  mplVideo.Height = 5000
  mplVideo.Width = 7000
  
  'On "réactive" chacun des 3 "boutons" du groupe lblMenu (Réduire, Agrandir, Fermer),
  'ainsi que le titre de la fenêtre (Index 0), en les rendant visibles
  For i = 0 To 3
    lblMenu(i).Visible = True
  Next
  
  'On "réactive" chacun des 6 "boutons" du groupe lblCommande
  '(Play, Pause, Stop, Reverse, Forward, Open) en les rendant visibles
  For i = 0 To 5
    lblCommande(i).Visible = True
  Next
  
  'On cache également la barre d'outils qui s'affiche en bas de l'écran en
  'mode plein écran, au cas où l'on viendrait justement du mode plein écran
  tlbCommande.Visible = False

'Si le nouvel état (donc actuel) de la fenêtre est le mode plein écran
ElseIf Me.WindowState = vbMaximized Then
  'On éfface l'image de fond de la feuille pour laisser place à une couleur de fond noir
  'déjà définie dans la fenêtre des propriétés de la feuille (BackColor = WindowFrame)
  Me.Picture = LoadPicture()
  
  'On élargit les dimensions du contrôle MediaPlayer pour qu'il prenne tout l'écran
  mplVideo.Top = 700
  mplVideo.Left = 0
  mplVideo.Height = Me.Height - 1400
  mplVideo.Width = Me.Width
  
  'On "désactive" chacun des 3 "boutons" du groupe lblMenu (Réduire, Agrandir, Fermer),
  'ainsi que le titre de la fenêtre (Index 0), en les rendant invisibles
  For i = 0 To 3
    lblMenu(i).Visible = False
  Next
  
  'On "désactive" chacun des 6 "boutons" du groupe lblCommande
  '(Play, Pause, Stop, Reverse, Forward, Open) en les rendant invisibles
  For i = 0 To 5
    lblCommande(i).Visible = False
  Next
End If
Call SetWindowPos(Me.hwnd, -1, 0, 0, 0, 0, &H2 + &H1 + &H40)
End Sub


'Avant de quitter complètement le programme, on arrête un éventuel fichier en lecture
Private Sub Form_Unload(Cancel As Integer)
mplVideo.Stop
End
End Sub


'Procédure exécutée lorsque l'on clique sur les "boutons" de réduction,
'd'agrandissement ou de fermeture situés dans le coin supérieur droit de la fenêtre
Private Sub lblMenu_Click(Index As Integer)
Select Case Index
Case 1    'Réduire dans la barre des tâches
  Me.WindowState = vbMinimized
Case 2    'Agrandir en mode plein écran
  Me.WindowState = vbMaximized
Case 3    'Fermer le programme
  Unload Me
End Select
End Sub


Private Sub lblCommande_Click(Index As Integer)
'Pause et Stop provoquent parfois des erreurs !?!
On Error Resume Next
Select Case Index
Case 0 'Play
  'Si aucun fichier à lire n'a été sélectionné, on prévient l'utilisateur puis on sort
  If fichier = "" Then
    MsgBox "Aucun fichier sélectionné !" & vbCrLf & "Ouvrez d'abords un fichier", _
      vbOKOnly + vbExclamation, App.EXEName & " : avertissement !"
    Exit Sub
  End If
  mplVideo.Play
Case 1        'Pause
  mplVideo.Pause
Case 2        'Stop
  mplVideo.Stop
  mplVideo.FileName = fichier
Case 3        'Reverse
  mplVideo.FastReverse
Case 4        'Forward
  mplVideo.FastForward
Case 5        'Open
  dlgOuvrir.ShowOpen
  fichier = dlgOuvrir.FileName
  'Si aucun fichier sélectionné, on sort sans rien effectuer
  If fichier = "" Then Exit Sub
  mplVideo.FileName = fichier
  'On affiche le contrôle MediaPlayer seulement si un fichier est sélectionné
  mplVideo.Visible = True
End Select
End Sub


'Procédure exécutée lorsque l'on clique sur un bouton de la barre d'outils qui apparaît
'en bas en mode plein écran lorsque l'on fait descendre le curseur en bas de l'écran
Private Sub tlbCommande_ButtonClick(ByVal Button As MSComctlLib.Button)
If Button.Index < 5 Then
  'Lors d'un click sur l'un des 3 premiers boutons (Reduire, Restaurer, Fermer)
  Select Case Button.Index
  Case 1: Me.WindowState = vbMinimized    'Réduire dans la barre des tâches
  Case 2: Me.WindowState = vbNormal       'Restaurer en mode fenêtré
  Case 3: Unload Me                       'Fermer le programme
  End Select
Else
  'Lors d'un click sur l'un des 6 autres boutons, on appelle la procédure lblCommande_Click
  'qui contient déjà les routines à exécuter pour chacun de ces 6 boutons (pour ne pas tout réecrire)
  'L'index du bouton "Play" est "5" mais il correspond à l'index "0" pour le lblCommande, d'où
  Call lblCommande_Click(Button.Index - 5)
End If
End Sub
  

 Conclusion

Si quelqu'un peut me dire comment faire pour montrer l'icone d'une fenêtre ayant pour propriété BorderStyle à 0 dans la barre des tâches, je le rajouterai dans la prochaine version.  

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture ATTRIB4ALLB3 - CHANGER LES ATTRIBUTS DE TOUS FICHIERS D'1 DO...

 Sources de la même categorie

Source avec Zip Source avec une capture EASYSAMPLE : JOUER DES SONS (MP3, WAVE) DEPUIS UN CLAVIER MI... par bierman
Source avec Zip Source avec une capture Source .NET (Dotnet) EXTRACT' SOUND MP3 par dheroux
Source avec Zip Source avec une capture Source .NET (Dotnet) CAPTURE ET ENREGISTREMENT D'UNE IMAGE DEPUIS UNE WEBCAM par RENAUD34
Source avec Zip Source avec une capture FLVPLAYER+XML+TXT DYNAMIQUE+TILELIST+UILOADER par tranber78
Source avec Zip Source avec une capture LECTEUR AUDIO AVEC JAVAFX par puccino1er

Commentaires et avis

Commentaire de Clem le 30/08/2002 00:31:14

Zip please !

Commentaire de lumesh le 30/08/2002 16:17:24

I'm sctochy !!!   cela fé la 2eme fois deja  !!!!
par contre aurais tu un ZIP stp ?    car cela minterresserai pas mal de voir le projet tourner !!!
allez bonne prog a ouate et @++++
lumesh.

Commentaire de OphidiaN le 30/08/2002 19:30:20

lol lumesh :)

Commentaire de BobBigBoss le 30/08/2002 22:04:00

Désolé mais je n'arrive pas à envoyer le ZIP, il fait environ 600Ko. QQ1 pourrait me dire comment faire ? je suis nouveau sur ce site !

Commentaire de BobBigBoss le 30/08/2002 22:44:38

Hy Lumesh, je suis en train d'envoyer le ZIP à TheSaib[revision], car il fait 587Ko,
mais franchement, j'sais pas comment il va faire pour l'envoyer sur le site !

Commentaire de BobBigBoss le 30/08/2002 23:06:46

Si vous voulez le ZIP, mailez-moi à bob_big_boss@hotmail.com, parce ke je sais TOUJOURS PAS comment faire pour l'envoyer sur le site (je rappelle k'il fait 587Ko)

Commentaire de BobBigBoss le 31/08/2002 00:41:11

Bonne nouvelle !!!! j'ai rétrécis le ZIP et le voici ... Commentaires please et amusez-vous bien !!

Commentaire de BobBigBoss le 31/08/2002 00:53:54

et n'oubliez pas la note !

Commentaire de starburst le 21/10/2002 09:46:06

pas mal, je test ça de suite merci cela m'aide enormement ;-)

Commentaire de salazar le 09/06/2005 14:20:02


C'est un bon début. Dommage que tu ne gères pas le resize...

Commentaire de salazar le 09/06/2005 14:20:11


C'est un bon début. Dommage que tu ne gères pas le resize...

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales