4

1秒間隔で写真を撮るAndroidアプリを作っています。問題は、各写真の前に写真の焦点を合わせると、間隔が長くなりすぎることです。Camera.autoFocus() は、照明などにもよりますが、せいぜい 1 秒強、最悪で 3 秒以上かかるようです。私が知る限り、Android で焦点距離を手動で制御する方法はなく、FOCUS_MODE_FIXED は非常に近距離で写真を撮っているため、私のアプリケーションには適合しません。

写真の焦点を一度合わせてから、同じ焦点で多くの写真を撮る方法はありますか?

私はそれをやろうとしていますが、写真を撮った後は常に焦点が消えます. developer.android.com 言います:

「stopPreview() でプレビューを停止するか、takePicture(Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback) で静止画キャプチャをトリガーしても、フォーカス位置は変更されません。アプリケーションは、cancelAutoFocus を呼び出してフォーカスをリセットする必要があります。」

これが今の写真の撮り方です。関係のない行をいくつか削除しました。これはすべて機能していますが、遅すぎます。私は Sony Ericsson 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_AUTOでもピントはやを使った時ほど良くないと思いますFOCUS_MODE_MACRO。 この電話はそれらをサポートしていないため、オプションではEDOFありません。CONTINUOUS_PICTURE

誰かが元の質問に対する答えを知っていれば、私はまだ幸せです.

4

0 に答える 0