我需要帮助将二进制数据传递给

Java.我正在尝试使用jbytearray但是当数据进入Java时它看起来很糟糕.有人可以帮我一把吗?

这是一些示例代码的片段.首先是原生C面:

printf("Building audio array copy\n");

jbyteArray rawAudioCopy = env->NewByteArray(10);

jbyte toCopy[10];

printf("Filling audio array copy\n");

char theBytes[10] = {0,1,2,3,4,5,6,7,8,9};

for (int i = 0; i < sizeof(theBytes); i++) {

toCopy[i] = theBytes[i];

}

env->SetByteArrayRegion(rawAudioCopy,0,10,toCopy);

printf("Finding object callback\n");

jmethodID aMethodId = env->GetMethodID(env->GetObjectClass(obj),"handleAudio","([B)V");

if(0==aMethodId) throw MyRuntimeException("Method not found error",99);

printf("Invoking the callback\n");

env->CallVoidMethod(obj,aMethodId, &rawAudioCopy);

然后是Java回调方法:

public void handleAudio(byte[] audio){

System.out.println("Audio supplied to Java [" + audio.length + "] bytes");

byte[] expectedAudio = {0,1,2,3,4,5,6,7,8,9};

for (int i = 0; i < audio.length; i++) {

if(audio[i]!= expectedAudio[i])

System.err.println("Expected byte " + expectedAudio[i]

+ " at byte " + i + " but got byte " + audio[i]);

else System.out.print('.');

}

System.out.println("Audio passed back accordingly!");

}

调用回调时,我得到以下输出:

library loaded!

Audio supplied to Java [-2019659176] bytes

Audio passed back accordingly!

jni c 传递对象到java_JNI将二进制数据从C传递到Java相关推荐

  1. android activity之间传递对象,Android Activity之间的数据传递

    一.通过startActivity来进行Activity的传值 在Android中,如果我们要通过一个Activity来启动另一个Activity,可以使用 startActivity(Intent ...

  2. java intent bundle_Android 通过Intent使用Bundle传递对象详细介绍

    Android 通过Intent使用Bundle传递对象 Android开发中有时需要在应用中或进程间传递对象,下面详细介绍Intent使用Bundle传递对象的方法. 被传递的对象需要先实现序列化, ...

  3. h5如何上传文件二进制流_HTML5新特性之文件和二进制数据的操作

    http://www.cnblogs.com/jscode/archive/2013/04/27/3572239.html 历史上,JavaScript无法处理二进制数据.如果一定要处理的话,只能使用 ...

  4. Android JNI 传递对象

    JNI初步入门后,在传递数据的时候,遇到一个需求:有多个数据需要在Java与C代码之间进行传递.如果都做为函数参数传入,则函数很长很难看,并且多个数据的返回也不好实现.所以想到了把数据打包后传递.这在 ...

  5. 如何通过JNI传递对象执行回调

    如何通过JNI传递对象执行回调 JNI的全称是java native interface,用来调用某些特定于系统平台或者硬件的操作,但是它只能调用c/c++的代码,若是其它语言代码,只能通过c/c++ ...

  6. JNI开发-C/C++传递对象到Java

    JNI开发有时需要C/C++传递对象到Java,此篇主要讲解C/C++传递Student对象到Java; 1. 定义com.niubashaoye.simple.jni.StuInfo类 public ...

  7. 【Android 内存优化】Android 工程中使用 libjpeg-turbo 压缩图片 ( JNI 传递 Bitmap | 获取位图信息 | 获取图像数据 | 图像数据过滤 | 释放资源 )

    文章目录 一.Bitmap 图像数据处理 二.Java 层 Bitmap 对象转为 JNI 层 bitmap 对象 三.获取 bitmap 中的图像数据 四.过滤 bitmap 中的图像数据 ( 获取 ...

  8. jQuery中的ajax、jquery中ajax全局事件、load实现页面无刷新局部加载、ajax跨域请求jsonp、利用formData对象向服务端异步发送二进制数据,表单序列化(异步获取表单内容)

    jQuery中使用ajax: 在jQuery中使用ajax首先需要引入jQuery包,其引入方式可以采用网络资源,也可以下载包到项目文件中,这里推荐下载包到文件中:市面上有多个版本的jQuery库,这 ...

  9. 通过BigExcelWriter导出包含数据和图片的excel表,涉及到sheet.createDrawingPatriarch()画图对象,涉及到url转二进制数据

    通过BigExcelWriter导出包含数据和图片的excel表,涉及到sheet.createDrawingPatriarch()画图对象,涉及到url转二进制数据 文章目录 通过BigExcelW ...

最新文章

  1. 这老哥把GPU当暖气用,省钱了!
  2. 转:Android之 MTP框架和流程分析
  3. 昆兰士科技大学计算机排名,昆士兰科技大学QS排名第几?2019年综合揭晓
  4. c语言程序 实现简单计算器功能,C语言实现简单计算器小项目
  5. 20165230 2017-2018-2 《Java程序设计》第9周学习总结
  6. 双重检查锁模式导致空指针
  7. mysql innodb引擎--范围查询优化
  8. O036、Snapshot Instance 操作详解
  9. 用于图片切割,图片压缩,缩略图的生成(转到一个好东西)
  10. 使用java语言操作,如何来实现MySQL中Blob字段的存取
  11. 会议室分配时间最长_突破大设计1:时间分配
  12. 家居照明行业网络营销怎么搞?
  13. 支持Android 11安卓Flash播放器终极版源码方案2022(1:概叙)
  14. 批量插入测试数据的存储过程
  15. Java ThreadLocalRandom 伪随机数生成器的源码深度解析与应用
  16. 2.Collection、Iterator迭代器、泛型、斗地主案例
  17. 实时视频直播平台的技术要点详解
  18. Java大作业之餐厅管理系统
  19. 【本人秃顶程序员】高级 Java 必须突破的 10 个知识点!
  20. 微信朋友圈点赞设计测试用例

热门文章

  1. Jenkins 与 Kubernetes 的 CI 与 CD Git + Maven + Docker+Kubectl
  2. ElementUI+Java实现搜索提示列表
  3. ASP.NET MVC 使用Log4Net在不同目录中记录不同类型的日志
  4. 字符串匹配之KMP---全力解析
  5. birt什么意思中文翻译_ECTN是什么意思
  6. 自加一运算_C语言i++、++i混合运算老手未必全掌握,看了你就明白了
  7. 多表关联查询_【函数007】 EXCEL多表关联查询实战
  8. html能插入背景的行级元素,Html元素类型:块级元素、行内元素(内联元素)和行内块级元素...
  9. 积米浏览器如何清除浏览数据
  10. vue使用class添加动态类