网站首页  |   业界社区  |  电信社区  |  技术社区   |  极客社区  |  游戏社区  |  生活社区   |   科技博客  |   同事录
TechWeb-技术社区


标题: [求助] evc 播放avi,没有图像
游客
该用户匿名发帖









发表于 2008-8-20 11:55
evc 播放avi,没有图像

void CNewAviTestDlg::OnButton1()  
;w7V8y0u.M/^{  -j)v1B#\6N"`8k
// TODO: Add your control notification handler code here  
/K"}4o(k9o(b*y程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛IGraphBuilder  *m_pGraph;   
+@2n%W5s3c%e    IMediaControl  *m_pControl;   
8x,t2N#N.U!Q    IMediaEventEx    *m_pEvent;    +A:`-y#h9b/[4Z!Y ?
IVideoWindow  *m_pVideoWindow;  ,y'q(T P*['O
    CoInitialize(NULL);    程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛#_1v"j!l*^$?;i

-n"R1a"L"d-o!^1P0HHWND  hWnd;  
!M6i;z#C7n.B;M-y1K程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛hWnd = GetDlgItem(IDC_STATIC_MPEG)->m_hWnd;  
-Z4k5B0w*T(^$Z&]1J程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛
-v2w)v+}:kHRESULT hr;  程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛(c(P)h"S'w7V,t.^3N5O
tech.techweb.com.cn'c'G/|&@4y7^.z,y
    //free(); //Deletes any previous DirectShow instances  程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛4j:j1@&t.z'H&I
    hr = CoCreateInstance(CLSID_FilterGraph, NULL,CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&m_pGraph);  
'\6h5P+X1P$[3Y B1D    if (!SUCCEEDED(hr))  
4y0p6f8B6Y&M"i{  5A)q*@2P'v+l3f/p%|:k.A!y
MessageBox(_T("CoCreateInstance failed"));  程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛!m:k*e#d1Y(w/_
}   P#Y6E/x,a*H&G0m1H8D7e
    hr = m_pGraph->QueryInterface(IID_IMediaControl, (void **)&m_pControl);  
