问题描述
您好,我在我的 Android 项目中使用了 c++,我对它还很陌生。我有一个名为 SuperpoweredAndroidAudioIO 的类,它具有以下构造函数参数。
SuperpoweredAndroidAudioIO(int samplerate,int buffersize,bool enableInput,bool enableOutput,audioProcessingCallback callback,void *clientdata,int inputStreamType = -1,int outputStreamType = -1);
这里audioProcessingCallback是一个typedef,它在库中像这样定义,
typedef bool (*audioProcessingCallback) (void *clientdata,short int *audioIO,int numberOfFrames,int samplerate);
现在每次我要创建SuperpoweredAndroidAudioIO的对象时,我都必须像这样传递静态方法作为audioProcessingCallback的参数,
static bool audioProcessing(
void *__unused clientdata,// custom pointer
short int *audio,// buffer of interleaved samples
int numberOfFrames,// number of frames to process
int __unused samplerate // current sample rate in Hz
) {
//Some code
return true;
}
audioIO = new SuperpoweredAndroidAudioIO(
samplerate,buffersize,true,audioProcessing,// audio processing callback function
NULL,-1,SL_ANDROID_STREAM_MEDIA
);
所以我的问题是有什么方法可以删除作为音频处理回调的静态方法,并直接分配一个方法或对象或任何可以在没有静态的情况下工作的东西。原因是如果我声明一个静态方法,我必须将其中的所有变量都用作静态变量。那么有人可以在这里帮忙吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)