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是播放视频文件时得到的程序运行界面:
四.总结:
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进入讨论组讨论。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 探析C#文件方式读写结构体 (13次浏览)
- C#变得越来越臃肿是不可避免的? (7次浏览)
- C#与EXCEL的数据交互(一) (5次浏览)
- C# 3.0新特性之扩展方法 (1次浏览)
- 利用 C# 实现任务栏通知窗口 (0次浏览)
- 深入C#学习系列之不可小瞧的using关键字 (0次浏览)
- 如何用.NET技术在线生成网站LOGO (0次浏览)
- C#实现遗传算法 模拟花朵的进化 (0次浏览)
- c#里的运算符重载 (0次浏览)
- QTP调用自己开发的.net类库 (0次浏览)




