有尝试如下做法:
1、用mixer这套,是直接修改了系统的混音器来改变音量,这个貌似不能满足要求。
2、用mciSendCommand这套的
mciSendCommand(m_hDev, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE | MCI_DGV_SETAUDIO_ITEM, (DWORD)(LPVOID)&mciSetAudioPara);
返回错误码247即MCIERR_UNSUPPORTED_FUNCTION。
哪位高手帮忙解决下。
17 个解决方案
#1
使用mci放音?
#2
试试auxSetVolume
#3
恩,是的,是使用mci放音的,然后看到有这么个参数 MCI_SETAUDIO,以为没问题了,没想到不起作用
#4
我实现的是 程序中一旦调整音量,就调整了系统的音量,想LZ学习。。
#5
我有使用过waveOutSetVolume这个api,跟auxsetvolume应该是一样的。
我是这么使用的waveOutSetVolume(0,100);没有什么效果
#6
呵呵,估计就是用直接调用混音器这套api了
#7
你先试试waveOutSetVolume(0,0);如果还没效果,说明你的hwo设置不对。
waveOutSetVolume返回值检查了吗
waveOutSetVolume返回值检查了吗
#8
mci对audio好像不能设置音量,video可以...
#9
waveOutSetVolume试试看
#10
有检查了这个返回值是0;没有错误。
对了,我播放音效是用mci这套。
#11
好像看其msdn的描述,好像是有这么一说。
#12
独立控制音量用 DirectSound
#13
我这边用的是mci做播放处理,可以用directsound控制音量,是否有相关的代码?
#14
mixerSetControlDetails(
(HMIXEROBJ)m_HMixer,
&mxcd,
MIXER_OBJECTF_HMIXER|MIXER_SETCONTROLDETAILSF_VALUE) != MMSYSERR_NOERROR )
(HMIXEROBJ)m_HMixer,
&mxcd,
MIXER_OBJECTF_HMIXER|MIXER_SETCONTROLDETAILSF_VALUE) != MMSYSERR_NOERROR )
#15
我就是这么用的啦,混音器这套还是会影响到系统的音量的
#16
#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);
应该能行!
#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);
应该能行!
#17
//mci设置音量,mciSendString设置音量
mciSendString(L"setaudio "+exName+" volume to 500", 0, 0, 0); //500是设置的音量值
mciSendString(L"setaudio "+exName+" volume to 500", 0, 0, 0); //500是设置的音量值
#1
使用mci放音?
#2
试试auxSetVolume
#3
恩,是的,是使用mci放音的,然后看到有这么个参数 MCI_SETAUDIO,以为没问题了,没想到不起作用
#4
我实现的是 程序中一旦调整音量,就调整了系统的音量,想LZ学习。。
#5
我有使用过waveOutSetVolume这个api,跟auxsetvolume应该是一样的。
我是这么使用的waveOutSetVolume(0,100);没有什么效果
#6
呵呵,估计就是用直接调用混音器这套api了
#7
你先试试waveOutSetVolume(0,0);如果还没效果,说明你的hwo设置不对。
waveOutSetVolume返回值检查了吗
waveOutSetVolume返回值检查了吗
#8
mci对audio好像不能设置音量,video可以...
#9
waveOutSetVolume试试看
#10
有检查了这个返回值是0;没有错误。
对了,我播放音效是用mci这套。
#11
好像看其msdn的描述,好像是有这么一说。
#12
独立控制音量用 DirectSound
#13
我这边用的是mci做播放处理,可以用directsound控制音量,是否有相关的代码?
#14
mixerSetControlDetails(
(HMIXEROBJ)m_HMixer,
&mxcd,
MIXER_OBJECTF_HMIXER|MIXER_SETCONTROLDETAILSF_VALUE) != MMSYSERR_NOERROR )
(HMIXEROBJ)m_HMixer,
&mxcd,
MIXER_OBJECTF_HMIXER|MIXER_SETCONTROLDETAILSF_VALUE) != MMSYSERR_NOERROR )
#15
我就是这么用的啦,混音器这套还是会影响到系统的音量的
#16
#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);
应该能行!
#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);
应该能行!
#17
//mci设置音量,mciSendString设置音量
mciSendString(L"setaudio "+exName+" volume to 500", 0, 0, 0); //500是设置的音量值
mciSendString(L"setaudio "+exName+" volume to 500", 0, 0, 0); //500是设置的音量值