首页 > 其他 > 详细

困扰一天啦,求大神不吝指导,Camera的onPreviewFrame中的问题

时间:2014-09-30 17:56:39      阅读:293      评论:0      收藏:0      [点我收藏+]

====================问题描述====================
bubuko.com,布布扣
布上我初始化的函数
protected void initCamre()
{
camera = Camera.open(0);
camera.setDisplayOrientation(90);
Camera.Parameters parameters = camera.getParameters();
parameters.setPreviewSize(720, 1280);
parameters.setPreviewFpsRange(4, 10);
parameters.setPictureFormat(ImageFormat.JPEG);
parameters.set("jpeg-quelity", 85);
parameters.setPictureSize(720, 1280);
if (parameters.getSupportedFocusModes().contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE))
{
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
}
int[] textures = new int[1];
GLES20.glGenTextures(1, textures, 0);
SurfaceTexture surfaceTexture = new SurfaceTexture(textures[0]);
try
{
camera.setPreviewTexture(surfaceTexture);
camera.setPreviewCallback(new MyCamera());
camera.startPreview();
}
catch (IOException e)
{
Log.i("tyty", e.toString());

e.printStackTrace();
}
}


MyCamera类

class MyCamera implements PreviewCallback
{

@Override
public void onPreviewFrame(byte[] data, Camera camera)
{

Camera.Parameters ps = camera.getParameters();
int[] imgs = new int[ps.getPreviewSize().width * ps.getPreviewSize().height];
 camera.addCallbackBuffer(data);
Log.i("tyty", "回调");
}

}


这里面的onPreviewFrame回调方法只会执行五次,然后就不再执行,这是什么原因呢???
====================解决方案1====================
camera.setPreviewCallback(new Camera.PreviewCallback() {
            @Override
            public void onPreviewFrame(byte[] data, Camera camera) {
             
            }
        });

//代码应该是没有问题的。
====================解决方案2====================
因为你用的是surfaceTexture,surfaceTexture里面的数据要消耗了,才能填充新的数据进去,这样你才能抓到preview数据,你要在surfacetexture收到新的frame之后,调用surfacetexture.updateTexImage()去消耗buffer才行。
或者你直接换用surfaceview,这样就不用自己处理了。

困扰一天啦,求大神不吝指导,Camera的onPreviewFrame中的问题

原文:http://www.cnblogs.com/lengyanyue39/p/4002234.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!