當前位置:編程學習大全網 - 源碼下載 - vc++ 多媒體 怎樣添加控制音量

vc++ 多媒體 怎樣添加控制音量

我這裏有調節系統音量的相關代碼,希望對妳有用。

請看這裏(我以前做的壹個音量調節軟件,附源代碼)

/qiujiejia/blog/item/407335c4b1a1acc239db49c7.html

下面是部分參考代碼:

bool GetVolumeControl(HMIXER hmixer ,long componentType,long ctrlType,MIXERCONTROL* mxc)

{

MIXERLINECONTROLS mxlc;

MIXERLINE mxl;

mxl.cbStruct = sizeof(mxl);

mxl.dwComponentType = componentType;

if(!mixerGetLineInfo((HMIXEROBJ)hmixer, &mxl, MIXER_GETLINEINFOF_COMPONENTTYPE))

{

mxlc.cbStruct = sizeof(mxlc);

mxlc.dwLineID = mxl.dwLineID;

mxlc.dwControlType = ctrlType;

mxlc.cControls = 1;

mxlc.cbmxctrl = sizeof(MIXERCONTROL);

mxlc.pamxctrl = mxc;

if(mixerGetLineControls((HMIXEROBJ)hmixer,&mxlc,MIXER_GETLINECONTROLSF_ONEBYTYPE))

return 0;

else

return 1;

}

return 0;

}

unsigned GetVolumeValue(HMIXER hmixer ,MIXERCONTROL *mxc)

{

MIXERCONTROLDETAILS mxcd;

MIXERCONTROLDETAILS_UNSIGNED vol; vol.dwValue=0;

mxcd.hwndOwner = 0;

mxcd.cbStruct = sizeof(mxcd);

mxcd.dwControlID = mxc->dwControlID;

mxcd.cbDetails = sizeof(vol);

mxcd.paDetails = &vol;

mxcd.cChannels = 1;

if(mixerGetControlDetails((HMIXEROBJ)hmixer, &mxcd, MIXER_OBJECTF_HMIXER|MIXER_GETCONTROLDETAILSF_VALUE))

return -1;

return vol.dwValue;

}

bool SetVolumeValue(HMIXER hmixer ,MIXERCONTROL *mxc, long volume)

{

MIXERCONTROLDETAILS mxcd;

MIXERCONTROLDETAILS_UNSIGNED vol;vol.dwValue = volume;

mxcd.hwndOwner = 0;

mxcd.dwControlID = mxc->dwControlID;

mxcd.cbStruct = sizeof(mxcd);

mxcd.cbDetails = sizeof(vol);

mxcd.paDetails = &vol;

mxcd.cChannels = 1;

if(mixerSetControlDetails((HMIXEROBJ)hmixer, &mxcd, MIXER_OBJECTF_HMIXER|MIXER_SETCONTROLDETAILSF_VALUE))

return 0;

return 1;

}

//設置音量值

bool WINAPI SetVolume(LONG vol)

{

bool Result=false; //用於判斷函數是否執行成功

MIXERCONTROL volCtrl;

HMIXER hmixer;

if(mixerOpen(&hmixer, 0, 0, 0, 0)) return 0;

if(GetVolumeControl(hmixer,MIXERLINE_COMPONENTTYPE_DST_SPEAKERS,MIXERCONTROL_CONTROLTYPE_VOLUME,&volCtrl))

{

int ChangeValue=volCtrl.Bounds.lMaximum/INTERVAL;

int TotalValue=ChangeValue*vol;

if(SetVolumeValue(hmixer,&volCtrl,TotalValue))

Result=true;

}

mixerClose(hmixer);

return Result;

}

//返回音量值

unsigned WINAPI GetVolume()

{

unsigned rt=0;

MIXERCONTROL volCtrl;

HMIXER hmixer;

if(mixerOpen(&hmixer, 0, 0, 0, 0)) return 0;

if(!GetVolumeControl(hmixer,MIXERLINE_COMPONENTTYPE_DST_SPEAKERS,MIXERCONTROL_CONTROLTYPE_VOLUME,&volCtrl))

return 0;

int ChangeValue=volCtrl.Bounds.lMaximum/INTERVAL; //每壹次調用函數改變的音量值

rt=GetVolumeValue(hmixer,&volCtrl)/ChangeValue; //GetVolumeValue得到的是具體值

mixerClose(hmixer);

return rt;

}

  • 上一篇:用《詩經》裏的愛情佳句寫封深情款款的情書
  • 下一篇:有壹部外國電影,講壹個男人出差時,在火車上進入另壹個時空,認識了壹位女的,然後往返幾次,最終獲得了愛情
  • copyright 2024編程學習大全網