Я разрабатываю аудио-библиотеку (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
}
Это не C, не спам-теги !, а не C++. – Olaf