$l'u9G2F7I"y!u    if (!SUCCEEDED(hr))  
'n(})~5v3f!P)j#M"H;STechWeb-技术社区{  
#A,}+Y%M-A.CMessageBox(_T("IID_IMediaControl failed"));  TechWeb-技术社区8t'b9X7j&\9J
}  
2i*h'y1p9N,h3^!b    hr = m_pGraph->QueryInterface(IID_IMediaEventEx, (void **)&m_pEvent);  TechWeb-技术社区(L!`/`+w7[ n*v,\
    if (!SUCCEEDED(hr))  
)C2q6E-g9Z9v4x{  tech.techweb.com.cn/v+R!?#u3C7R-i9\
MessageBox(_T("IID_IMediaEventEx failed"));    :A:E*l/G$\ r0j'?3G
}  
"V$x&c9X6O.@2jTechWeb-技术社区,h.N:Y,U"I'?+Q5S Q7T
    hr = m_pEvent->SetNotifyWindow((OAHWND)hWnd, 0, 0);  :r5z%T"[:`!q h.@'E
    if (!SUCCEEDED(hr))  0?,x"m#r6D!U
{  程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛-X(C0h4y/`5[!M
MessageBox(_T("SetNotifyWindow  failed"));  
/^2O6J6S&L9atech.techweb.com.cn}  tech.techweb.com.cn'o(M#q$d/l:P2E0y$w2L
tech.techweb.com.cn1v!s'}/['w:A

$_3~(\7d&F.H(_    hr = m_pGraph->RenderFile(_T("C\\爱我别走.avi"), NULL);  (m/C'V ?#L9H8A
    if (!SUCCEEDED(hr))  tech.techweb.com.cn)w5u6a,R"[;K
{  .G%?&_%y,h
MessageBox(_T("RenderFile  failed"));   M/w4Z8I-C:l"i
        //m_pMediaPlayerLog->WriteOut("RenderFile  failed,RESULT:0x%x",hr);  
#w6n't/r#_3DTechWeb-技术社区}  
+x-J#i&H&J"`2d    hr = m_pGraph->QueryInterface(IID_IVideoWindow, (LPVOID *) &m_pVideoWindow);  
'L5O(|,o+x8G4G8B*v*m(r程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛    if (!SUCCEEDED(hr))  
,W'J"b%n4i:U7h{  'u+l5|/H4P
MessageBox(_T("IID_IVideoWindow  failed"));  
3g-k \5X+B:I!b    }  
.\&t-B*i$T)R+H4t)C$O%|"G2L3j9Z
SetWindowLong(hWnd,GWL_STYLE,GetWindowStyle(hWnd)  ¦WS_CLIPCHILDREN);  程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛!_$m8w#O7L!@%g'Y
    hr = m_pVideoWindow->put_Owner((OAHWND)hWnd);// 这里报错,失败了  9q+L9y$h7t0^9a)L
    if (!SUCCEEDED(hr))  TechWeb-技术社区/\*J5U,r8W
{  
d/s4g"K,o5Q1B-k9Atech.techweb.com.cn  MessageBox(_T("put_Owner failed"));  
6A9T;S$u"t+Y2C:D程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛    }  
4t.K'H.H&h.\6Q)D9Y"x"K/^    hr = m_pVideoWindow->put_WindowStyle(WS_CHILD  ¦WS_CLIPCHILDREN  ¦WS_CLIPSIBLINGS); //然后这里也会报错 ,失败了
,R1~9p!K4w0b/g)q程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛    if (!SUCCEEDED(hr))  TechWeb-技术社区9L%F&W4`0V0D6x'Y2`&U
{  TechWeb-技术社区!T7D k-^/F%s
MessageBox(_T("put_WindowStyle  failed"));  
4M3\%@.f/y+C.K4~!A9^1t1Rtech.techweb.com.cn        //m_pMediaPlayerLog->WriteOut("put_WindowStyle  failed,RESULT:0x%x",hr);  
%k9l$D4b!Q0`+k}  )`4g%u.q3^
    hr = m_pVideoWindow->put_MessageDrain((OAHWND)hWnd);//然后这里也会报错 ,失败了
,P5\6n:I8Z!\3l3^    if (!SUCCEEDED(hr))  7X&R7w'B!w:o;H0R
{  1r:C-e+i,N9B/@)~9s
MessageBox(_T("put_MessageDrain  failed"));  
%\-z-Z-X4H w L(q/O    //m_pMediaPlayerLog->WriteOut("put_MessageDrain  failed,RESULT:0x%x",hr);  
%Y$j7l%]-g+f8S)c-sTechWeb-技术社区}  
+i&R$A.J:}0L:k(ITechWeb-技术社区    hr = m_pVideoWindow->put_Visible(OATRUE); //最后是这里也会报错 ,失败了
#I!o5o:H;f+J0s8Y2mTechWeb-技术社区    if (!SUCCEEDED(hr))  程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛8X2~'p)?${-v+F6d0K-~
{  (z;m,t&_:s:d7Y.z'l3s3{:P,m
MessageBox(_T("put_Visible  failed"));  TechWeb-技术社区7N!U1c'g(I3f+j+H/b
    //m_pMediaPlayerLog->WriteOut("put_Visible  failed,RESULT:0x%x",hr);  
7j4z"T%D/|'u}  tech.techweb.com.cn&E;h(N/M7j3x1P8s+\
4W%p(`4?*n%S4}
    RECT grc;  
"t%N3t/o ]#p Q    GetClientRect(&grc);  
8?*Z*[,L-A+{7a2e2U1X0Z3|tech.techweb.com.cn    m_pVideoWindow->SetWindowPosition(289,81,704,585);  
1{8x'l%B.O程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛    m_pVideoWindow->put_Visible(OATRUE);  1~,J;Q"d5_/c9O,K'x,h

,r;Z,H'~:E(N5itech.techweb.com.cnm_pControl->Run();  
'C#E,R"N6c+k:{,y Y!Btech.techweb.com.cn
)o,d1s6?*]7Stech.techweb.com.cn}  4o"Y#n-D1U'?:|-W
    哪位大侠能告诉我,我的m_pVideoWindow->put_Owner((OAHWND)hWnd),  
+N }#R6z"G(G1p                          m_pVideoWindow->put_WindowStyle(WS_CHILD  ¦WS_CLIPCHILDREN  ¦WS_CLIPSIBLINGS);  tech.techweb.com.cn$s;B:R3e)d6d+Z1b9^
                      m_pVideoWindow->put_MessageDrain((OAHWND)hWnd);  TechWeb-技术社区;Y+O%e(k:K+G/m2i
                      m_pVideoWindow->put_Visible(OATRUE);  
3K(j$E0W3]/n#S-l5V.@                    都错在哪里?谢谢!!!

引用 回复 顶部
游客
该用户匿名发帖









发表于 2008-8-20 11:55
报错,是什么错误呢?
7]&F']#U;H)p3a:B iLZ不会是想让大家猜是什么错误吧!

引用 回复 顶部
游客
该用户匿名发帖









发表于 2008-8-20 11:56
这位大侠说的是,我把出错的地方代码改成了输出错误代码信息了,如:2~$l;t"H#}'b:E6s,X.j
hr = m_pVideoWindow->put_Owner((OAHWND)hWnd);//&f0E+f(E:O+C2X-w
    if (!SUCCEEDED(hr))
-\!W0b.w;\'K#S"u&]3@(}{!f8G6B!x;y8p
  strError.Format(_T("put_Owner出错:%d"),GetLastError());TechWeb-技术社区+`-I(U#Y/X;E+}'?
  MessageBox(strError);
'N#t*p#|)E3R%E.Btech.techweb.com.cn    }2W4|;M:Q"`*j,B*l,v
    hr = m_pVideoWindow->put_WindowStyle(WS_CHILD  &brvbarWS_CLIPCHILDREN  &brvbarWS_CLIPSIBLINGS);TechWeb-技术社区+z3w'w2L7{
    if (!SUCCEEDED(hr))1j-\3O1H.T9L&i+?&{7X,_5o
{程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛#t!G(K.Y ]2R6k._
//MessageBox(_T("put_WindowStyle  failed"));
J*f%d"X1C0r,D/P,?strError.Format(_T("put_WindowStyle出错:%d"),GetLastError());
$J;j5u6E2c-J    MessageBox(strError);
2B(h2N6c.G.R;_.@5E}程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛2z:i9D+J8]
    hr = m_pVideoWindow->put_MessageDrain((OAHWND)hWnd);//将所有消息传给父窗体处理程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛.N2G&X;Y1y-_9y#_
    if (!SUCCEEDED(hr))
$A&Z;h$N9u,r6Itech.techweb.com.cn{
:A.R;^"]1q6F//MessageBox(_T("put_MessageDrain  failed"));TechWeb-技术社区(A8_$n-@:g)\6k
        strError.Format(_T("put_MessageDrain出错:%d"),GetLastError());9z-b,m4b7i-Z)m4v
    MessageBox(strError);
-]:N'R%k4f$]!n程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛}
#t:U'c)z3}0S7w;]    hr = m_pVideoWindow->put_Visible(OATRUE);
!h1}4H1B*|tech.techweb.com.cn    if (!SUCCEEDED(hr))+j)n1?0D1M1s8Q2z
{
8A"{2k%I1T*j'|$Y ^程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛//MessageBox(_T("put_Visible  failed"));程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛-Y7^0E:c7v-V
        strError.Format(_T("put_Visible出错:%d"),GetLastError());9m'S0}6r2B!V*S
    MessageBox(strError);
:P5o0`,F$H b.?+e:Q}
1X/l-x$I+j9D%W$y%S程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛
6E8|(M%_#z8`2S:@#d R    RECT grc;tech.techweb.com.cn%|5A6I%T4z#Q/[#d
    GetClientRect(&grc);;x;Z)f!v$T%S*[7Z
    m_pVideoWindow->SetWindowPosition(289,81,704,585);
;Y2l&x5F%s    m_pVideoWindow->put_Visible(OATRUE);
:E$K-f%o3A,eTechWeb-技术社区
6V*F-k2d3q%E1k)h;c5Ntech.techweb.com.cn    m_pControl->Run();
:[$V6O6o%N5[5z'T$S D
1e3K*t7x6n.h!d8z9W输出的错误信息为:tech.techweb.com.cn&N5x3?#r.F8R#Z-?'p(x
put_Owner出错: 0程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛!V8i&Z2a,H
put_WindowStyle出错: 6)]1C+]3d&i&b#g&k
put_MessageDrain出错:6!?3\7X:@9~9O
put_Visible出错: 69c#A,L8|(P*Y
请大侠指教,非常感谢!谢谢!!!

