要在程序里面设置音量的播放音量,并且让其不影响系统或者别的程序的音量,这个是否有相关的api接口?有尝试如下做法:
1、用mixer这套,是直接修改了系统的混音器来改变音量,这个貌似不能满足要求。2、用mciSendCommand这套的
mciSendCommand(m_hDev, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE | MCI_DGV_SETAUDIO_ITEM, (DWORD)(LPVOID)&mciSetAudioPara);返回错误码247即MCIERR_UNSUPPORTED_FUNCTION。
哪位高手帮忙解决下。

解决方案 »

  1.   

    恩,是的,是使用mci放音的,然后看到有这么个参数 MCI_SETAUDIO,以为没问题了,没想到不起作用
      

  2.   


    我有使用过waveOutSetVolume这个api,跟auxsetvolume应该是一样的。
    我是这么使用的waveOutSetVolume(0,100);没有什么效果
      

  3.   


    呵呵,估计就是用直接调用混音器这套api了
      

  4.   

    你先试试waveOutSetVolume(0,0);如果还没效果,说明你的hwo设置不对。
    waveOutSetVolume返回值检查了吗
      

  5.   

    mci对audio好像不能设置音量,video可以...
      

  6.   


    有检查了这个返回值是0;没有错误。
    对了,我播放音效是用mci这套。
      

  7.   


    好像看其msdn的描述,好像是有这么一说。
      

  8.   

    独立控制音量用 DirectSound
      

  9.   


    我这边用的是mci做播放处理,可以用directsound控制音量,是否有相关的代码?
      

  10.   

    mixerSetControlDetails( 
    (HMIXEROBJ)m_HMixer, 
    &mxcd, 
    MIXER_OBJECTF_HMIXER|MIXER_SETCONTROLDETAILSF_VALUE) != MMSYSERR_NOERROR )
      

  11.   

    #include "Digitalv.h"#pragma comment(lib,"winmm.lib")MCI_DGV_SETAUDIO_PARMS mciDSP;mciDSP.dwItem=MCI_DGV_SETAUDIO_VOLUME;
    mciDSP.dwValue=nVolumeValue;mciSendCommand(nDeviceID,MCI_SETAUDIO,MCI_DGV_SETAUDIO_VALUE|MCI_DGV_SETAUDIO_ITEM,(DWORD)(LPVOID)&mciDSP);应该能行!
      

  12.   

    //mci设置音量,mciSendString设置音量
    mciSendString(L"setaudio "+exName+" volume to 500", 0, 0, 0); //500是设置的音量值