0%

制作AVI播放器

  • 来源:明日科技
  • 制作AVI播放器


    实例说明

    相信大家都使用过“金山影霸”、“RealOne”等影视播放器,其强大的媒体播放功能深受大家的喜爱。是否想过自己设计一个AVI播放器呢?本实例中笔者设计了一个AVI播放器,实现了对AVI文件的基本播放与重复播放的功能。实例运行效果如图1所示。

    图1 制作AVI播放器

    关键技术

    本实例实现时主要用到了Microsoft Animation Control Version 6.0组件,该组件可以一帧一帧的播放AVI文件,在使用该组件进行开发程序前,必须将Microsoft Animation Control Version 6.0组件添加到工具箱中,步骤如下:
    (1)选择工具箱,单击鼠标右键,在弹出的快捷菜单中选择“选择项”。
    (2)弹出“选择工具箱项”对话框,选择“COM组件”选项卡。
    (3)在COM组件列表中,选择名称为“Microsoft Animation Control Version 6.0”的项,单击“确定”按钮,该组件将会自动添加到“工具箱”中。 Microsoft Animation Control Version 6.0组件提供了多个属性、方法用于控制多媒体文件的播放,其常用的属性和方法如表1所示。
    表1 Microsoft Animation Control Version 6.0组件的常用属性和方法

    属性、方法 说明
    AutoPlay属性 确定程序运行时,媒体播放器是否自动播放
    Open方法 打开一个媒体文件
    Stop方法 停止媒体文件的播放
    Play方法 播放媒体文件

    注意
    注意:Play方法可以重载,本实例中使用了它的第一种重载形式,该方法具有3个参数,第一个参数是重复播放次数,第二个参数是起始帧的位置,第3个参数是结束帧的位置。

    设计过程

    (1)打开Visual Studio 2008开发环境,新建一个Windows窗体应用程序,命名为AviPlay。
    (2)更改默认窗体Form1的Name属性为Frm_Main,在该窗体中添加一个AxAnimation组件,用来播放AVI文件;添加两个Button控件,分别用来执行重复播放指定帧操作和播放AVI文件操作;添加两个TextBox控件,分别用来设置要重复播放的起始帧和结束帧。
    (3)程序主要代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    private void Frm_Main_Load(object sender, EventArgs e)
    {
    this.axAnimation1.Open(Application.StartupPath + "//clock.avi"); //加载AVI文件
    }
    private void button1_Click(object sender, EventArgs e)
    {
    try
    {
    this.axAnimation1.Stop(); //停止播放
    object start = this.textBox1.Text; //保存起始帧中的数据
    object end = this.textBox2.Text; //保存结束帧中的数据
    object time = 20; //初始化变量time
    this.axAnimation1.Play(time, start, end); //播放指定的帧数
    }
    catch
    {
    MessageBox.Show("请输入正确帧数!");
    }
    }
    private void button2_Click(object sender, EventArgs e)
    {
    this.axAnimation1.Play(); //播放多媒体文件
    }

    秘笈心法

    心法领悟007:object类型的使用。
    object类是Object类的别名,它支持.NET Framework类层次结构中的所有类,并为派生类提供低级别服务,它是.NET Framework中所有类的最终基类。一般在程序中定义变量的类型时,如果不确定变量的类型,则可以使用object类型来定义。

    觉得文章有用?请我喝杯咖啡~