directshow屏保回来后视频播放窗口黑屏,不刷新

liwenrui2008 2009-04-16 02:35:36
各位好!用directhsow播放视频流数据,播放正常,但是屏保或者用win+L锁定后,再进入windows桌面,则视频播放窗口呈黑屏状,无刷新。说明:我是用VMR9 有窗口模式来播放的。发现《directhsow开发指南》第5章SimplePlayer也有这个问题。请问各位专家达人如何解决?
...全文
624 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
go_seesea 2009-08-03
  • 打赏
  • 举报
回复
本人是在VMR9有窗口模式下做的测试,发现VMR9和其他的渲染过滤器有一个不同之处:当进入系统屏保或者锁定界面时,VMR9会自动调用过滤器图中各个过滤器上的Stop方法(估计是从VMR9一直调到源过滤器),此时就会调用过滤器引脚(Pin)上的Incative(停止数据处理线程)方法,紧接着又会自动调用过滤器上的Run方法,对应会调用引脚上的Active方法,就在这一Stop一Run之间(至于为什么要Stop一下马上又Run没有深究过),流时间出现一个无效状态,这个状态导致时戳和流时间对应不上而出现播放问题,所以在这个点上需要处理一下时戳,最好打为0,这样就可以立刻播放该帧。另外对于有的解码器在停止之后可能需要有关键帧才能继续播放,所以,如果播放不出来就发个关键帧试试。
go_seesea 2009-07-30
  • 打赏
  • 举报
回复
大哥,你的问题解决了吗?能否教小弟一下?
liwenrui2008 2009-04-22
  • 打赏
  • 举报
回复
另外,请问下有没有朋友在directshow下用过speex filter吗?我安装了speex decoder,但是speex decoder下一级直接连接audio render失败,自动连接也找不到合适的render.请问应该怎么连接?
liwenrui2008 2009-04-22
  • 打赏
  • 举报
回复
谢谢二位回复!hust_terry, IVMRWindowlessControl::RepaintVideo是无窗口模式接口下的函数,请问如何在有窗口下调用?还有如果可以调用,应该在哪里调用?就是怎么知道系统锁定后,重回windows的消息?
SoftSoftSoft2008 2009-04-17
  • 打赏
  • 举报
回复
用DirectDraw 播放,或者 SDL 都可以的。
hust_terry 2009-04-16
  • 打赏
  • 举报
回复
需要调用RepaintVideo

2,553

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