在Directshow中使用VMR9

声明:欢迎任何人和组织转载本blog中文章,但必须标记文章原始链接和作者信息。  

本文链接:http://blog.csdn.net/li_007/archive/2010/03/02/5338976.aspx

开拓进取的小乌龟------->CSDN点滴点点滴滴Blog 

废话就少说了,把这段时间做的某***活动要用播发器的部分Directshow代码发出来,方便大家使用(声明:遵循LGPL协议)。本来同事想用openframeworks使用quicktime来播放这个3084*720的高清AD片子的,可是播放的时候有点卡,所以没办法就只有再次自己用directshow来写,现在分享的代码可以方便大家直接使用,做一个简单的播放器。

  

 

使用示例代码

 

其实封装好了,使用起来很简单的,我想应该可以方便大家使用,完成一个简单的播放器。当然还可以监听播放器事件,那段代码就没必要贴出来的,很简单,MSDN上就有的

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
使用 C# 和 DirectShow 开发多屏应用程序时,您可以使用 DirectShowVMR9 滤镜来实现多屏显示。 以下是步骤: 1. 创建 DirectShow 图形并添加视频源过滤器。 2. 创建 VMR9 滤镜并将其添加到 DirectShow 图形。 3. 配置 VMR9 滤镜以支持多屏显示。您需要设置 VMR9 的显示模式为“窗口化”或“全屏模式”。 4. 使用 VMR9 的 SetWindowPosition 方法将每个 VMR9 滤镜实例的位置和大小设置为相应的屏幕。 5. 启动 DirectShow 图形并播放视频。 下面是一些代码片段,演示如何实现多屏显示: ```csharp // 创建 DirectShow 图形 IGraphBuilder graphBuilder = (IGraphBuilder)new FilterGraph(); graphBuilder.RenderFile("C:\\video.avi", null); // 创建 VMR9 滤镜 IBaseFilter vmr9 = (IBaseFilter)new VideoMixingRenderer9(); // 将 VMR9 滤镜添加到 DirectShow 图形 graphBuilder.AddFilter(vmr9, "VMR9"); // 配置 VMR9 滤镜 IVMRFilterConfig9 vmrConfig = (IVMRFilterConfig9)vmr9; vmrConfig.SetRenderingMode(VMR9Mode.Windowed); // 获取屏幕信息 Screen[] screens = Screen.AllScreens; // 设置每个 VMR9 滤镜实例的位置和大小 for (int i = 0; i < screens.Length; i++) { VMR9WindowlessControl9 vmrControl = (VMR9WindowlessControl9)vmr9; vmrControl.SetVideoPosition(null, screens[i].Bounds); } // 启动 DirectShow 图形并播放视频 IMediaControl mediaControl = (IMediaControl)graphBuilder; mediaControl.Run(); ``` 请注意,此代码片段仅用于演示多屏显示的基本实现方法。您可能需要根据自己的应用程序要求进行更改和调整。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值