怎么控制程序里面的音量大小和麦克风的音量的大小,而不改变系统音量的大小?
在网上搜了下,好像XP没有这个功能,只能在本程序中控制振幅?诶、这个怎么实现的?谁有例子?就像QQ里面的调节音频声音的大小,不会影响系统整体声音的大小?
[最优解释]
#define MIXER_FILENAME "/dev/mixer"
gMixer = open(MIXER_FILENAME,O_RDWR);
if(gMixer < 0)
return OPEN_MIXER_ERROR;
int vol = 0x6464;
ret = ioctl(gMixer,MIXER_WRITE(SOUND_MIXER_IGAIN),&vol);
if (ret == -1)
{
printf("set SOUND_MIXER_IGAIN error\n");
return OPEN_MIXER_ERROR;
}
vol = 0x6464;
ret = ioctl(gMixer,MIXER_WRITE(SOUND_MIXER_VOLUME),&vol);
if (ret == -1)
{
printf("set SOUND_MIXER_VOLUME error\n");
return OPEN_MIXER_ERROR;
}
[其他解释]
有两种方法,可以设置声音增溢处理,如果声音是PCM也可以调整声音数据来实现。
[其他解释]
用DShow里面的Audio Input源过滤器,里面有音量pin,查DShow手册应该有用法。
有关直接代码例子,可参考amcap。
[其他解释]
Mixer 接口能时间吗?