Android上不同尺寸的相机预览

时间:2011-12-09 13:24:18

标签: android android-camera android-ndk

我正在开发一个在本机端执行图像处理的应用程序,它从Java端接收每帧的摄像机数据。

问题是将图像从JVM内存复制到本机内存需要花费很多时间。

问题:是否可以使用不同的预览尺寸,即较大的尺寸在SurfaceView上显示视频帧,而另一个较小的尺寸用于处理。

1 个答案:

答案 0 :(得分:0)

通常,您会使用setPreviewSize()类的Camera.Parameters方法。

这样的事情:

...
Camera.Parameters mParams = camera.getParameters();
List<Camera.Size> previewSizes = mParams.getSupportedPreviewSizes();
Camera.Size previewSize = previewSizes.get(previewSizes.size()-1);
mParams.setPreviewSize(previewSize.width, previewSize.height);
mParams.setPreviewFrameRate(15); // get 15 preview frames per second
camera.setParameters(mParams);
...

其中camera是显示图像的Camera对象。

我在SurfaceView的surfaceChanged方法中有这个。这将改变您在Camera.PreviewCallback实现中获取的预览大小,该实现捕获相机的YUV图像(如果您有幸拥有使用它的手机,则会改变位图图像)。它不会影响屏幕上显示的图像。