许多专注的图片,一个专注于Android?

时间:2012-06-07 11:39:26

标签: java android camera focus autofocus

我正在制作一个Android应用程序,应该以一秒钟的间隔拍照。问题是如果你在每张图片前聚焦图片,间隔会变得太长。 Camera.autoFocus()似乎需要花费一秒多一点时间,最差时间超过三秒钟,具体取决于灯光和其他东西。据我所知,没有办法在Android中手动控制焦距,FOCUS_MODE_FIXED不适合我的应用程序,因为我在很短的距离拍摄照片。

有没有办法将图片聚焦一次,然后拍摄多张具有相同焦距的照片?

我一直在尝试这样做,但拍摄照片后焦点总是消失。 developer.android.com说:

  

“使用stopPreview()停止预览,或触发静止图像   使用takePicture捕获(Camera.ShutterCallback,   Camera.PictureCallback,Camera.PictureCallback),不会改变   焦点位置。应用程序必须调用cancelAutoFocus才能重置   焦点。“

以下是我现在拍照的方式。我从中删除了一些不相关的行。这一切都有效,但速度太慢。我有索尼爱立信Xperia Mini和Android 2.3.4。

AutoFocusCallback myAutoFocusCallback = new AutoFocusCallback(){

      public void onAutoFocus(boolean arg0, Camera arg1) {
                try {
                arg1.takePicture(null, null, mPicture);
                amountOfPictures++;
                arg1.startPreview();
            } catch (Exception e) {}
     }
};

private PictureCallback mPicture = new PictureCallback() {

    public void onPictureTaken(byte[] data, Camera camera) {
        mCamera.autoFocus(myAutoFocusCallback);
//write picture to file
//leave cameraActivity when enough pictures written
    }};

//this is run before the first picture
    public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
        try {
            mCamera.setPreviewDisplay(mHolder);
            mCamera.startPreview();
            mCamera.autoFocus(myAutoFocusCallback);
            Thread.sleep(500);

        } catch (Exception e){}
    }
}

编辑: 似乎现在使用FOCUS_MODE_CONTINUOUS_VIDEO解决了这个问题。意味着它一直在关注。我想知道它以前是怎么回事。但我认为重点不如使用FOCUS_MODE_AUTOFOCUS_MODE_MACRO时那么好。 <{1}}和EDOF不是选项,因为这款手机不支持它们。

如果有人知道对原始问题的回答,我仍然会很高兴。

0 个答案:

没有答案