频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

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

来源:天极开发 作者:阿虎 出处:巧巧读书 2006-05-24 进入讨论组
上一页 1 2 3 

  13. 用下列代码替换Form1.cs中的button1组件的Click事件对应的处理代码,下列代码的功能是打开选定的视频文件,并在定义的Panel组件上显示开始第一帧:

private void button1_Click ( object sender, System.EventArgs e )
{
 openFileDialog1.InitialDirectory = Application.StartupPath ;
 if ( openFileDialog1.ShowDialog ( ) == DialogResult.OK )
 {
  // 记录panel组件的大小
  int height = panel1.Height ;
  int width = panel1.Width ;
  // 如果存在打开的Video文件,释放它
  if ( MyVideo != null )
  {
   MyVideo.Dispose ( ) ;
  }
  // 打开一个新的Video文件
  MyVideo = new Video ( openFileDialog1.FileName ) ;
  // 把Video文件分配给创建的Panel组件
  MyVideo.Owner = panel1 ;
  // 以记录的panel组件的大小来重新定义
  panel1.Width = width ;
  panel1.Height = height ;
  // 播放AVI文件的第一帧,主要是为了在panel中显示
  MyVideo.Play ( ) ;
  MyVideo.Pause ( ) ;
 }
 //确定窗体中的各按钮状态
 if ( MyVideo == null )
 {
  button2.Enabled = false ;
  button3.Enabled = false ;
  button4.Enabled = false ;
 }
 else
 {
  button2.Enabled = true ;
  button3.Enabled = true ;
  button4.Enabled = true ;
 }
}

  14. 用下列代码替换Form1.cs中的button2组件的Click事件对应的处理代码,下列代码的功能播放当前打开的视频文件:

private void button2_Click ( object sender, System.EventArgs e )
{
 if ( MyVideo != null )
 {
  MyVideo.Play ( ) ;
 }
}

  15. 用下列代码替换Form1.cs中的button3组件的Click事件对应的处理代码,下列代码的功能暂停播放当前打开的视频文件:

private void button3_Click ( object sender, System.EventArgs e )
{
 if ( MyVideo != null )
 {
  MyVideo.Pause ( ) ;
 }
}

  16. 用下列代码替换Form1.cs中的button4组件的Click事件对应的处理代码,下列代码的功能停止播放当前打开的视频文件:

private void button4_Click ( object sender, System.EventArgs e )
{
 if ( MyVideo != null )
 {
  MyVideo.Stop ( ) ;
 }
}

  17. 在button4的Click事件之后,添加下列代码,下列代码的功能是初始化Form窗体中的button组件:

//初始化窗体中各按钮的状态
private void Form1_Load ( object sender, System.EventArgs e )
{
 if ( MyVideo == null )
 {
  button2.Enabled = false ;
  button3.Enabled = false ;
  button4.Enabled = false ;
 }
 else
 {
  button2.Enabled = true ;
  button3.Enabled = true ;
  button4.Enabled = true ;
 }
}

  18. 至此,在上述步骤都正确完成,并全部保存后,【Visual C#中使用DriectX实现媒体播放】项目的全部工作就完成了。此时单击快捷键【F5】运行程序后,图04是播放视频文件时得到的程序运行界面:

Visual C#使用DirectX实现视频播放(图四)
图04:【Visual C#中使用DriectX实现媒体播放】项目的运行界面

  四.总结:

  Direct X的出现的确解决了程序员的很多底层的工作,把面对各种烦杂硬件的工作交给了Direct X了。虽然Direct X从非托管版本发展到现在的托管版本,争论一直存在,但越来越多的开发商把自己的软件用托管的Direct X或者结合使用托管和非托管Direct X开发,也从另外一个方面证明了托管的Direct X的生命力。本文结合一个示例具体介绍Visual C#调用非托管Direct X的方法实现视频播放,这对于托管Direct X来说只是其中的一个小应用。最后希望此篇文章对那些希望了解、掌握在Visual C#调用Direct X编写游戏程序的朋友有所帮助。通告:http://www.qqread.com/csharp/i487113002.html进入讨论组讨论。
上一页 1 2 3 
收藏此文】【 】【打印】【关闭
较早的文章:C#进阶教程(五)

较新的文章:浅谈几个SQL的日志概念
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章