方法一:
WAVEOUTCAPS pwoc;
UINT uDeviceID=waveOutGetNumDevs();//Can not use
waveOutGetDevCaps(0,&pwoc,sizeof(WAVEOUTCAPS));
waveOutSetVolume(NULL,0xFFFFFFFF);//the max sound
oxFFFFFFFF每两个字节代表一个声道
方法二:
关闭音箱:
lReturn=mciSendString("set left off",sReturn,32,0);
lReturn=mciSendString("set right off",sReturn,32,0);
lReturn=mciSendString("setaudio left off",sReturn,32,0);
lReturn=mciSendString("setaudio right off",sReturn,32,0);
关闭声道:
lReturn=mciSendString("setaudio source to left",sReturn,32,0);
lReturn=mciSendString("setaudio source to right",sReturn,32,0);
lReturn=mciSendString("setaudio source to average",sReturn,32,0);
lReturn=mciSendString("setaudio source to stereo",sReturn,32,0);
方法三:
waveOutGetVolume(//获取指定并输出设备的音量值
HWAVEOUT hwo,LPDWORD lpdwVolume);
midiOutGetVolume(//获取指定内部MIDI合成器设备音量值
HWAVEOUT hwo,LPDWORD lpdwVolume);
waveOutSetVolume(//设置指定波形输出设备的音量值
HWAVEOUT hwo,LPDWORD lpdwVolume);
midiOutGetVolume(//设置指定内部MIDI合成器设备音量值
HWAVEOUT hwo,LPDWORD lpdwVolume);
用TrackBar实现:
void __fastcall TForm1::FormShow(TObject *Sender)
{
DWORD Volume1,Volume2;
waveOutGetVolume(0,&Volume1);
TrackBar1->Position=Volume1;
midiOutGetVolume(0,&Volume2);
TrackBar2->Position=Volume2;
}
void __fastcall TForm1::TrackBar2Change(TObject *Sender)
{
midiOutSetVolume(0,TrackBar2->Position);
}
void __fastcall TForm1::TrackBar1Change(TObject *Sender)
{
waveOutSetVolume(0,TrackBar1->Position);
}
方法四:
ShellExecute(NULL,NULL,"sndvol32.exe",NULL,NULL,SW_SHOW);