directshow实现音频采集设备的输入音量控制和媒体文件播放音量控制

1,directshow实现音频采集设备的音量控制,代码如下:

void OnNMReleasedcaptureSoundSlider(NMHDR *pNMHDR, LRESULT *pResult)
{
	*pResult = 0;
	UpdateData(TRUE);
	CComPtr<IPin> pCapturePin=NULL;
	pCapturePin=GetInPin(m_pBF_Audio,0);//m_pBF_Audio是与音频采集设备绑定的filter
	CComPtr<IAMAudioInputMixer>pMixer=NULL;//给过滤器的输入端子设置音量
	int nPosition = m_Slider.GetPos();
	lVolume = (double)nPosition/(double)3000;//新的音量设置(0.0~1.0)
	pCapturePin->QueryInterface(IID_IAMAudioInputMixer,(void **)&pMixer);
	pMixer->put_MixLevel(lVolume);
}


2,directshow实现媒体文件播放音量控制,代码如下:

void OnNMReleasedcaptureSoundSlider2(NMHDR *pNMHDR, LRESULT *pResult)
{
	*pResult = 0;
	UpdateData(TRUE);
	if (!m_Ba)//m_Ba的声明:CComPtr<IBasicAudio> m_Ba;m_Gb->QueryInterface(IID_IBasicAudio,(void **)&m_Ba)
		return;
	int nPosition = m_Slider.GetPos();
	lVolume = nPosition-3000;
	if (lVolume==-3000)
	{
		m_Ba->put_Volume(-10000L);//静音
		return;
	}
	// Set new volume
	m_Ba->put_Volume(lVolume);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值