Visual C#使用DirectX实现视频播放

本文详细介绍了如何在Visual C#中通过调用非托管DirectX来实现视频播放,展示了DirectX在减轻底层硬件处理上的作用。尽管对于托管和非托管DirectX的使用一直存在争议,但其在软件开发中的应用日益广泛,特别是对于游戏程序的开发。这篇教程适合想要学习在Visual C#中使用DirectX的开发者。
摘要由CSDN通过智能技术生成
很多人第一次接触到DirectX大都是通过游戏,至于安装、升级DirectX的原因无非是满足游戏运行的需要。Direct X其实是微软公司推出的一个为Windows平台的多媒体API函数库,它提供标准接口来与显卡和声卡、输入设备等进行交互。如果没有这组标准API函数库,那你就需要为每一种显卡、声卡的每个组合和每种类型的键盘、鼠标和游戏杆编写不同的代码。这不又回到了以前的Dos时代。为了解决这个问题,微软公司推出了DirectX。DirectX从具体的硬件中抽象出来,并且将一组通用指令转换成硬件的具体命令。这样开发语言通过调用统一标准的Direct X函数库就可以操作每一种显卡、声卡的每个组合和每种类型的键盘、鼠标和游戏杆等多媒体了。

   一.Direct X SDK 9.0安装及类库介绍:

  .Net FrameWork SDK中并没有包含Direct X SDK,所以为了顺利的完成本文后面介绍,
必须先下载、安装Direct X SDK。具体的下载地址为:http://download.microsoft.com/download/a/c/d/acdfb557-266f-4af4-8673-6ab8009b4ddd/dxsdk_apr2005.exe。此版本是2005四月份推出的英文版。这并不妨碍下面的程序实现。安装完Direct X后,就会在存在"C:\WINDOWS\Microsoft.NET\Managed DirectX"这样一个目录,此目录中目录中应该有九个DLL文件和九个XML文件。九个DLL文件大致对应于DirectX中的十个命名空间。编程中就是使用其中的命名空间来提供对输入设备、声音、网络播放、图形等的支持。Direct X SDK 9.0中的定义的命名空间及其主要的作用具体如表01所示:

命名空间 描述
Microsoft.DirectX 公共类和数学结构
Microsoft.DirectX.Direct3D 3D图形和助手库
Microsoft.DirectX.DirectDraw Direct Draw 图形API。这是旧式命名空间,现在已经不需要使用它。
Microsoft.DirectX.DirectPlay 用于多玩家游戏的网络API
Microsoft.DirectX.DirectSound 声音支持
Microsoft.DirectX.DirectInput 输入设备支持(例如,鼠标和游戏杆)
Microsoft.DirectX.AudioVideoPlayback 播放视频和音频(例如,在电脑上播放各自视频动画文件)
Microsoft.DirectX.Diagnostics 疑难解答
Microsoft.DirectX.Security 访问安全性
Microsoft.DirectX.Security.Permissions 访问安全权限
       表01:Direct X SDK9.0中的定义的命名空间及其主要的作用

  Direct X内容十分丰富,下文介绍的只是其中的一个小的应用,即用Visual C#调用Direct X中的SDK来播放视频文件为例子,程序中只使用了命名空间"Microsoft.DirectX.AudioVideoPlayback"。 Microsoft.DirectX.AudioVideoPlayback命名空间中定义了三个类:"Audio"、"Video"和"TextureRenderEventArgs"。其中前二个类是最常用的,分别用来支持音频和视频。Microsoft.DirectX.AudioVideoPlayback命名空间中定义的常用属性及其具体的作用可参阅表02所示:

属性 描述
Audio 获取视频文件中的音频对象,可用来后续的音频播放
Caption 获取或设置在Form上播放视频的名称
CurrentPosition 获取或设置播放视频的当前位置
DefaultSize 获取播放视频的缺省的视频大小
Fullscreen 获取或设置视频文件是否在全屏模式下播放
IsCursorHidden 获取播放的视频时鼠标的状态:隐藏或显示
Owner 获取或设置视频播放的宿主组件
Paused 获取当前的播放状态是否处于暂停状态
Playing 获取当前的播放状态是否处于播放状态.
SeekingCaps 获取是否可以搜索性能
Size Retrieves and sets the size of the video for playback.
State 获取当前的播放状态
Stopped 获取当前的播放状态是否处于停止状态
StopPosition 获取播放的视频的停止播
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值