我正在开发一个音频库(AAR),它有助于处理某些信号处理应用程序。在我的库中,我将拥有一个通用的信号处理模块(用C++编写并由JNI分层)。处理完毕后,我的库需要调用一些“回调”函数(由库用户定义),以便用户可以对处理后的信号进行“定制”响应。如何将C++函数指针传递到库的JNI函数
我希望这是用C++接口的,所以这个用户定义的“回调”函数也可以用在我的iOS库中。但我不知道该怎么做。
以下是我的问题
的例子----------这是我的AAR库-------------- 在JNI
.C
void (*userCallback)(int []);
void onAudioRecorded(int[] audio) { // this function is called by Java
// So some library processing
int[] processedAudio = libraryProcessing(audio);
// Pass this processed audio to the user-defined function
userCallback(audio);
}
----------这里是一些用户的项目包括我AAR库--------------
在用户应用程序的user_jni.c
void setLibraryCallback() {
// HERE IS MY PROBLEM
// HOW CAN I SET MY LIBRARY’s userCallback to onAudioProcessed
}
void onAudioProcessed(int[] processedAudio) {
// Do some further processing
int[] finalAudio = userDefinedProcessing(processedAudio);
// Make some reactions based on finalAudio
}
2017-02-11
Yu-Chih
+0
这不是C,不要垃圾标签!并且不要C++。 –