您目前已離線,請等候您的網際網路重新連線

如何播放在 Visual Basic 中的一種聲音 (.WAV) 音效檔

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:86281
本文已封存。本文係以「現狀」提供且不會再更新。

下列區段會套用到視覺基本版本 4.0 與 5.0 版

結論
您可以播放一種聲音 (.wav) 音效檔從 Microsoft Visual Basic 的 Windows 藉由從 Mmsystem.dll 檔呼叫 sndPlaySound API 函式。若要能夠呼叫 sndPlaySound API 函式,您必須使用 Microsoft Windows,版本 3.1 或 [Microsoft 多媒體擴充程式的 Windows,3.0 版。下列資訊討論 sndPlaySound 的參數,並包括如何從 Windows 的 Visual Basic 中使用這個函式的範例。
其他相關資訊
若要用以 sndPlaySound API 從 Windows 的 Visual Basic 應用程式中,您必須宣告 sndPlaySound 函式或程式碼] 視窗的 [宣告] 區段中 [全域] 模組中。若要宣告函式,輸入這個 Declare 陳述式:
   Declare Function sndPlaySound Lib "WINMM.DLL" Alias "sndPlaySoundA" _      (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long				

以下是解釋並遵循連結內容閱讀相關說明參數:
  • lpszSoundName 指定要播放音效的名稱。函式首先搜尋 Win.ini 檔案具有指定名稱的項目在 [音效] 區段,並再播放相關聯的一種聲音音效檔。如果這個名稱的項目 (不假設指定的名稱是一種聲音音效檔名稱。如果這個參數為 null,已停止任何目前正在播放音效。使用 0 & 提供 null 值。
  • uFlags 指定用來播放聲音使用一或多個下列旗標的選項:
    • SND_SYNC 指定同步播放音樂聲音結束之前將不會傳回該函數。
    • SND_ASYNC 指定就會以非同步方式播放音樂,且此函式傳回之後立即開始播放聲音。
    • SND_NODEFAULT 指定是否找不到聲音,函式傳回以無訊息模式不播放聲音的預設值。
    • SND_LOOP 指定聲音會繼續播放持續直到 sndPlaySound lpszSoundName $ 參數設定為 [空值的呼叫一次。您也必須指定 SND_ASYNC 旗標,以循環播放聲音。
    • SND_NOSTOP 指定是否目前播放音效的函式會立即傳回 False 沒有播放所要求的音效。
sndPlaySound 函數便傳回 True (-1) 如果就會播放音樂,否則傳回 False (0)。

程式碼範例

下列程式碼範例會說明如何使用 sndPlaySound API 函式來播放一種聲音 (.wav) 音效檔。將程式碼加入至全域模組或您表單的一般宣告區段:
   Private  Declare Function sndPlaySound Lib "WINMM.DLL" Alias _      "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As _      Long) As Long   Const SND_SYNC = &H0   Const SND_ASYNC = &H1   Const SND_NODEFAULT = &H2   Const SND_LOOP = &H8   Const SND_NOSTOP = &H10				

將下列程式碼加入至適當的函式] 或 [Sub 程序,在您的應用程式中:
   SoundName$ = "c:\windows\tada.wav"   wFlags% = SND_ASYNC Or SND_NODEFAULT   x% = sndPlaySound(SoundName$,wFlags%)				

注意: 如果指定大型的一種聲音 (.wav) 音效檔案,並且這個呼叫會失敗,若要播放整個檔案您需要調整上適當的音效驅動程式設定。

下列區段會套用到視覺基本 3.0 只

若要用以 sndPlaySound API 從 Windows 的 Visual Basic 應用程式中,您必須宣告 sndPlaySound 函式或程式碼] 視窗的 [宣告] 區段中 [全域] 模組中。若要宣告函式,輸入下列 Declare 陳述式,如,單一一行:
   Declare Function sndPlaySound Lib "MMSYSTEM.DLL" (ByVal lpszSoundName As      Any, ByVal wFlags%) As Integer				

以下是解釋並遵循連結內容閱讀相關說明參數:
  • lpszSoundName 指定要播放音效的名稱。函式首先搜尋 Win.ini 檔案具有指定名稱的項目在 [音效] 區段,並再播放相關聯的一種聲音音效檔。如果這個名稱的項目 (不假設指定的名稱是一種聲音音效檔名稱。如果這個參數為 null,已停止任何目前正在播放音效。使用 0 & 提供 null 值。
  • uFlags 指定用來播放聲音使用一或多個下列旗標的選項:
    • SND_SYNC 指定同步播放音樂聲音結束之前將不會傳回該函數。
    • SND_ASYNC 指定就會以非同步方式播放音樂,且此函式傳回之後立即開始播放聲音。
    • SND_NODEFAULT 指定是否找不到聲音,函式傳回以無訊息模式不播放聲音的預設值。
    • SND_LOOP 指定聲音會繼續播放持續直到 sndPlaySound lpszSoundName $ 參數設定為 [空值的呼叫一次。您也必須指定 SND_ASYNC 旗標,以循環播放聲音。
    • SND_NOSTOP 指定是否目前播放音效的函式會立即傳回 False 沒有播放所要求的音效。
sndPlaySound 函數便傳回 True (-1) 如果就會播放音樂,否則傳回 False (0)。

程式碼範例

下列程式碼範例會說明如何使用 sndPlaySound API 函式來播放一種聲音 (.wav) 音效檔。將下列程式碼新增至通用的模組或您表單的一般宣告區段:
   'VB3Line: Enter the following lines as one line   Declare Function sndPlaySound Lib "MMSYSTEM.DLL" (ByVal lpszSoundName$,      ByVal wFlags%) As Integer   Global Const SND_SYNC      = &H0000   Global Const SND_ASYNC     = &H0001   Global Const SND_NODEFAULT = &H0002   Global Const SND_LOOP      = &H0008   Global Const SND_NOSTOP    = &H0010				

將下列程式碼加入至適當的函式] 或 [Sub 程序,在您的應用程式中:
   SoundName$ = "c:\windows\tada.wav"   wFlags% = SND_ASYNC Or SND_NODEFAULT   x% = sndPlaySound(SoundName$,wFlags%)				

注意: 如果指定大型的一種聲音 (.wav) 音效檔案,並且這個呼叫會失敗,若要播放整個檔案您需要調整上適當的音效驅動程式設定。
参考
「 Microsoft 多媒體開發套件: 程式設計人員參考手冊 》"1.0 版。 如需詳細資訊調整音效驅動程式] 設定下列的文字 「 Microsoft 知識庫 」 中的查詢:
喇叭、 聲音和驅動程式和設定和.WAV 和檔案

警告:本文為自動翻譯

內容

文章識別碼:86281 - 最後檢閱時間:12/04/2015 09:15:49 - 修訂: 3.1

Microsoft Visual Basic 5.0 Learning Edition, Microsoft Visual Basic 5.0 Professional Edition, Microsoft Visual Basic 2.0 Professional Edition, Microsoft Visual Basic 3.0 Professional Edition, Microsoft Visual Basic 5.0 Enterprise Edition, Microsoft Visual Basic 4.0 Standard Edition, Microsoft Visual Basic 4.0 Professional Edition, Microsoft Visual Basic 4.0 32-Bit Enterprise Edition, Microsoft Visual Basic 2.0 Standard Edition, Microsoft Visual Basic 3.0 Professional Edition, Microsoft Visual Basic Enterprise Edition for Windows 6.0, Microsoft Visual Basic 6.0 Professional Edition

  • kbnosurvey kbarchive kbmt kb32bitonly kbcode kbhowto KB86281 KbMtzh
意見反應