Karles Posté(e) April 4, 2014 Signaler Posté(e) April 4, 2014 Bonjour, J'ai commencé à utiliser DirectShow (module vidéo de directx), mais un détail très important que je voudrais corriger apparait : mon programme ouvre une autre fenêtre et lis la vidéo dedans. Moi je souhaite que la vidéo se lise EN FOND du programme initial. Nous sommes dans le contexte d'une page de login pour un jeu, codé en C++. J'aimerais faire comme le login de league of legends, un fond animé (une vidéo dans mon cas). Voici mon code actuel : void .... { [AUTRE CODE] //Système video-login IGraphBuilder* pGraph; IMediaControl* pMediaControl; IMediaEvent *pEvent; CoInitialize(NULL); // Create the filter graph manager and query for interfaces. CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pGraph); pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl); pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent); // Build the graph. pGraph->RenderFile(L"C:\\test.avi", NULL); pMediaControl->Run(); long evCode; pEvent->WaitForCompletion(INFINITE, &evCode); // Wait for completion. // Clean up. pMediaControl->Release(); pGraph->Release(); CoUninitialize(); } Mais voila ma vidéo se lance bien mais dans une fenêtre à part... J'aimerais savoir si quelqu'un sait comment utiliser le fond de la fenêtre principale au lieu d'en créer une nouvelle. Merci d'avance et bonne soirée ! Cordialement, Karles
Cyrion Posté(e) April 4, 2014 Signaler Posté(e) April 4, 2014 Peut-être que cette classe ou une des fonctions nécessite de passer le handle ou l'instance de ta fenêtre principal pour se lancer là dessus au lieu d'en créer une autre.(Simple supposition) Sinon, je jetterai un coup d'oeil à DirectShow en arrivant chez moi.
AlexMog Posté(e) April 5, 2014 Signaler Posté(e) April 5, 2014 D'après ton code (je ne connait pas cette lib, mais le nom des fonctions est équivoque) tu as l'air de lui demander de re-créer une fenêtre. Renvois un peu ton code et la doc, il doit y avoir un moyen de lancer le tout dans une fenêtre.
AlexMog Posté(e) April 5, 2014 Signaler Posté(e) April 5, 2014 D'après ton code (je ne connait pas cette lib, mais le nom des fonctions est équivoque) tu as l'air de lui demander de re-créer une fenêtre. Renvois un peu ton code et la doc, il doit y avoir un moyen de lancer le tout dans une fenêtre.
Karles Posté(e) April 5, 2014 Auteur Signaler Posté(e) April 5, 2014 Merci pour vos réponses. Mais si je poste c'est que je n'y arrive pas vraiment. J'ai lu des vieux cours, des doc etc.. j'ai pas vraiment trouvé concernant l'intégration dans le programme, puis j'ai fait des dizaines d'essais j'ai du recompiler 20x mini avec plusieurs combi différentes.
Cyrion Posté(e) April 5, 2014 Signaler Posté(e) April 5, 2014 Selon ce que j'ai lu sur MSDN, le deuxième paramètre de CoCreateInstance spécifie si l'instance va faire partie d'un ensemble ou non (Null = seul autre > Pointeur vers l'object de l'ensemble dont on veut le rattacher). pUnkOuter [in] If NULL, indicates that the object is not being created as part of an aggregate. If non-NULL, pointer to the aggregate object's IUnknown interface (the controlling IUnknown). C'est ce que je crois, j’interprète peut-être mal. ._.
Recommended Posts
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant