begin process at 2008 05 16 05:53:20
1 173 216 membres
59 nouveaux aujourd'hui
13 970 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Affichage d'une video grace aux objets COM [ Archives / Multimédia ] (matge)

Affichage d'une video grace aux objets COM le 20/11/2004 15:55:53

matge
Bonjour

J'aimerais lire une video MPEG dans une MFC.
Pour cela j'ai choisit les objets COM. Voila ce dont je dispose:


J initie la librairie COM dans: OnInitDialog()

// Initialisation de l'objet COM
HRESULT hr = CoInitialize(NULL);
if (FAILED(hr)) MessageBox("Librairie COM non initialisée");



Voici la creation du graph direct show

BOOL CClientRTP1Dlg::CreateGraph()
{
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
IID_IGraphBuilder, (void **)&pGraph);
pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
pGraph->QueryInterface(IID_IMediaSeeking, (void **)&pSeek);

// Conversion CString -> unsigned short*
USES_CONVERSION;
WCHAR wFile[MAX_PATH];
wcscpy(wFile, T2W(m_chemin));

pGraph->RenderFile(wFile, NULL); // Construction du graph

return TRUE;
}


Dans ma MFC je clique sur un bouton et lance:

void CClientRTP1Dlg::OnBnClickedButton1()
{

if (!CreateGraph()) MessageBox("Problème de construction du graph");
pMediaControl->Run(); // Execution du graph}

}



Mais a ce stade rien ne se passe. Que faire ?

Re : Affichage d'une video grace aux objets COM le 18/12/2004 14:06:26

mofo_77
Normalement tel que ton code est écrit tu devrais avoir une fenetre Active movie qui doit apparaitre et qui doit te permettre de visionner la video. Je pense que certains composants ne sont pas installés sur ton ordinateur.

Tu devrais tester chaque appel de fonction:

HRESULT HR = CoCreateInstance(CLSID_FilterGraph, NULL,
CLSCTX_INPROC_SERVER,
IID_IGraphBuilder,
(void **)&pGraph);
if(FAILED hr)
MessageBox("ca marche pas");

Par contre si tu veux visionner la video dans la fenetre de ton application, tu dois utiliser le composant IVideoWindown, qui s'initialise comme IID_IMediaControl. Je te laisse regarder l'exemple du SDK qui utilise ce composant c'est assez simple.


Classé sous : graph, video, void, objets, pgraph

Participer à cet échange

Appels d'offres

Pub



Snippets en rapport

CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS