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
誰かが元の質問に対する答えを知っていれば、私はまだ幸せです.