怎么通过JNI调用手机自身摄像头录像并处理图片

求教:如何通过JNI调用手机自身摄像头录像并处理图片?
         刚接触opencv和Android不久,现在把之前做的图像处理的东西在Android平台上实现,现在通过Camera调用摄像头取象传给本地代码处 理,本地代码需要100ms的话,Camera取象加上图像在Java和本地代码之间传递要花300ms左右,希望能够处理速度更快一点。

        想请教如何通过JNI调用手机自身的摄像头取象呢?能不能边录边处理?
------解决思路----------------------
如果想直接通过C来取摄像头数据,这要涉及到驱动了,打开设备的操作试试
------解决思路----------------------
"图像在Java和本地代码之间传递"你可以从这方面着手,其实并不需要把数据传到jni层,只需要在jni层开辟一块内存,java层获取camera数据后直接写内存然后通知jni读就行了 
------解决思路----------------------
引用:
Quote: 引用:

直接访问设备不可行的,app没权限的。
“Camera取象加上图像在Java和本地代码之间传递要花300ms左右”,你是怎么传递图像数据的?
我觉得是你的app在这个地方设计有问题。

这个部分我已经实现的,图像数据是作为函数参数传递到本地代码的~现在对处理速度要求有些高,所以想能不能不传递图像数据,直接从本地代码获取图像,然后本地代码自己处理。

你是用onpreviewframe来获取图像数据的?preview的数据,从camerahal传递到app这边,copy了多次,效率是很低的。
最快的方法应该是直接用surfaceTexture,把surfaceTexture传给camera,这样你可以直接通过surfaceTexture来访问到图像数据,然后去处理。