DirectShow中音频实现EQ的功能,请高手帮忙.
最近我勇DirectShow写了一个音频播放器,现在想实现Equalizer的功能, 也就是普通MP3上实现的那种音效转换,比如CLASS,JAZZ,POP...之类. 我找了DirectSound中的很多接口, 都没有找到相对应的函数. 请高手赐教. 问题解决,立刻给分.
这是我初始化的时候的一段代码
HRESULT hr = CoCreateInstance(CLSID_FilterGraph,
NULL,
CLSCTX_INPROC_SERVER,
IID_IGraphBuilder,
(void **)&m_pGB);
JUMP_ON_FAIL(hr, ErrExit);
hr = m_pGB->QueryInterface(IID_IMediaControl, (void **)&m_pMC);
JUMP_ON_FAIL(hr, ErrExit);
hr = m_pGB->QueryInterface(IID_IMediaSeeking, (void **)&m_pMS);
JUMP_ON_FAIL(hr, ErrExit);
hr = m_pGB->QueryInterface(IID_IBasicAudio, (void **)&m_pBA);
JUMP_ON_FAIL(hr, ErrExit);
hr = m_pGB->QueryInterface(IID_IMediaEventEx, (void **)&m_pME);
JUMP_ON_FAIL(hr, ErrExit);
hr = m_pGB->QueryInterface(IID_IVideoWindow, (void **)&m_pVW);
JUMP_ON_FAIL(hr, ErrExit);
所使用的INTERFACE都是DirectSound中的,就是没有找到使用EQ的接口, 上次也跟一个哥们儿讨论过, 得出的结论是在播放的时候, 找出播放buffer,然后把它专程riff, 找到合适的interface进行调整,然后再播放. 可郁闷的就是没有找到这个interface, 请众高手能帮帮忙. 多谢了