日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Delphi控制音量

 緣木求魚001 2012-08-16
Delphi控制音量
2010-01-02 12:08

已經(jīng)有很多文章介紹過(guò)控制總音量的方法,但控制左右聲道音量的方法卻很少有文章介紹,本人介紹一種用Delphi實(shí)現(xiàn)控制左右聲道音量的妙法,希望能給你的程序添彩。

   一、調(diào)節(jié)全部音量

   1.先在窗體中添加一個(gè)trackbar控件,可通過(guò)改變它的位置來(lái)調(diào)節(jié)音量,在trackbar1的屬性中,我們把Max屬性修改成255,改成這個(gè)值是為了便于進(jìn)行二進(jìn)制的音量調(diào)節(jié)操作。

   2.為了調(diào)用一個(gè)Windows函數(shù),在uses子句里加上Mmsystem。

    3.為trackbar1Onchange事件編寫如下代碼:

   procedure Tform1.TrackBar1change(Sender:Tobject);

   var

tlongint// t的最大值為8位的二進(jìn)制:11111111;

vlongint;//表示音量的大小,這是個(gè)32位的整數(shù),

//16位表示右聲道的音量,低16位表示左聲道的音量

   Begin

       t=trackbar1.Position//得到Trackbar的位置,可用這個(gè)值來(lái)表示音量的大小

       v=(t shl 8) or (t shl 24)//t左移8位、24

       waveoutsetvolume(0,v);//設(shè)置音量

   end;

 

   二、分別控制兩個(gè)聲道的方法

   1.控制左聲道

   procedure Tform1.TrackBar1change(Sender:Tobject);

   var

 tlongint;

vlongint

   begin

       t=trackbar1.Position;

       waveoutgetvolume(0@v);//@表示指向變量v的指針(32位),

//調(diào)用此函數(shù)的用意就是得到右聲道的值,

//做到在調(diào)節(jié)左聲道的時(shí)候,不改變右聲道

       v=v and ffff0000 or (t shl 8);//數(shù)字前面加$表示是十六進(jìn)制數(shù)字

   waveoutsetvolume(0v);

   end;

   2.控制右聲道

   procedure Tform1.TrackBar2change(Sender:Tobject);

var

 tlongint;//它的原理同上

vlongint

begin

  t=trackbar2.Position;

waveoutgetvolume(0,@v);

v=v and 0000ffff or (t shl 24);

waveoutsetvolume(0v);

end;

 

三、設(shè)置滑塊的初始位置

   1.程序開始執(zhí)行時(shí),缺省情況下,Trackbar的位置在0,但我們希望程序開始執(zhí)行時(shí),這兩個(gè)滑塊能自動(dòng)得到當(dāng)前的音量,而處在相應(yīng)的位置。

   procedure TForm1.FormCreate(Sender: TObject);

  var vlongint;

   begin   waveoutgetvolume(0,@v)//得到現(xiàn)在音量

   trackbar1.Position=hi(v);//設(shè)置左滑塊的正確位置

   trackbar2.Position=hi(v shr 16);//設(shè)置右聲道滑塊的正確位置

   end

   注:函數(shù)hi(v)的作用為:返回一個(gè)16位無(wú)符號(hào)整數(shù)的高8位值。如果v32位,則高16位自動(dòng)被忽略了。

   2.只使用高8位時(shí),可使調(diào)節(jié)效果更明顯。

   3.對(duì)波形文件可以用waveoutgetvolume函數(shù),對(duì)cd文件可以用auxgetvolume函數(shù)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多