多媒体播放器
一、 Com组件简介。
在我们学习这节课之前,我们应该先了解组件的概念,因为我们稍后就会使用到com组件。
COM是Microsoft组件对象模型(Component Object Model)的简称。
COM是一个说明如何建立可动态交替更新组件的规范。它提供了客户和组件为保证能够互操作应该遵循的标准。该标准对于组件架构的重要性同其他任何一个具有可交替更新部分的系统是一样的。举个例子,如果没有国家标准(GB),那么各个厂家所生产的零件及产品将不能实现互换性。各个厂家各自为政,若电机上的螺栓坏了,就要买原来厂家生产的螺栓,相当不方便。我们所熟悉的超文本格式语言(HTML),实际上也是一种趋向于标准化的语言。没有标准,任何东西都将不能一起工作。
COM规范就是一套为组件架构设置标准的文档。本书中所开发的所有组件都将遵循这一标准。
COM组件由以Win 32动态连接库(DLL)或可执行文件(EXE)形式发布的可执行代码所组成。遵循COM规范编写出来的组件将能够满足对组件架构的所有要求。
二、 Windows Media Player组件。
Windows Media Player组件是Windows当中自带的一种com组件,是专门用来为我们提供制作播放器软件使用的。
1、使用步骤
使用步骤1:选择“工具箱”并单击鼠标右键,在弹出的快捷菜单中选择“选择项“
使用步骤2:弹出“选择工具箱项”对话框,选择“com组件”选项卡。
使用步骤3:在com组件列表中,选择名为“Windows Media Player组件”,单击确定按钮,添加组件成功。
2、在我们使用这个组件时,还必须要在Main函数前加上[STAThread],这个标记是用来代表我们在使用com组件,而com组件与我们平时使用的组件的线程管理不同,所以一定要标记。
使用方式:AxWMPLib.AxWindowsMediaPlayer Awmp = new AxWMPLib.AxWindowsMediaPlayer();
三、 Windows Media Player组件属性。
类型 |
属性 |
访问方式 |
说明 |
String |
UiMode |
读/写 |
获取或设置播放器样式。(None/Full) |
String |
URL |
读/写 |
获取或设置播放器的播放路径及文件。 |
这个属性是用来设置播放器样式的,当设置为None时你会发现播放器变得什么都没有了,就一个屏幕,但是当设置成Full时就会出现相应的播放、暂停、停止按钮了。
四、 Windows Media Player组件方法。
返回值类型 |
方法名称 |
说明 |
Void |
Ctlcontrols.Stop |
设置播放器停止播放。 |
void |
NewMedia |
设置播放器要播放的文件。 |
void |
Ctlcontrols.pause |
设置播放器暂停。 |
void |
Ctlcontrols.Next |
设置播放器选择下一曲。 |
void |
Ctlcontrols.Previous |
设置播放器选择上一曲。 |
void |
Ctlcontrols.fastForward |
设置播放器选择快进。 |
Void |
Ctlcontrols.fastReverse |
设置播放器选择快退。 |
Void |
Ctlcontrols.Play |
设置播放器继续播放。 |
五、 IWMPMedia 组件。
IWMPMedia组件是专门用来获取当前播放文件的相关信息的。
使用方式:WMPlib.IWMPMedia im = Awmp.NewMedia(“文件路径”);
im.getItemInfo(string str); //这个方法内要一个字符串,不同的字符串获得的文件信息不同。
获取当前媒体信息"Title"=媒体标题,"Author"=主唱,"Copyright"=版权信息,"Description"=媒体内容描述,"Duration"=持续时间(秒)。
例:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace 媒体播放器
{
public partial class Form1 : Form
{
private WMPLib.IWMPMedia m;
public Form1()
{
InitializeComponent();
}
private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
m = this.axWindowsMediaPlayer1.newMedia(openFileDialog1.FileName);
}
}
private void 播放文件ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.axWindowsMediaPlayer1.URL = openFileDialog1.FileName;
this.Text = m.getItemInfo("Author");
}
private void 暂停ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (暂停ToolStripMenuItem.Text == "暂停")
{
this.axWindowsMediaPlayer1.Ctlcontrols.pause();
this.暂停ToolStripMenuItem.Text = "播放";
}
else
{
this.axWindowsMediaPlayer1.Ctlcontrols.play();
this.暂停ToolStripMenuItem.Text = "暂停";
}
}
private void 停止ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.axWindowsMediaPlayer1.Ctlcontrols.stop();
}
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (this.退出ToolStripMenuItem.Text == "立体声")
{
this.axWindowsMediaPlayer1.settings.mute = true;
this.退出ToolStripMenuItem.Text = "静音";
}
else
{
this.axWindowsMediaPlayer1.settings.mute = false;
this.退出ToolStripMenuItem.Text = "立体声";
}
}
}
}