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

来源:互联网 发布:麻瓜 python 编辑:程序博客网 时间:2024/05/14 02:42

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是与音频采集设备绑定的filterCComPtr<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 volumem_Ba->put_Volume(lVolume);}


原创粉丝点击