引用 回复 顶部
游客
该用户匿名发帖









发表于 2008-8-20 11:56
看看这片文章。
3{:a$C)T%`1f2P
,b)A$u m5b)Z+F |"p+bhttp://www.directshow.cn/site/?action-viewthread-tid-448

引用 回复 顶部
游客
该用户匿名发帖









发表于 2008-8-20 11:56
错误6,是句柄无效。
3x X'O+X:g*p"T,uLZ看看给的句柄是否正确呢?

引用 回复 顶部
游客
该用户匿名发帖









发表于 2008-8-20 11:56
还是想不通为什么put_Owner出错: 0,0代表什么呢?
(I3@(B9^+w
)x-C"{0l!Z8_*R#g/g8Rtech.techweb.com.cnput_WindowStyle出错: 69r(D#k!G;P.G,k
put_MessageDrain出错:6
0l*_,j2l:bTechWeb-技术社区put_Visible出错: 6
%A"m9d3q5x;t5M0}tech.techweb.com.cn为什么呢?函数返回句柄应该是HRESULT的呀,没有错呀。TechWeb-技术社区#S4P%L1U1U"o W
晕!!!2n9].q4X8q
还是请知道详情的大侠们帮帮忙,具体指导一下该怎么做。非常感谢!!!谢谢!

引用 回复 顶部
游客
该用户匿名发帖









发表于 2008-8-20 11:56
你的句柄名怎么这么怪啊,应该是this->m_hWnd;吧 hWnd是哪来的,而且也不用转换格式啊,0代表正常,你可以看看头文件里S_OK的定义

引用 回复 顶部
OKBEN
TW金牌会员
Rank: 6Rank: 6



UID 138713
精华 37
积分 1469
帖子 584
阅读权限 70
注册 2008-7-29
状态 离线
发表于 2008-8-20 11:56 资料 短消息 加为好友 添加 OKBEN 为MSN好友 通过MSN和 OKBEN 交谈
你的CLSID_FilterGraph初始化完成了没有,虽然我不懂这个,但是随手查了几个例子,tech.techweb.com.cn.Z9l e&R0Q-Q)g
觉得你的初始化好像和它们不一样。%h/o/A!L)b7l.},v$W2z8i
不知道你仔细看了没有我给你的连接。
(A)[.l$E(M程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛!B*W W5[5[-R4x;p
还是想不通为什么put_Owner出错: 0,0代表什么呢?    ///0当然是代表有问题。为什么呢,肯定是你的代码不对tech.techweb.com.cn:P9i"j9A*v
程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛+E-h9X,f,S-{
put_WindowStyle出错: 6    //这几个6表示使用句柄无效,当然了。你使用的是put_Owner返回的无效句柄,肯定是返回这个错误代码了。
9I$r&u!~3~!V'ctech.techweb.com.cnput_MessageDrain出错:6                         )v*{#\#h;|:y
put_Visible出错: 6                           TechWeb-技术社区.c&b&X6s.f3C/b(w/y5E
为什么呢?函数返回句柄应该是HRESULT的呀,没有错呀。      //返回 HRESULT 难道就不能有错了?
-G7[-m,i,{;g,@TechWeb-技术社区8a/~3P"I3]5E-~#H5P
要多怀疑自己的代码,不要怀疑机制问题。流行的代码不可能这么容易被你找到BUG的。

引用 回复 顶部
游客
该用户匿名发帖









发表于 2008-8-20 11:56
TO: lenux 我看了http://www.directshow.cn/site/?action-viewthread-tid-448,结果发觉和我的差不多,也是那样的问题好像。而现在既然肯定是hr = m_pVideoWindow->put_Owner((OAHWND)hWnd);有问题,
9v/o7M#Q4\!Rtech.techweb.com.cn所以我把代码
"m H-B+k E qhr = m_pVideoWindow->put_Owner((OAHWND)hWnd);// tech.techweb.com.cn&P.Y/Q8j'~*^&O4L
    if (!SUCCEEDED(hr))
0{(y%O;g8L'o2i+]TechWeb-技术社区{ (v g5a'B6a9w$a*l
  strError.Format(_T("put_Owner出错:%d"),GetLastError());
!h#r9j!s4w$v%^  MessageBox(strError);TechWeb-技术社区(S&`)@-B(J(U0?*E&K
}
3P#H3q3D'Y&^tech.techweb.com.cn改成了:
)~-m5_2s"L*`/w:F2n2f;xhr = m_pVideoWindow->put_Owner((OAHWND)hWnd);//
'@4a+j6i*u6d    if (!SUCCEEDED(hr)) @.J+j/]/^/Q&@
{程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛-S c4p6R;J+m
  strError.Format(_T("put_Owner出错:%x"),hr);6w:j%A S1H${!\!O1g5d
MessageBox(strError);
2G8Z)v;Q.M9_程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛strError.Format(_T("put_Owner出错:%d"),hr);
#~3t(I:~7Q-Gtech.techweb.com.cnMessageBox(strError);
3X"b/|$T0i*J4?;B+fstrError.Format(hr);4k2c/|;~3t5v r
  MessageBox(strError);
3W.M6J(@4| q7f2T4B#r'L    }
,t"n+J5k3^+_)n/?8v!m程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛察看输出结果:/s-m#w(^,C7q9v,y3v4a
第一个对话框显示:put_Owner出错:80004002
/o(e%O(n!R5s&v2u8H!^"xTechWeb-技术社区第二个对话框显示:put_Owner出错:-2147467262
:M){-z"M!n"g-{)V-I0f第三个对话框是空白
/Q+c6c7S2O%x(Btech.techweb.com.cn噢,对了,等所有的报错对话框都关闭(包括:put_WindowStyle出错: 6 put_MessageDrain出错:6           tech.techweb.com.cn'd)A&W(s'c
put_Visible出错: 6 这三个对话框),最后听到卡的一声。没有其他的声音和图像。
)]/u9S:t+O*u(z0~TechWeb-技术社区是不是因为返回的hr 是NULL阿?我查MSDN上只说Return Value,Returns an HRESULT value. 根本没有其他的说明。所以希望谁碰到过类似的问题或者代码请指教!
!k%p-t4E"U(m;D3U$S%n在此真的谢谢大家的帮助!谢谢!

引用 回复 顶部
游客
该用户匿名发帖









发表于 2008-8-20 11:56
#define E_NOINTERFACE                    _HRESULT_TYPEDEF_(0x80004002L)
*Z'Q#J2w(m${"P(E程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛检查一下你的m_pVideoWindow和hWnd是否合法,再不行去流媒体开发版问问,这是dshow的问题

引用 回复 顶部
查看积分策略说明快速回复主题
选项 标题 Smilies
禁用 URL 识别
禁用 Smilies
禁用 Discuz!代码
使用匿名发帖
使用个人签名
接收新回复邮件通知
内容





当前时区 GMT+8, 现在时间是 2008-11-23 05:48
京ICP证060517号

本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0 © 2001-2008 Comsenz Inc.
Processed in 0.035243 second(s), 7 queries

清除 Cookies - 联系我们 - TechWeb.com.cn - Archiver - WAP