假设native方法如下(以float类型为例):

 public static native float[] featureExtract(float[] input);

对应的C++代码如下:

extern "C"JNIEXPORT jfloatArray JNICALL Java_com_elelvoc_app_speechwakeapp_tool_Toolkit_featureExtract        (JNIEnv *env, jclass cla, jfloatArray arr )

接下来把 arr参数转换为jfloat *类型的即可,也能顺便取到arr的长度

代码如下:

jfloat *wav_date;wav_date = env->GetFloatArrayElements(arr, 0);const jint length = env->GetArrayLength(arr);

返回的时候也是类似(假设我们返回长度为40的float数组)

float *log_mel = new float[40];jfloatArray result = env->NewFloatArray(40);env -> SetFloatArrayRegion(result,0,40,log_mel);

用完之后别忘了释放

env->ReleaseFloatArrayElements(arr , wav_date, 0);

注意:

如果你的数组的类型是int
env->GetFloatArrayElements
要改成
env->GetIntArrayElements

SetFloatArrayRegion
要改成
SetIntArrayRegion

其他基本数据类型类似。

更多相关文章

  1. Android 手机运营商及网络类型判断
  2. Android之常见数据类型
  3. android 100行代码实现 仿苹果滑动选择器WheelView
  4. Android之图文混排 (二)源代码
  5. 一段Android实现应用下载并自动安装apk包的代码
  6. 36个Android开发常用代码片段
  7. Android 进阶的小技巧整理(整理自第一行代码)
  8. Android 通过代码设置着色图片
  9. android典型代码系列(五)------deviceadmin步骤

随机推荐

  1. 【DB笔试面试223】在Oracle中,如果丢失一
  2. 记录一次宕机后,OGG出现故障,OGG-01705的解
  3. 靶机***之Typhoon实战
  4. Facebook是如何通过Android应用程序跟踪
  5. [原创干货]Oracle Sharding实施教程来袭!!!
  6. 浅谈SaaS和企业端应用的集成
  7. 在Oracle公有云中2小时供应EBS环境
  8. 由共享单车、电子围栏到企业业务创新和IT
  9. 【DB笔试面试682】在Oracle中,Undo段中区3
  10. rxjs 的 observable 是什么?