VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - VB利用高级音频函数编写多媒体播放器
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:10891, 日期:2001-11-08
VB利用高级音频函数编写多媒体播放器
作者:刘明
VB利用高级音频函数编写多媒体播放器

现在使用VB编程的朋友越来越多了.但是如何使用VB来编写播放多媒体文件的播放器呢?本篇将详细的介绍如何利用高级音频函数编写媒体播放器!

内容提要:
了解高级音频函数各参数的意思;
提供一些高级音频函数的命令集;
编写一个简单的多媒体播放器程序;
  
高级音频函数有两条:1.mciSendString;2.mciSendCommand.前者称为命令字符串函数,后者称为命令消息函数.命令字符串函数顾名思义就是利用字符串作为命令来控制媒体设备,它最适合高级编程语言如:VB.而命令消息函数则是利用消息的发送来控制媒体设备,它最适合利用常数作命令的编程语言如:VC++.因此我们这里只讲解命令字符串函数的使用方法.

函数原型:
mciSendString(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

参数说明:
lpstrCommand:要发送的命令字符串.字符串结构是:[命令][设备别名][命令参数].
lpstrReturnString:返回信息的缓冲区,为一指定了大小的字符串变量.
uReturnLength:缓冲区的大小,就是字符变量的长度.
hwndCallback:回调方式,一般设为零.(*函数执行成功返回零,否则返回错误代码)

  使用此函数能播放哪些媒体文件呢?不用担心,打开win.ini文件看看便知.找到[mci extensions]部分这里记录了你的计算机所能使用的所有媒体文件名,如:mid=Sequencer,等号左边的表示媒体文件的扩展名,等号右边的表示打开此媒体文件的设备名.

  知道了哪些文件可以播放后就可以播放媒体文件了吗?No!你还得知道如何使用命令字符串来控制设备.下面列出的命令集是各种设备同时都具有的也是关键的命令集:

1.Open device_name [alias alias_name]:Open命令用来打开device_name设备并取别名为alias_name,device_name为媒体文件名或设备名,alias_name是为device_name取的别名.如:Open C:\windows\kl.wav alias WAV.意思是打开:c:\windows\kl.wav这个文件并取别名为WAV,在经后的操作过程中就可用这个别名来控制它所打开的设备了.

2.Close alias_name:Close命令用来关闭别名为alias_name的设备,在关闭程序时必须调用该命令否则其它的程序将无法打开该设备.

3.Play alias_name:Play命令用来播放别名为alias_name的媒体文件.成功的打开设备后就可调用该命令来播放媒体文件了.

4.Stop alias_name:Stop命令用来停止播放媒体文件.

5.Seek alias_name:Seek命令用来设置当前播放的位置.(需事先设定时间格式)

6.Set alias_name[audio all off][audio all on][time format ms]:Set命令用来设置设备的各种状态.如:静音,有声音,时间格式为毫秒等.

7.Status alias_name[length][mode][position]:Status命令用来取得设备的状态.如:该媒体文件的长度,该媒体文件所处状态,该媒体文件的当前位置等.

由于篇幅有限这里就不再说更多的命令集了.有兴趣的朋友可到我的网址详细的查询.

下面将介绍如何利用上面说的函数和命令集为我们工作:

1.新建一工程并在工程中添加一公用对话框(Common Dialog),再添加一模块(Module).
2.在模块中声明命令字符串函数:
Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
3.添加一按钮并在按钮的Click事件中加入以下代码:
dim dwReturn as String * 256
me.CommonDialog1.ShowOpen
if(mciSendString("Open " + Commondialog1.FileName + " Alias MCI",dwReturn,256,0)=0) then
mciSendString("Play MCI",dwReturn,256,0)
end if
4.最后在窗体的UnLoad事件中加入以下代码:
mciSendString("Close MCI")
是不是很简单!才用了七行代码就编成了一个简单的播放器?

有兴趣的朋友可到我的主页查询,也可给我发E-Mail:
我的主页:http://www.tianfu.net/~kennyok(内有详细的说明和丰富的源程序)
我的E-mail:lucykenny@990.net
成都:刘明
地址:成都市新南门青平巷19号