关于DirectShow媒体播放器画面不显示的解决方法

最近写了一个小程序,基于DirectShow的媒体播放器。原理很简单,就是用ds的智能连接,构建起Graph后就可以了。

但是写完之后,有时会出现一个问题,就是明明已经开始播放了,但是看不到视频画面。这个现象有的时候又不会出现,很是奇怪。后来发现,只要用鼠标拖动一下窗口,就好了。在做视频采集的时候,也遇到过这个问题,但是没有重视,后来不知道怎么就不会出现了。

刚开始以为是把可见性属性设置成OAFALSE了,但明明是OATRUE。自己研究程序,翻来覆去看了很多遍,都没有找到问题出在了哪里。又看了一下sdk中的例子,好像没有什么马虎的地方。研究半天,无果,还是百度一下吧。

网上很多人也都遇到过这个问题,解释很多,但是都没有看懂,不过找到了解决方法:

1、增加WM_ERASEBKGND消息处理

2、在OnInitDlg()中:

 

3、消息处理函数中

 

这样就可以了。学习了一段时间的DirectShow,也遇到了各种各样的问题,应该说是自己慢慢摸索过来的,走了很多的弯路。以后争取多写一些自己的经验,以给正在学习或者以后会学习的人。也望发现新的问题的朋友留言提问,互相交流学习~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值