5

私は学校用のアプリケーションを作成していますが、カメラで写真を撮り、トリミングし、サーバーにアップロードする必要がある機能があり、その後、ユーザーは懐中電灯をオンにする必要があります (追跡の一環として、している)。上記のすべてが完全に機能します-ユーザーが懐中電灯をオフにして別の写真を撮りたいと思うまで。カメラが動作を停止し、カメラに接続できないというエラーが画面に表示されます。

再接続のようなコマンドがあることは知っています:http: //developer.android.com/reference/android/hardware/Camera.html#reconnect ()それを機能させます。

カメラを使用するために、私はインテントを使用しています:

Intent intent    = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

懐中電灯のコードは次のようになります。

private void getCamera() {
    if (camera == null) {
        try {
            camera = Camera.open();

            params = camera.getParameters();
        } catch (RuntimeException e) {
            Log.e("Camera Error. Failed to Open. Error: ", e.getMessage());
        }
    }
}

 /*
 * Turning On flash
 */
private void turnOnFlash() {
    getCamera();
    if (!isFlashOn) {
        if (camera == null || params == null) {
            return;
        }

        params = camera.getParameters();
        params.setFlashMode(Parameters.FLASH_MODE_TORCH);

        camera.setParameters(params);
        camera.startPreview();

        isFlashOn = true;
    }

}

/*
 * Turning Off flash
 */
private void turnOffFlash() {
    if (isFlashOn) {
        if (camera == null || params == null) {
            return;
        }

        params = camera.getParameters();
        params.setFlashMode(Parameters.FLASH_MODE_OFF);
        camera.setParameters(params);
        isFlashOn = false;
    }
}

懐中電灯とカメラの両方にカメラの同じインスタンスを使用できる方法はありますか (インテントの場合)。カメラを離すと null になり、再度インスタンス化できないことがわかりました。

前もって感謝します

4

2 に答える 2

0

一時停止時にカメラ オブジェクトを解放します。最初に Android のドキュメントを読んでください。

Android ドキュメント!

このリンクも読んでください!

于 2014-03-11T07:58:21.063 に答える