設置輸出音量(Setting the Output Volume)
設置Wave文件輸出設備的音量相當簡單,但是必須利用Windows API進行。waveOutGetVolume和waveOutSetVolume函數分別用來獲取音量和設置音量。
音量以整型(integer)存儲。高位字節(hight word)制定右聲道音量設置,低位字節(low word)制定左聲道音量設置。如果設備沒有獨立設置左、右聲道音量的能力,則低位字節用於設置音量,高位字節被忽略。
0值是無音量,16進制值$FFFF則是最大音量。下列代碼為設置左右聲道音量為50%,當然前提是要在uses列表中引用MMSystem單元。
waveOutSetVolume(0, $80008000);
下面的例子設置音量為最大值:
waveOutSetVolume(0, $FFFFFFFF);
注意0被用作waveOutSetVolume的第一個參數;這多少有點給人假象,以為WAVE設備為0號設備,但情況幾乎總是這樣,因此第一個參數可設置為0。
上面的代碼,做了兩個小的范例,分別以50%和100%的音量來播放,范例截圖如下,請自行查看代碼瀏覽。
設置音量就如上面講解的一樣非常容易。但要注意waveOutSetVolume僅設置WAVE輸出設備的音量,而不是設置主音量。主音量可通過多媒體混合控制器(multimedia mixer control)來控制設置,該設置不在我們的講解范圍中。
以上代碼均在Delphi 7下通過測試,示例代碼下載:TMediaPlayer.rar