令程式發出聲響

要令VB程式發出聲音有很多不同方法,在此向各位介紹兩個最簡單的方法。

以下是令VB播放WAV格式音效相關的指令:

  • My.Computer.Audio.Play("..."):當中的省略號代表WAV格式音效檔案的路徑。
  • My.Computer.Audio.Stop():停止播放中的音效。

示範實例

下圖為一個以VB編製的簡單音效播放器,視窗只有一個按鈕(Button1),按下便會發出聲響。


編寫程式

Private Sub Button1_Click(...) Handles Button1.Click
    '播放路徑指定的WAV音效檔案
    My.Computer.Audio.Play("C:\Windows\Media\chimes.wav")
End Sub

以上方法操作十分簡單。然而,若果程式遷至另一台電腦,踫巧該台電腦的音效檔置於其他位置,程式執行時便無法 按指令中的路徑找到音效檔案,繼而發生錯誤令程式無法執行!

加入資源

為免程式因找不到檔案而發生錯誤,編程時可以利用VB的「資源」功能,把音效檔案匯入成為程式的資源。這樣,電腦便會把音效檔案與程式檔案組合為一。步驟如下:

  • Double-Click「方案總管」內的 "My Project":
  • 選擇「資源」,再按「加入資源」右方的小剪頭,選擇「加入現有檔案」,並透過視窗選擇要加入的音效檔案:
  • 就這樣,音效檔案便成功匯入「資源」中,「方案總管」內仍可見到剛匯入的檔案。

    再次編寫程式

  • 要使用匯入到VB的資源,可使用:My.Resources.<...>
  • <...>代表所匯入資源的名稱。
  • 按右圖,匯入的資源名為 My.Resources.chimes(省略副檔名)
  • 以下指令由於過長,因此分為兩行表示。第一行字令末部的"_"代表「接續至下一行」。
    Private Sub Button1_Click(...) Handles Button1.Click
        '播放指定的WAV音效檔案資源
        My.Computer.Audio.Play(My.Resources.chimes, _
                               AudioPlayMode.WaitToComplete)

    End Sub

    就這樣,音效檔案便與程式檔案整合起來,避免了可能找不到檔案所產生的錯誤。

    以上指令要求編程時使用My.Computer.Audio.Play(...)的第二個參數,該參數的選項及功能如下:

    可使用的選項
    功能
    AudioPlayMode.WaitToComplete 播放至整段音效完結才可繼續執行程式
    AudioPlayMode.Background 把音效作為背景音效播放,不會影響程式的執行
    AudioPlayMode.BackgroundLoop 把音效作為背景音效不停播放,不會影響程式的執行

  • 改善建議

  • 試為程式加入一個「停止播放」按鈕。
  • 配合Timer,令程式達至某一時間發出提示音效或訊息。
  • 製作一個可以播放多個不同音效的播放器。

  • 音效工具

  • 可使用Windows附屬應用程式中的錄音機自行錄製WAV格式音效檔案。
  • 要把不同格式的音效檔案(如:mp3)轉變為WAV格式,可使用Audacity。
  • 下載:Audacity

  • 下載程式碼

  • SoundTest1.zip:電腦有C:\Windows\Media\chimes.wav才能正常運作
  • SoundTest2.zip:音效檔匯入程式碼內的示範
  •