LECTEUR DE CLIPS VIDÉO

seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010 - 8 août 2005 à 10:52
cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009 - 7 nov. 2007 à 18:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33111-lecteur-de-clips-video

cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009
7 nov. 2007 à 18:38
SAlut, une petite question, l'interface affiché par défaut si on ne récupère pas le pointeur vers les boutons (pause, lecture, ..)

saurais-tu comment l'activer ? car les boutons restent figés --_--' juste a tout hazard, très bonne source :p
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
25 mars 2006 à 03:39
Salut,
Il suffit de libérer toutes les interfaces de l'activex utilisées par notre programme pour qu'il soit détaché de son conteneur. Il ne faut jamais détruire le conteneur avant, sinon crash.
Utilisateur anonyme
1 mars 2006 à 15:16
merci ca marche.

il y a la fonction AtlAxAttachControl mais pas de Detach ?
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
1 mars 2006 à 01:44
Salut,
Dans le SDK de WMP10, tu trouveras un exemple "WMPHost" qui contient deux fichiers "CWMPEventDispatch.h" et "CWMPEventDispatch.cpp". Tu peux adapter ces deux fichiers pour pouvoir les utiliser sans ATL. Mon code source "Navigateur Web" utilise une classe implémentant l'interception des événements. Le principe est le même avec WMP.
Utilisateur anonyme
28 févr. 2006 à 12:01
comment peut on utiliser les evenements ? avec IWMPEvents ou _WMPOCXEvents ?
je ne vois pas comment on peut se servir de ces objets.
merci.
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
9 août 2005 à 16:43
Ok merci pour l'astuce :)
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
9 août 2005 à 16:30
Bonjour c'est très simple,

Je fais comme tu fais et à l'emplacement noir où devait être la vidéo, je colle une photo d'une scène de la vidéo à l'aide de paint.
La photo a été capturée depuis Windows Movie Maker.

Bonne prog,
@++
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
9 août 2005 à 16:18
Merci beaucoup. Je prends celle du tobogan car la tienne est très sombre. Dis-nous comment tu fait pour bien réaliser ces screenshots?
Meric pour ta collaboration.
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
9 août 2005 à 15:55
Bonjour,

J'ai réalisé une vidéo exprès avec du mouvement chez moi:

http://img163.imageshack.us/img163/5597/video3yg.png

Bonne prog
PS : Tu peux la télécharger et la mettre en screen sur cppfrance si elle te convient

@++
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
9 août 2005 à 15:43
Bonjour,

Dsl mais je ne danse pas encore.

J'ai trouvé la vidéo fournie avec XP. J'ai pris la scène où il descends du tobogan.
En effet ça bouge et on peut même voir les pixels du déplacement !

http://img163.imageshack.us/img163/6685/video5vq.png

Bonne prog

@++
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
9 août 2005 à 15:30
Merci beaucoup victoroasne. Tu peux faire un autre screenshot où on peut sentir le mouvement? Genre danse par exemple. Merci.
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
9 août 2005 à 14:15
Bonjour,

Voilà un screen :
http://img163.imageshack.us/img163/7122/video7bx.png

PS : C'est une fois j'ai fait la météo en vidéo sur fond blanc et voilà le résultat mais là c'est le moment où je dis le temps donc j'y suis pas !

Bonne prog
@++
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
9 août 2005 à 13:54
ok, c'est bien ce que je pensais, j'ai le meme probleme;

lol
si t'y arrive envoi moi les expliks

a+
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
9 août 2005 à 13:46
Bonjour,
satellite34 >> Le problème du screenshot c'est que la méthode pour le créer ne marche pas bien. Je fais ALT+ImprimEcran puis je colle dans Paint puis je convertis en jpg avec un autre outil. Le résultat n'est pas bon car soit le clip n'apparait pas soit il est décalé dans le cadre. Je vais essayer de régler ce problème pour ma prochaine mise à jour.
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
9 août 2005 à 02:13
Un screenShot peut etre??

merci.
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
9 août 2005 à 00:21
Merci beaucoup victoroasme. C'est très sympa de ta part.
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
8 août 2005 à 23:08
Bonjour,
RACPP > C'était un plaisir de tester pour toi surtout avec de si excellentes sources (comme toutes les tiennes). Dev-C++ et gratuit donc pas de problème majeur de téléchargement.
Il suffit d'aller sur le site de l'éditeur (anglais).Le programme lui est bien en Français.
Si tu as des problèmes avec Dev-C++ tu peux me contacter.

