社区
多媒体/流媒体开发
帖子详情
directshow屏保回来后视频播放窗口黑屏,不刷新
liwenrui2008
2009-04-16 02:35:36
各位好!用directhsow播放视频流数据,播放正常,但是屏保或者用win+L锁定后,再进入windows桌面,则视频播放窗口呈黑屏状,无刷新。说明:我是用VMR9 有窗口模式来播放的。发现《directhsow开发指南》第5章SimplePlayer也有这个问题。请问各位专家达人如何解决?
...全文
700
6
打赏
收藏
directshow屏保回来后视频播放窗口黑屏,不刷新
各位好!用directhsow播放视频流数据,播放正常,但是屏保或者用win+L锁定后,再进入windows桌面,则视频播放窗口呈黑屏状,无刷新。说明:我是用VMR9 有窗口模式来播放的。发现《directhsow开发指南》第5章SimplePlayer也有这个问题。请问各位专家达人如何解决?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用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
Win7下
directshow
窗口
模式退出全屏后
黑屏
Win7下
directshow
窗口
模式退出全屏后
黑屏
,使用的方法是put_FullScreenMode,据说是因为win7的桌面组合效果导致的。解决方法:改为无
窗口
或仿真全屏。仿真全屏:HRESULT PlayVideo::PutFullScreen(HWND ghApp)/
MFC
视频
播放
器源码实战:
DirectShow
与WMP
窗口
挂接及线程排错
MFC(Microsoft Foundation Classes)是Windows桌面应用开发中广泛使用的C++框架,许多遗留的
播放
器工具、工控机本地
播放
软件和教学示例工程都基于它构建。在MFC中集成
视频
播放
,关键在于理解
播放
内核(如
DirectShow
或Windows Media Player控件)与MFC
窗口
消息循环、线程模型之间的配合。
DirectShow
通过Filter Graph串联解码流程,再利用IVideoWindow接口将渲染画面绑定到指定HWND;WMP控件则通过ActiveX封装简化调用
Delphi XE中DSPack
视频
播放
:从
DirectShow
封装到工程实践
在Windows多媒体开发中,
DirectShow
是底层的媒体处理框架,但原生COM接口复杂难用。DSPack作为Delphi下的开源封装库,将Filter Graph管理、媒体控制、
视频
渲染等核心逻辑封装为可视化组件,极大降低了Delphi开发
视频
播放
器的门槛。本文从概念到原理,分析DSPack的安装配置、Win32平台适配、最小
播放
器搭建、
播放
状态控制、循环
播放
以及画面闪烁等经典问题,并给出基于IMediaSeeking和OnGraphNotify的工程化解法。无论是做本地
视频
播放
、教学软件还是后台预览
C#使用
DirectShow
播放
视频
文件
最近在开发一个
视频
播放
软件,主要要求就是循环
播放
多个
视频
文件,并且要求两个
视频
文件切换时,不能有
黑屏
现象发生。 无论是使用Winform的Mediaplayer控件还是WPF的MediaElement控件,在一个
视频
播放
完毕切换到另一个
视频
时,都会有一个短暂的
黑屏
情况,于是我就把目光放在了
DirectShow
上面。下面说一下如何使用
DirectShow
进行
视频
播放
。 使用
DirectShow
,
Visual C++与
DirectShow
实现全屏
视频
播放
器开发详解
在工控机、医疗候诊屏等场景中,常需开发不依赖第三方
播放
器的全屏
视频
播放
程序。
DirectShow
作为Windows多媒体框架的经典方案,通过滤镜图(Filter Graph)机制将源滤镜、解码器与渲染器串联,以COM接口提供
播放
控制与
窗口
管理能力。相比Media Foundation和ActiveX控件,
DirectShow
在Windows 7至11均保持完整兼容,且每个环节均可编程控制,便于排查
播放
异常和实现定制功能。掌握IVideoWindow全屏切换、基于SetWindowPos的
窗口
铺屏、循环
播放
事
多媒体/流媒体开发
2,554
社区成员
20,277
社区内容
发帖
与我相关
我的任务
多媒体/流媒体开发
专题开发/技术/项目 多媒体/流媒体开发
复制链接
扫一扫
分享
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章