作者theee (系子)
看板C_and_CPP
标题请问DShow播放影片的问题?
时间Fri Aug 7 15:04:51 2009
原本的功能已经在Console Mode成功播放影片了
目前想做出视窗版本的播放介面
但现在透过Dialog将影片抓进来後播放都只有声音没有画面
想请问一下可能发生的原因?
变数:
m_pGraph -> IGraphBiluder
m_pControl -> IMediaControl
m_pVedioWindow ->IVideoWindow
m_hDlgWnd ->一个Picture Control的HWND(CStatic)
m_lpFilePath -> 播放影片档名
m_rectScreenSize -> Picture Control的大小(CStatic)
程式码
//透过m_pGraph Render影片
HRESULT hr = m_pGraph->RenderFile(m_lpFilePath, NULL);
m_pControl->StopWhenReady();
if(SUCCEEDED(hr))
{
hr = m_pVedioWindow->put_Owner((OAHWND)m_hDlgWnd);
hr = m_pVedioWindow->put_WindowStyle(WS_CHILD | WS_CLIPSIBLINGS );
hr = m_pVedioWindow->SetWindowPosition(0, 0, m_rectScreenSize.right,
m_rectScreenSize.bottom);
m_pControl->Run();
}
//上面这段程式码若没有加入m_pVedioWindow的控制的话,是可以顺利播放影片的
但增加了m_pVedioWindow後,播出的影片就只有声音
我曾将m_pVedioWindow->put_Owner(NULL), 这就是顺利将影片贴到桌面上播出
我想这大概就是因为我把影片贴到CStatic失败,但是我不知道该如何正确的将
影片贴到可以播出的元件上??
// 我最主要想要做出的效果是透过Dlg开启档案後,播出画面会和MediaPlayer
类似下面会有control bar上面有影片,所以我查了网路是IVideoWindow方式
请问有相关经验的网友可以帮我解决问题吗?多谢各位!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.115.116.245