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

标签 c parameters signal-processing fmod getparameter

我正在使用 FMOD。如何在C中使用DSP getParameter函数? 当我使用以下代码时,程序关闭。 我不知道我的代码有什么问题。 当然,我已经实现了DSP setParameter函数。 现在我在 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 频率”,然后在 fmod 函数调用中使用 &freq。

您也对 valueStr 做了同样的事情。你说长度是16,但你只给了它0字节(“”)的内存。 请改用 char valueStr[16]。顺便说一句,你没有用它做任何事情,那为什么要传递任何东西呢?只需使用 0,0 作为函数的最后 2 个参数即可。

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

关于c - FMOD如何在C中使用DSP getParameter函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12067234/

相关文章:

c - Linux的C语言中的进程(Ubuntu)

c - 二叉树插入动画GIF

C++ 如何使用从一个函数到另一个函数的变量?

java - 向 Controller 发送参数

amazon-web-services - Cloudformation - 在 EC2 服务器中使用参数

c - rand() 在 valgrind 中使用时生成不同的值

c - 我怎样才能让 'C'中的回文程序重复五次?

使用 FFTW 计算音频数据的离散傅立叶变换

java - Java 分层音频文件时的峰值削波

python - 仅使用扬声器和麦克风进行软件传真需要多长时间?