Delphi多媒体设计之TMediaPlayer组件(三)

设置输出音量(Setting the Output Volume)

设置Wave文件输出设备的音量相当简单,但是必须利用Windows API进行。waveOutGetVolume和waveOutSetVolume函数分别用来获取音量和设置音量。

音量以整型(integer)存储。高位字节(hight word)制定右声道音量设置,低位字节(low word)制定左声道音量设置。如果设备没有独立设置左、右声道音量的能力,则低位字节用于设置音量,高位字节被忽略。

0值是无音量,16进制值$FFFF则是最大音量。下列代码为设置左右声道音量为50%,当然前提是要在uses列表中引用MMSystem单元。

waveOutSetVolume(0, $80008000);

下面的例子设置音量为最大值:

1
waveOutSetVolume(0, $FFFFFFFF);

注意0被用作waveOutSetVolume的第一个参数;这多少有点给人假象,以为WAVE设备为0号设备,但情况几乎总是这样,因此第一个参数可设置为0。

上面的代码,做了两个小的范例,分别以50%和100%的音量来播放,范例截图如下,请自行查看代码浏览。

image


设置音量就如上面讲解的一样非常容易。但要注意waveOutSetVolume仅设置WAVE输出设备的音量,而不是设置主音量。主音量可通过多媒体混合控制器(multimedia mixer control)来控制设置,该设置不在我们的讲解范围中。

以上代码均在Delphi 7下通过测试,示例代码下载:TMediaPlayer.rar

转:http://www.cnblogs.com/pchmonster/archive/2012/07/16/2593696.html

原文地址:https://www.cnblogs.com/shuaixf/p/2821614.html