明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

VB使用高級(jí)音頻函數(shù)編寫(xiě)多媒體播放器

[摘要]作者:劉明 現(xiàn)在使用VB編程的朋友越來(lái)越多了.但是如何使用VB來(lái)編寫(xiě)播放多媒體文件的播放器呢?本篇將詳細(xì)的介紹如何利用高級(jí)音頻函數(shù)編寫(xiě)媒體播放器!內(nèi)容提要: 了解高級(jí)音頻函數(shù)各參數(shù)的意思; 提供一些...
作者:劉明

現(xiàn)在使用VB編程的朋友越來(lái)越多了.但是如何使用VB來(lái)編寫(xiě)播放多媒體文件的播放器呢?本篇將詳細(xì)的介紹如何利用高級(jí)音頻函數(shù)編寫(xiě)媒體播放器!

內(nèi)容提要:
了解高級(jí)音頻函數(shù)各參數(shù)的意思;
提供一些高級(jí)音頻函數(shù)的命令集;
編寫(xiě)一個(gè)簡(jiǎn)單的多媒體播放器程序;
  
高級(jí)音頻函數(shù)有兩條:1.mciSendString;2.mciSendCommand.前者稱為命令字符串函數(shù),后者稱為命令消息函數(shù).命令字符串函數(shù)顧名思義就是利用字符串作為命令來(lái)控制媒體設(shè)備,它最適合高級(jí)編程語(yǔ)言如:VB.而命令消息函數(shù)則是利用消息的發(fā)送來(lái)控制媒體設(shè)備,它最適合利用常數(shù)作命令的編程語(yǔ)言如:VC++.因此我們這里只講解命令字符串函數(shù)的使用方法.

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

參數(shù)說(shuō)明:
lpstrCommand:要發(fā)送的命令字符串.字符串結(jié)構(gòu)是:[命令][設(shè)備別名][命令參數(shù)].
lpstrReturnString:返回信息的緩沖區(qū),為一指定了大小的字符串變量.
uReturnLength:緩沖區(qū)的大小,就是字符變量的長(zhǎng)度.
hwndCallback:回調(diào)方式,一般設(shè)為零.(*函數(shù)執(zhí)行成功返回零,否則返回錯(cuò)誤代碼)

  使用此函數(shù)能播放哪些媒體文件呢?不用擔(dān)心,打開(kāi)win.ini文件看看便知.找到[mci extensions]部分這里記錄了你的計(jì)算機(jī)所能使用的所有媒體文件名,如:mid=Sequencer,等號(hào)左邊的表示媒體文件的擴(kuò)展名,等號(hào)右邊的表示打開(kāi)此媒體文件的設(shè)備名.

  知道了哪些文件可以播放后就可以播放媒體文件了嗎?No!你還得知道如何使用命令字符串來(lái)控制設(shè)備.下面列出的命令集是各種設(shè)備同時(shí)都具有的也是關(guān)鍵的命令集:

1.Open device_name [alias alias_name]:Open命令用來(lái)打開(kāi)device_name設(shè)備并取別名為alias_name,device_name為媒體文件名或設(shè)備名,alias_name是為device_name取的別名.如:Open C:\windows\kl.wav alias WAV.意思是打開(kāi):c:\windows\kl.wav這個(gè)文件并取別名為WAV,在經(jīng)后的操作過(guò)程中就可用這個(gè)別名來(lái)控制它所打開(kāi)的設(shè)備了.

2.Close alias_name:Close命令用來(lái)關(guān)閉別名為alias_name的設(shè)備,在關(guān)閉程序時(shí)必須調(diào)用該命令否則其它的程序?qū)o(wú)法打開(kāi)該設(shè)備.

3.Play alias_name:Play命令用來(lái)播放別名為alias_name的媒體文件.成功的打開(kāi)設(shè)備后就可調(diào)用該命令來(lái)播放媒體文件了.

4.Stop alias_name:Stop命令用來(lái)停止播放媒體文件.

5.Seek alias_name:Seek命令用來(lái)設(shè)置當(dāng)前播放的位置.(需事先設(shè)定時(shí)間格式)

6.Set alias_name[audio all off][audio all on][time format ms]:Set命令用來(lái)設(shè)置設(shè)備的各種狀態(tài).如:靜音,有聲音,時(shí)間格式為毫秒等.

7.Status alias_name[length][mode][position]:Status命令用來(lái)取得設(shè)備的狀態(tài).如:該媒體文件的長(zhǎng)度,該媒體文件所處狀態(tài),該媒體文件的當(dāng)前位置等.

由于篇幅有限這里就不再說(shuō)更多的命令集了.有興趣的朋友可到我的網(wǎng)址詳細(xì)的查詢.

下面將介紹如何利用上面說(shuō)的函數(shù)和命令集為我們工作:

1.新建一工程并在工程中添加一公用對(duì)話框(Common Dialog),再添加一模塊(Module).
2.在模塊中聲明命令字符串函數(shù):
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")
是不是很簡(jiǎn)單!才用了七行代碼就編成了一個(gè)簡(jiǎn)單的播放器?

有興趣的朋友可到我的主頁(yè)查詢,也可給我發(fā)E-Mail:
我的主頁(yè):http://www.tianfu.net/~kennyok(內(nèi)有詳細(xì)的說(shuō)明和豐富的源程序)
我的E-mail:lucykenny@990.net
成都:劉明
地址:成都市新南門(mén)青平巷19號(hào)