|
- CComPtr pGraphBuilder;
- CString m_strFileName;
- CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
- _T("媒体文件 (*.wmv)|*.wmv|(*.avi)|*.avi|(*.mp4)|*.mp4||"));
- if(dlg.DoModal()==IDOK)
- {
- m_strFileName=dlg.GetPathName();
- }
- CoInitialize(NULL);
- if(!pGraphBuilder)
- pGraphBuilder.CoCreateInstance(CLSID_FilterGraph);
- if(m_strFileName == _T(""))
- return;
- else
- {
- HRESULT hr = pGraphBuilder->RenderFile(m_strFileName.GetBuffer(),NULL);
- if(FAILED(hr))
- MessageBox(_T("失败"));
- CComPtr pMW;
- pGraphBuilder.QueryInterface(&pMW);
- pMW->put_Owner((OAHWND)this->GetSafeHwnd()); //播放器父窗口句柄
- pMW->put_WindowState(SW_SHOW);
- CComPtr pMC;
- pGraphBuilder.QueryInterface(&pMC);
- pMC->Run();
- }
复制代码
停止播放和释放资源
- CComPtr pMC;
- pGraphBuilder.QueryInterface(&pMC);
- pMC->Stop();
- CComPtr pMW;
- pGraphBuilder.QueryInterface(&pMW);
- pMW->put_Owner(NULL);
- pMW->put_WindowState(SW_HIDE);
- CoUninitialize();
复制代码 |
|