在VB應用程序中恰當的使用聲音
發表于:2007-07-14來源:作者:點擊數:
標簽:
眾所周知,Visual Basic是功能非常強大的多媒體 開發 工具,它有豐富的函數和方法處理各種各樣的多媒體信息,能夠很靈活的操作圖形、聲音、動畫、影象等多媒體素材。但有時我們使用Visual Basic開發非多媒體應用程序,并不需要在應用程序中大量的使用聲音,
眾所周知,Visual Basic是功能非常強大的多媒體
開發工具,它有豐富的函數和方法處理各種各樣的多媒體信息,能夠很靈活的操作圖形、聲音、動畫、影象等多媒體素材。但有時我們使用Visual Basic開發非多媒體應用程序,并不需要在應用程序中大量的使用聲音,而只是需要在特定的場合出現。如
Windows的警告聲。這就要求
程序員在恰當的環境中恰當的使用聲音文件,既不失去
VB在多媒體方面的特長,又能夠為應用程序增加吸引人的效果。VB可以用于輸出聲音的方法很多,歸結一下,大概有以下四種:
1.利用Beep語句
這是VB系統提供的一條利用計算機揚聲器發聲的語句,它只能夠發出簡單的蜂鳴聲,但在應用程序中大量用于輸出警告的信息。如下例允許用戶在文本框中輸入數字,當用戶輸入錯誤時,系統會報警提示。
Sub Text1_KeyPress (keyascii As Integer)
If keyascii < 48 Or keyascii > 57 Then
Beep:Beep: Beep
keyascii = 0
End If
End Sub
2.其實計算機的蜂鳴器也可以發出不同頻率、音高的聲音,從而奏出美妙的音樂。方法是調用Windows的一些有關發聲的API函數。
Windows系統包含十六個聲音函數,它們都存放在Windows的SOUND.DRV這個驅動程序所包含的動態連接庫中。其中最常用的四個函數是OpenSound,CloseSound,SetVoiceNote,StartSound。其聲明格式如下:
Declare Function OpenSound Lib "Sound" () As Integer
Declare Sub CloseSound Lib "Sound" ()
Declare Function SetVoiceNote Lib "Sound" (ByVal nVoice As
Integer, ByVal nValue As Integer, ByVal nLength As Integer, ByVal nCdots
As Integer) As Integer
Declare Function StartSound Lib "Sound" () As Integer
在Visual Basic的通用過程中聲明上述函數后,就可以象使用Visual Basic自己的函數一樣使用Windows的API函數。下面給出一個例子,只需要在窗體中放置7個按鈕組成的控件數組,調用上述函數就可以簡單的實現準確的音階:
Sub Command1_Click (index As Integer)
a% = OpenSound()
Select Case index
Case 0: f = 37
Case 1: f = 39
Case 2: f = 41
Case 3: f = 42
Case 4: f = 44
Case 5: f = 46
Case 6: f = 48
End Select
m1% = SetVoiceNote(1, f, 4, 0)
m2% = StartSound()
End Sub
3.Visual Basic是第一個支持對象連接與嵌入(OLE)的開發工具,利用OLE可以簡單的在應用程序中插入聲音文件。這也是使用Visual Basic開發多媒體軟件常用的方法。使用過VB的讀者都知道,VB的ToolBox中就有OLE2.0控件。當我們雙擊OLE2.0控件時,會彈出“Insert Object”窗口,在窗口中選擇對象類型Object Type為聲音文件,選擇“Create from File”,指定硬盤上聲音文件的位置,同時確認Link方式。這些步驟其實是在設置OLE2.0的屬性。通過按F4打開Properties屬性窗口,設置其中的Class、SourceDoc、SourceItem等屬性也可完成這一工作。按F5運行程序,雙擊OLE對象時就會發聲。與播放各種聲音文件相關的屬性為Action,通過設置Action屬性可以打開、驅動、刪除相應的聲音對象。如下例在窗體裝入時調用聲音文件:
Sub Form_Load ()
ole1.Class = "soundrec"
ole1.SourceDoc = "c:\
windows\ding.wav"
ole1.Action = 1
ole1.Action = 7
End Sub
4.利用Visual Basic的多媒體控件MCI.VBX。
使用MCI.VBX是Visual Basic開發多媒體軟件的主要方法。利用MCI.VBX在應用程序中加入聲音文件是輕而易舉的事。有大量的專著介紹MCI.VBX的使用方法,這里就不在贅述。
總的說來,以上四種方法的復雜程度依次遞增,對系統的要求和消耗的系統資源也越來越大。因而,作為一個VB程序員,在應用程序中,應該能夠熟練而準確的使用上述四種方法并在恰當的場合選擇某一種方法,就可以為自己的程序增添效果同時并不使軟件顯得華而不實。
原文轉自:http://www.anti-gravitydesign.com