Programmez bien
@++
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
8 août 2005 à 23:04
victorcoasne >> Je pense que je dois donc télécharger et installer Dev-C++. Comme ça je ferai tous les tests avant de déposer un code source. Je dois aussi revoir et mettre à jour toutes mes sources. Merci beaucoup pour ton aide . :)
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
8 août 2005 à 22:45
Bonjour,

Chez moi le lecteur flash compile sous Dev-C++ mais ne veux pas lire les swf (même ton exemple) alors qu'avec ton navigateur compilé sous Dev-C++ ça marche.

Bonne Prog,

@++
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
8 août 2005 à 22:41
J'ai souvent travaillé avec #import mais ça ne suffit pas toujours. Dans ma source "Lecteur d'animations Flash" j'ai commencé par utiliser #import "....flash.ocx" mais le compilateur disait qu'il manque des définitions. J'ai aussi appris que les types importés comportaient des erreurs. J'ai donc laissé tomber #import et puis j'ai créé un fichier "flash.h" à partir des données fournies par "OLE/COM Viewer". J'ai ensuite dû désinstaller Flash 7 de mon PC puis installer la version 5 pour corriger des erreurs de type. La démarche était longue mais très instructive => avec #import on peut importer des erreurs.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 août 2005 à 22:04
Faudrait être maso pour faire s'il y en a trop.
Pour tout ce qui expose des interfaces COM, le pratique c'est aussi d'employer la directive #import et c'est VS qui crée illico un tlh et un tli dans lesquels il a extrait tout ce qui est dans ton h.
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
8 août 2005 à 21:51
D'habitude, je n'ai jamais ce genre de problème quand les GUID sont définis dans un fichier *.h on passe directement les identificateurs aux fonctions et ça marche. Comme dans mon source de Navigateur Web. Tous les GUIDs sont dans "exdisp.h" et ça passe sans problème même avec Dev-C++ (d'après post de victorcoasne). L'avantage du fichier *.h est qu'il peut contenir un grand nombre de GUIDs. Imaginez la corvée si on veut définir manuellement les GUIDs de beaucoup d'interfaces.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 août 2005 à 21:35
oui ça peut aussi se comprendre, la preuve ce n'est pas dur de remplacer directement par un GUID fait main, mais bon ça prend du temps d'aller l'extraire et on s'habitue vite au confort des IDE prefectionnés.
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
8 août 2005 à 21:27
J'ai toujours évité les MFC et ATL pour, en plus de la performance des API, pouvoir compiler avec tous les compilateurs. Je pense donc qu'il est aussi préférable d'éviter les trucs spécifiques à Microsoft comme "__uuidof" quand c'est possible.
A propos du problème du linkage, je vais examiner "wmp.h" pour essayer de trouver ce qui cloche.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 août 2005 à 21:24
oh tu sais moi et ses considérations...
Je connais seulement le client standard et il y a longtemps que j'ai compris où je devais bosser pour le satisfaire, tout le reste n'est que philo.
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
8 août 2005 à 21:16
Bonjour,

BruNews > Oui mais en même temps avec gcc on est proche du standard !

Bonne Prog
@++
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 août 2005 à 21:13
sais pas faufrait voir mais sur VS il est d'usage d'employer __uuidof qui va chercher lui même le GUID dans le fichier d'interface du composant. Je l'employais deja sur VS6 pour ADO et ça passait impec. Le prob est pour les compilos non MS.
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
8 août 2005 à 20:59
Merci Brunews,
Je voulais éviter de définir les GUID des interfaces car ils le sont déjà dans "wmp.h". Normalement on devrait faire ceci:
CoCreateInstance(CLSID_WindowsMediaPlayer,0,CLSCTX_ALL,IID_IWMPCore,(void**)&pMPCore);
Ainsi, la compilation se passe sans problème mais à l'édition des liens j'ai ceci:
error LNK2001: unresolved external symbol _CLSID_WindowsMediaPlayer
error LNK2001: unresolved external symbol _IID_IWMPCore
T'as une idée BruNews?
Je rappelle que "wmp.h" est inclus "Windows Media Player 10 SDK".
Il s'agit peut-être d'un problème de compatibilité avec Visual 6.
Quelqu'un peut essayer avec une version plus récente svp?
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
8 août 2005 à 20:49
Bonjour,
C'est bon ça marche nickel !
Merci quand même à BruNews (le roi de l'asm et de l'hexadécimal ;-)) pour sa recherche :
J'étais en train de suivre ses indications quand RACPP m'a donné la réponse.
Merci aussi à RACPP pour son excellent travail !
10/10 !

