作者:刘明
现在使用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号 |