FMOD如何在C中使用DSP getParameter函数?

FMOD如何在C中使用DSP getParameter函数?,c,parameters,signal-processing,fmod,getparameter,C,Parameters,Signal Processing,Fmod,Getparameter,我用的是FMOD。如何在C语言中使用DSP getParameter函数? 当我使用下面的代码时,程序关闭了。 我不知道我的代码出了什么问题。 当然,我已经实现了DSP设置参数功能。 现在我在getParameter函数中遇到了问题。 如果有人知道这个问题,请给我一个提示 这是我以前尝试过的代码: float Java_com_chocolate_player_equalizer_EQ_cGetEQCenter(JNIEnv *env, jobject thiz, int band) {

我用的是FMOD。如何在C语言中使用DSP getParameter函数? 当我使用下面的代码时,程序关闭了。 我不知道我的代码出了什么问题。 当然,我已经实现了DSP设置参数功能。 现在我在getParameter函数中遇到了问题。 如果有人知道这个问题,请给我一个提示

这是我以前尝试过的代码:

float Java_com_chocolate_player_equalizer_EQ_cGetEQCenter(JNIEnv *env, jobject thiz, 
int band)
{
    FMOD_RESULT result = FMOD_OK;
    FMOD_BOOL active = 0;

    if(!active){
        result = FMOD_System_AddDSP(gSystem, gDSPParameq[band], 0);
    }
    float * freq;
    char * valueStr = "";
    int valueStrLength = 16;

    result = FMOD_DSP_GetParameter(gDSPParameq[band], FMOD_DSP_PARAMEQ_CENTER, freq,
        valueStr, valueStrLength);

    return *freq;
}

问题是FMOD函数想要写入您传递给它的指针(即freq),但您没有给它任何要写入的内存,只是一个未初始化的值

这最好改为“float-freq”,然后在fmod函数调用中使用&freq

您也对valueStr做了同样的事情。您说过长度是16,但您只给它0字节(“”)的内存。 改为使用char valueStr[16]。顺便说一句,你什么都不做,为什么要通过呢。只需对函数的最后两个参数使用0,0


您还必须调整并使用return freq,而不是return*freq

对。我这样做了,但我没有很遗憾地读到你的答案。无论如何,太多了。对我来说,答案很好。