怎样控制音箱的左右两个声道的音量?(50分)

  • 主题发起人 主题发起人 SeekMyself
  • 开始时间 开始时间
S

SeekMyself

Unregistered / Unconfirmed
GUEST, unregistred user!
初用语音控制,想问个简单问题:

怎样控制音箱的左右两个的音量?

我看了别人作的,拿过来用,结果只能控制一个声道的。
 
有专门的混音控制组件可以用来控制系统左右声道的。
 
看看这段代码:
代码:
procedure SetVolume(left,right:integer);
var leftv,rightv:integer;
begin

   leftv:=left;
   rightv:=right;
   mmsystem.waveOutSetVolume(0,leftv+rightv*65536);
end;



procedure GetLeftVolume;
var allvolume,leftv,rightv:integer;
begin

  waveoutgetvolume(0,@allvolume);
  leftv:=allvolume and $0ffff;
  rightv:=(allvolume and $0ffff0000) div $10000;
  FTempLeft:=leftv;
  FTempRight:=rightv;
end;


procedure GetRightVolume;
var allvolume,leftv,rightv:integer;
begin

  waveoutgetvolume(0,@allvolume);
  leftv:=allvolume and $0ffff;
  rightv:=(allvolume and $0ffff0000) div $10000;
  FTempLeft:=leftv;
  FTempRight:=rightv;
end;

MMRESULT waveOutSetVolume(
HWAVEOUT hwo,
DWORD dwVolume
);

前一个参数是设备,后一个参数是一个32位数值,前后16位各控制左右声道。
大概是这样的
 
jiangsir_xjtu,先多谢了,先测试一下。

我用mediaplay编程,需要一个按钮控制音量的升,一个按钮控制音量的降,但同时是操作
左右两个声道的。

还有“前一个参数是设备”,则应该传什么进去??
 
后退
顶部