Jouer une vidéo avi (sans mfc)

Soyez le premier à donner votre avis sur cette source.

Vue 6 698 fois - Téléchargée 899 fois

Description

Ceci est une application Win32 avec une boite de dialogue comme fenêtre principale. Le but est de fournir un exemple d'utilisation du contrôle ANIMATE directement avec les APIs Win32.

Il y a trois sources : animeDlg.cpp resource.h et dlg.rc

A ne pas oublier : linker avec comctl32.lib
nécessaire pour résoudre l'appel à InitCommonControls();

Source / Exemple :


//***********************************
//Source resource.h
//***********************************
#define IDC_ANIME       1000
#define IDD_DIALOGUE	1

//***********************************
//Source animeDlg.cpp
//***********************************
#include <windows.h>
#include <commctrl.h>// pour le contrôle ANIMATE
//ainsi que le link avec comctl32.lib
#include "resource.h"

BOOL CALLBACK maDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) ;

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int  nCmdShow)
{
	InitCommonControls();// pour le contrôle ANIMATE
	
	if (!DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOGUE), 0,(DLGPROC)maDlgProc)) 
		{MessageBox(0,"raté","dialogue",MB_OK); return 1;} 
    
MSG msg;

while (GetMessage(&msg, NULL, NULL, NULL)) DispatchMessage(&msg);

      return msg.wParam; 
}

BOOL CALLBACK maDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) 
{ 
    switch (message) 
    { 

		case WM_INITDIALOG:
		    Animate_Open(GetDlgItem(hwndDlg, IDC_ANIME), "clock.AVI");
			Animate_Play(GetDlgItem(hwndDlg, IDC_ANIME),0, -1, -1);
			return true;
			break;
	case WM_COMMAND: 
            switch (LOWORD(wParam)) 
            { 
                case IDOK: 
					PostQuitMessage(1);
					EndDialog(hwndDlg, 0);
					return true;
			}
	}
      return false;
}

//***********************************
//Source dlg.rc
//***********************************
#include <windows.h>
#include "resource.h"

IDD_DIALOGUE DIALOG DISCARDABLE  0, 0, 280, 220
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
CAPTION "une Vidéo"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,220,20,50,50,WS_GROUP
    CONTROL         "Animate",IDC_ANIME,"SysAnimate32",WS_BORDER | 
                    WS_TABSTOP,0,0,200,250
END

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
33
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
30 juin 2008

Salut VieuxLion !

Je bosse sur ce contrôle win32 et je galère pour faire un avi compatible.

Apparemment, il faut ce format : BI_RLE8, ou un avi non compressé, mais je ne parviens pas à en faire un.

Aurais-tu utilisé un soft en particulier ?

Merci d'avance !
Messages postés
2
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
15 avril 2005

Oups! J'ai fait quelques tests et recherche et je crois que la taille du fichier n'entre pas en compte. Par contre le code de type Animate_xxxx() ne permet que de traiter des fichier avi compressé avec MS-RLE. Comment faire pour d'autre format tel que indeo video 5????
Messages postés
2
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
15 avril 2005

Super, excellent code. Mais comment faire pour que cela fonctionne aussi avec de gros fichiers .avi?
Messages postés
35
Date d'inscription
lundi 4 octobre 2004
Statut
Membre
Dernière intervention
20 avril 2005

Peut on récupérer un pointeur sur la frame afin de modifier celle-ci et enregistrer soit en ume image ou un fichier modifier .avi?
Messages postés
6
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
30 juin 2003

Bravo c'est nickel et ça va me dépanner pas mal...
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.