VB開發中背景音樂的制作

發表于:2007-07-14來源:作者:點擊數: 標簽:
武正倫 背景音樂不僅在軟件中起到“聲”、“文”并茂的效果,而且能使用戶減少在漫長的計算、等待過程中所帶來的困倦和煩躁情緒,我們將通過用Microsoft Visual Basic 開發 為例,來講解背景音樂在軟件中的應用。 使用Microsoft Visual Basic進行多媒體音樂
武正倫

  背景音樂不僅在軟件中起到“聲”、“文”并茂的效果,而且能使用戶減少在漫長的計算、等待過程中所帶來的困倦和煩躁情緒,我們將通過用Microsoft Visual Basic開發為例,來講解背景音樂在軟件中的應用。

  使用Microsoft Visual Basic進行多媒體音樂的播放是一件非常容易的事情。Microsoft Windows系統中支持兩種聲音文件:WAV格式文件和MIDI格式文件,一般使用API(Window  
s應用程序編程接口)函數sndPlaySound播放WAV格式文件,使用mciExecute函數來播放MIDI文件。

  1、播放WAV格式文件

  要播放WAV格式文件,你必須在程序窗口的通用聲明部分或標準模塊中添加如下的聲明:

  Public Const SND_SYNC = &&H0

  Public Const SND_ASYNC = &&H1

  Public Const SND_NODEFAULT = &&H2

  Public Const SND_MEMORY = &&H4

  Public Const SND_ALIAS = &&H10000

  Public Const SND_FILENAME = &&H20000

  Public Const SND_RESOURCE = &&H40004

  Public Const SND_ALIAS_ID = &&H110000

  Public Const SND_ALIAS_START = 0

  Public Const SND_LOOP = &&H8

  Public Const SND_NOSTOP = &&H10

  Public Const SND_VALID = &&H1F

  Public Const SND_NOWAIT = &&H2000

  Public Const SND_VALIDFLAGS = &&H17201F

  Public Const SND_RESERVED = &&HFF000000

  Public Const SND_TYPE_MASK = &&H170007

  Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

  sndPlaySound函數需要兩個參數:第一個參數soundfilename是要播放的WAV文件的名稱;第二個參數是一個表明播放方式的標識常量,其定義的值如前面的聲明所示,通常所使用的標識意義如下:

  SND_SYNC播放WAV格式文件,播放完畢后將控制轉移回應用中。

  SND_ASYNC播放WAV格式文件,將控制立即轉移回應用程序中,而不管對WAV文件的播放是否結束。

  SND_MEMORY用于播放以前已經加載到內存中的WAV格式文件。

  SND_LOOP循環播放WAV格式文件。

  注意:SND_LOOP標識通常需要同SND_ASYNC共同使用,也即在兩個標識之間添加“與”播放符,以免在對WAV格式文件進行播放的時候將系統掛起。

  2、播放MIDI格式文件

  播放MIDI格式文件時,你必須在程序窗口的通用聲明部分中或標準模塊中添加如下的聲明語句:

  Private Declare Function mciExecute Lib "winmm.dll" Alias "mciExecute" (ByVal lpstrCommand As String) As Long

  API函數mciExecute只有一個參數:CommandString,它是一個命令字符串,用于表明對聲音文件播放的命令,例如,要完整播放聲音文件“C:WindowsMediaCanyon.mid”,只需要用以下一些語句即可實現:

  Dim ReturnValue As Long

  ReturnSoundValue = mciExecute("play C:WindowsMediaCanyon.mid")

  如果只播放MIDI格式文件的部分,就可以使用from...to...這種語句格式,例如:需要播放CANYON.MID文件的20毫秒到500毫秒的部分,可以使用如下的語句:

  Dim ReturnValue As Long

  ReturnSoundValue = mciExecute("play C: WINDOWS MEDIACANYON.MID from 20 to 500")

  使用API函數mciExecute也可以用來對WAV格式文件進行播放,方法同播放MIDI基本一樣?,F舉列如下:

  1、在Visual Basic應用窗體中加入以下聲明:

  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_MEMORY = &&H4

  Const SND_ALIAS = &&H10000

  Const SND_FILENAME = &&H20000

  Const SND_RESOURCE = &&H40004

  Const SND_ALIAS_ID = &&H110000

  Const SND_ALIAS_START = 0

  Const SND_LOOP = &&H8

  Const SND_NOSTOP = &&H10

  Const SND_VALID = &&H1F

  Const SND_NOWAIT = &&H2000

  Const SND_VALIDFLAGS = &&H17201F

  Const SND_RESERVED = &&HFF000000

  Const SND_TYPE_MASK = &&H170007

  Private Declare Function mciExecute Lib "winmm.dll" Alias "mciExecute" (ByVal lpstrCommand As String) As Long

  2、在窗中激活事件中加入以下代碼:

  Private Sub Form_Activate()

  Dim ReturnValue As Long

  ReturnValue = sndPlaySound("C:windowsMEDIATADA.WAV",SND_SYNC)End Sub

  通過(F5)鍵來運行該程度即可聽到背景音樂。 

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97