【发布时间】:2017-11-26 13:04:13
【问题描述】:
我在本机库中定义了以下函数
JNIEXPORT jshortArray JNICALL
Java_net_example_android_library_audio_AudioFilter_process(
JNIEnv *env, jobject instance, jshortArray readBuffer_) {
如你所见,我正在通过jshortarray
我有一些接受short* 作为参数的本机函数。
所以我想知道,我怎样才能将jshortarray 转换为原生的。
有没有正确的方法来做到这一点?
或者我应该这样做
int input_size = env->GetArrayLength(readBuffer_);
short input[input_size];
jshort *inputArray = env->GetShortArrayElements(readBuffer_, 0);
for (int i = 0; i < input_size; i++) {
input[i] = inputArray[i];
}
谢谢
【问题讨论】:
-
jshort *可转换为short *本机函数是否期望short *在返回后有效?顺便说一句——GetShortArrayElements后面应该跟ReleaseShortArrayElements。 -
@TomBlodget 感谢您的回复,请将其作为答案发布
标签: java android android-ndk java-native-interface jnienv