科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Visual C#使用DirectX实现视频播放

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

很多人第一次接触到DirectX大都是通过游戏,至于安装、升级DirectX的原因无非是满足游戏运行的需要。

作者:阿虎 来源:天极开发 2007年11月11日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
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是播放视频文件时得到的程序运行界面:

点击放大此图片
图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编写游戏程序的朋友有所帮助。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章