[Aide] DirectShow : Vidéo dans le programme
-
<p>Bonjour,</p>
<p> </p>
<p>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.</p>
<p> </p>
<p>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).</p>
<p> </p>
<p>Voici mon code actuel :</p>
<pre class="ipsCode prettyprint">
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();}
</pre>
<p>Mais voila ma vidéo se lance bien mais dans une fenêtre à part...</p>
<p> </p>
<p>J'aimerais savoir si quelqu'un sait comment utiliser le fond de la fenêtre principale au lieu d'en créer une nouvelle.</p>
<p> </p>
<p>Merci d'avance et bonne soirée !</p>
<p> </p>
<p>Cordialement,</p>
<p>Karles</p> -
<p>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)</p>
<p> </p>
<p>Sinon, je jetterai un coup d'oeil à DirectShow en arrivant chez moi.</p> -
<p>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.</p>
-
<p>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.</p>
-
<p>Merci pour vos réponses.</p>
<p> </p>
<p>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.</p> -
<p>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).</p>
<p> </p>
<blockquote class="ipsQuote" data-ipsquote=""><div>
<p></p><em>pUnkOuter</em> [in]<p>If <strong>NULL</strong>, indicates that the object is not being created as part of an aggregate. If non-<strong>NULL</strong>, pointer to the aggregate object's <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms680509(v=vs.85).aspx" rel="external nofollow"><strong>IUnknown</strong></a> interface (the controlling <strong>IUnknown</strong>).</p></div></blockquote>
<p></p><p>C'est ce que je crois, j’interprète peut-être mal. ._.</p>
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login