?? 80.txt
字號:
顯示多媒體信息
隨著多媒體技術的迅速發(fā)展,管理信息系統中不可避免地出現了表格、圖形、圖像、聲音、動畫等非結構化數據。非結構化數據和結構化數據(數值和字符)的存儲格式和存儲模式不同,需要多媒體數據庫來統一管理。
本文介紹了利用Visual Basic 6.0來實現顯示或播放多媒體數據,所運用的進程調用等技術對于Windows環(huán)境下的其他編程應用也有重要的參考價值。
利用VB實現多媒體數據的顯示或播放,主要有以下四種方法:
1、利用進程調用方法
調用其他應用程序來實現對多媒體數據的顯示或播放。利用現有的工具軟件完成多媒體數據的操作,不需要自己開發(fā)。例如可以編程調用WinWord 來顯示一篇文本文件,而要顯示一幅圖形,可以調用Windows 中的畫筆(PBrush)來實現,程序如下:
Private Sub Command1-Click()
′本程序調用畫筆來顯示一幅圖形
Dim strTemp As String
Dim strFileName As String
Dim intTemp As Integer
strFileName =″c:\windows\picture1.bmp″
′待顯示文件名
strTemp = ″c:\windows\pbrush.exe″
′畫筆文件名
strTemp = strTemp & ″ ″ & strFileName
intTemp = Shell(strTemp, 3)′進程調用函數
End Sub
2、利用OLE方法
OLE是兩個應用程序間交換信息的一種方法。對于OLE,用于交換信息的兩個應用程序分別稱為服務者和客戶。服務者是數據的提供者,客戶是數據的接受者,在VB中,OLE客戶控件作為數據的接受者。通過OLE方法顯示圖形的示例程序如下:
Private Sub Command2-Click()
′本程序用來通過OLE調用一幅圖形
OLE1.Class = ″MSDRAW″
′確定嵌入的OLE對象的類名
OLE1.SourceDoc=″c:\windows\picture2.bmp″
′待顯示的文件名
OLE1.Action = 0 ′OLE-CREATE-EMBED
OLE1.Verb = -3
′當OLE對象被激活時指定一種操作
OLE1.Action = 7 ′OLE-ACTIVATE
OLE1.Enabled = False
′確定控件是否響應用戶產生的事件
End Sub
Class屬性用來確定服務者應用程序名及它所提供的數據類型;Verb用來確定對象被激活時的操作,值為-3表示對象被激活時隱藏生成該對象的應用程序;Enabled的值為True,允許對象響應事件,為False 阻止對象響應事件。
3、利用VB提供的MCI控件
控件是VB提供的標準化的對象,VB為它提供了標準的事件處理函數或過程,用戶可在此基礎上編寫實際的事件處理程序來響應用戶的操作。VB提供的多媒體控件(MCI16.OCX),把很多API的函數轉化為簡單的屬性或事件,簡化了編程。例如要播放一段錄音,用VB實現如下:
Private Sub Command4-Click()
′本程序利用MCI16.OCX 控件來播放聲音
MMControl1.DeviceType = ″ WaveAudio″
′設備類型
MMControl1.Wait = True
MMControl1.Shareable = False
MMControl1.FileName = ″ c:\access\songs\note.wav″
MMControl1.Command = ″ Open″
MMControl1.UpdateInterval = conInterval
′conInterval 為不等于零的常量
End Sub
MMControl為控件名稱,DeviceType為設備類型。Windows 為多種多媒體設備指定了設備類型,如Animation(動畫播放設備)、DAT(數碼錄音機)、Sequencer(MIDI音序器)、VCR(程控錄像機)等,只需修改DeviceType屬性,就可以實現對多種設備的驅動。
4、通過對相應設備直接編程
通過對相應外設直接編程控制可以實現更高級的多媒體顯示或播放操作,許多設備都提供了標準的函數或過程,另外Windows還提供了一百多個有關多媒體操作的函數,VB可以直接調用大多數函數或過程來實現多媒體的操作。例如MciSendString()函數,用來向MCI接口傳送MCI指令字符串;又如MciGetErrorString()函數,用來返回MCI錯誤代碼的含義。
用VB調用API函數必須先在全程模塊中作函數聲明,例如MciSendString()函數的聲明為:Declare Function MciSendString Lib ″ MMSYSTEM.DLL″(ByVal MciCommand as string)as integer。我們通過VB調用API函數實現了聲音的播放,限于篇幅文中程序從略。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -