参数平衡特技的参数通过下面的结构来调整:
typedef struct _DSFXParamEq
{
FLOAT fCenter;//中心的频率 ,单位是hz,取值范围是 80.0f hz~~16000.0f ,缺省值 是 8000hz
FLOAT fBandwidth;//音的带宽,以半音为单位,取值范围是 1.0f~~36.0f,缺省值 是12
FLOAT fGain;//音频的音量,以db为单位,取值范围是 -15.0db ~~15.0f db,缺省值是0db
} DSFXParamEq, *LPDSFXParamEq;
我们在程序中可以定义这个结构的对象,如下:
LPDIRECTSOUNDFXPARAMEQ8 g_pParamEq = NULL;
DSFXParamEq g_paramsParamEq;
通过拖动滑动条,我们可以用下面的代码调整参数:
DSEFFECTDESC effectdesc;
ZeroMemory( &effectdesc, sizeof( DSEFFECTDESC ) );
effectdesc.dwSize = sizeof(DSEFFECTDESC);
effectdesc.dwFlags = 0;
effectdesc.guidDSFXClass = GUID_DSFX_STANDARD_PARAMEQ;
DWORD dwResult;
if(g_pDSBuffer8)
{
g_pDSBuffer8->SetFX(1,&effectdesc,&dwResult);
if( FAILED( hr = g_pDSBuffer8->GetObjectInPath( GUID_DSFX_STANDARD_PARAMEQ, 0, IID_IDirectSoundFXParamEq8,(LPVOID*) &g_pParamEq ) ) )
return ;
g_pParamEq ->SetAllParameters (&g_paramsParamEq);
}
typedef struct _DSFXParamEq
{
FLOAT fCenter;//中心的频率 ,单位是hz,取值范围是 80.0f hz~~16000.0f ,缺省值 是 8000hz
FLOAT fBandwidth;//音的带宽,以半音为单位,取值范围是 1.0f~~36.0f,缺省值 是12
FLOAT fGain;//音频的音量,以db为单位,取值范围是 -15.0db ~~15.0f db,缺省值是0db
} DSFXParamEq, *LPDSFXParamEq;
我们在程序中可以定义这个结构的对象,如下:
LPDIRECTSOUNDFXPARAMEQ8 g_pParamEq = NULL;
DSFXParamEq g_paramsParamEq;
通过拖动滑动条,我们可以用下面的代码调整参数:
DSEFFECTDESC effectdesc;
ZeroMemory( &effectdesc, sizeof( DSEFFECTDESC ) );
effectdesc.dwSize = sizeof(DSEFFECTDESC);
effectdesc.dwFlags = 0;
effectdesc.guidDSFXClass = GUID_DSFX_STANDARD_PARAMEQ;
DWORD dwResult;
if(g_pDSBuffer8)
{
g_pDSBuffer8->SetFX(1,&effectdesc,&dwResult);
if( FAILED( hr = g_pDSBuffer8->GetObjectInPath( GUID_DSFX_STANDARD_PARAMEQ, 0, IID_IDirectSoundFXParamEq8,(LPVOID*) &g_pParamEq ) ) )
return ;
g_pParamEq ->SetAllParameters (&g_paramsParamEq);
}