基于JNI的嵌入式手机软件开发实例

基于JNI的 嵌入式 手机 软件开发实例 下面通过一个实例来描述运用JNI技术在 手机 上操纵 摄像头 ,捕捉 视频 并存储图片的过程。

(1)活动/状态图

  图2为捕捉 视频 并存储图片的活动/状态图
  根据图2的活动/状态,具体的对应步骤如下:
  ①发起该流程。
  ②发起流程后,建立文件用于存储图片。
  ③用 指针 获得分配的 缓冲器 ,用于存储获得的帧。
  ④将 指针 压栈(序列化 缓冲器 )。由于 手机 的内存较小,为了防止内存泄漏, Symbian操作系统 有一个Cleanupstack的要求,即在使用 指针 时,用PushL把 指针 压入栈中,使用完后再用Pop弹出栈.如果在中间调用导致崩溃的函数时果真出现了问题,那么Cleanupstack可以通过调用该指针的 析构函数 回收占用的空间。
  ⑤操纵 摄像头 ,捕捉 视频 ,并将图像流从摄像头端传到 缓冲器
  ⑥将 摄像头 内的图像流存入 缓冲器 内,并将缓冲器内的流转化为文件流,存为jpg格式的文件,将指向缓冲器的 指针 弹栈。
  ⑦在过程⑥中,如果使用完了序列化的 缓冲器 ,则要重新序列化缓冲器,以备后面使用。
  ⑧当接收到停止 视频 捕捉的信号后,关闭文件。
  ⑨流程结束。

(2)视频捕捉

  子功能捕捉 视频 的实现是由操纵 摄像头 、视频播放( 解码器 准备)以及建立摄像头和 手机 之间的连接会话三个活动组成的。其中操纵 摄像头 是通过调用底层设备的驱动来实现的,需要利用JNI来实现,完成的方法包括准备、建立、删除、销毁摄像头等。 视频 播放的一系列过程也是通过c++代码来实现的,除了准备、建立、删除、销毁 解码器 外,还有开始、暂停、停止解码等。建立 摄像头 手机 之间的连接类似建立客户端和 服务器 连接, 视频流 从摄像头传到手机界面是通过 多媒体 会话来完成的。多媒体会话的建立、关闭、摧毁以及会话建立后的发送、取消、读取数据等也是JNI的应用范畴。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值