Bonne continuation
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
8 août 2005 à 20:42
Ca marche avec ça:
const GUID WMP ={0x6BF52A52,0x394A,0x11D3,{0xB1,0x53,0x00,0xC0,0x4F,0x79,0xFA,0xA6}};
const GUID IWMPC ={0xD84CCA99,0xCCE2,0x11D2,{0x9E,0xCC,0x00,0x00,0xF8,0x08,0x59,0x81}};
const GUID IWMPP ={0x6BF52A4F,0x394A,0x11D3,{0xB1,0x53,0x00,0xC0,0x4F,0x79,0xFA, 0xA6}};
CoCreateInstance(WMP,0,CLSCTX_ALL,IWMPC,(void**)&pMPCore);
//..........
pMPCore->QueryInterface(IWMPP,(void**)&pMPPlayer);
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 août 2005 à 20:36
J'oubliais de préciser mais c'est implicite, ça marche très bien, bon boulot.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 août 2005 à 20:26
Fais toi un genre de struct comme ça et remplis pour chacun et tu passeras adresse à QueryInterface.

typedef struc MY_GUID_ {
DWORD a;
WORD b;
WORD c;
BYTE d;
BYTE e;
BYTE f;
BYTE g;
BYTE h;
BYTE i;
BYTE j;
BYTE k;
} MY_GUID_;

Pour __uuidof(IWMPCore) tu remplis avec cette suite (en HEXA)
D0d84cca99, cce2, 11d2, 9e, cc, 0, 0, f8, 8, 59, 81

Pour __uuidof(WindowsMediaPlayer)
06bf52a52, 394a, 11d3, b1, 53, 0, c0, 4f, 79, fa, a6
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
8 août 2005 à 19:52
Bonjour,

J'ai essayé c'est bon il reste plus que le _uuidof :
MediaPlayer.cpp: In function `int WinMain(HINSTANCE__*, HINSTANCE__*, CHAR*, int)':
MediaPlayer.cpp:138: error: expected primary-expression before ')' token
MediaPlayer.cpp:138: error: `__uuidof' undeclared (first use this function)
MediaPlayer.cpp:138: error: (Each undeclared identifier is reported only once for each function it appears in.)
MediaPlayer.cpp:138: error: expected primary-expression before ')' token
MediaPlayer.cpp:147: error: expected primary-expression before ')' token

Bonne prog
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
8 août 2005 à 18:45
victorcoasne >> Dans "wmp.h" contient à la ligne signalée (8646) un identificateur qui n'est peut-être pas reconnu par Dev-C++. Il s'agit de EXTERN_GUID. Il suffit de le définir au début du programme comme ceci:

#include <windows.h>
#ifndef EXTERN_GUID
#define EXTERN_GUID(g,l1,s1,s2,c1,c2,c3,c4,c5,c6,c7,c8)
#endif
#include "wmp.h"

Teste ce petit truc et dis-moi si ça résoud le problème. Pour les autres erreurs, je vais les régler ensuite. Merci
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
8 août 2005 à 14:36
Salut,
Merci pour vos encouragements, ça fait plaisir.

victorcoasne >> Merci de m'avoir signalé ce problème avec Dev-C++. Je vais essayer de le régler le plus tôt possible.
Le fichier "wmp.h" est fourni par Microsoft dans son "Media Player 10 SDK". Il semble qu'il n'est pas compatible avec Dev-C++. Pour les autres erreurs c'est, "__uuidof" qui n'est pas reconnue. On peut la contourner. Je vais modifier un peu le code puis le mettre à jour. Je te tiendrai au courant.
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
8 août 2005 à 11:40
Bonjour,
Très bonne source comme d'habitude mais cependant erreurs sous Dev :

In file included from MediaPlayer.cpp:3:
wmp.h:8646: error: expected constructor, destructor, or type conversion before '(' token

wmp.h:8646: error: expected `,' or `;' before '(' token

MediaPlayer.cpp: In function `int WinMain(HINSTANCE__*, HINSTANCE__*, CHAR*, int)':
MediaPlayer.cpp:135: error: expected primary-expression before ')' token
MediaPlayer.cpp:135: error: `__uuidof' undeclared (first use this function)
MediaPlayer.cpp:135: error: (Each undeclared identifier is reported only once for each function it appears in.)
MediaPlayer.cpp:135: error: expected primary-expression before ')' token

MediaPlayer.cpp:144: error: expected primary-expression before ')' token
seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010
8 août 2005 à 10:52
Merci pour cette source Raccp.
Elle va m'être trés utile.
Bien commentée et pratique 10/10.
Rejoignez-nous