2017-02-28 16 views
1

上記の例外に関して多くの質問がありますが、依然として答えを見つけることができず、自分で尋ねることを決めました。 カメラ2のキャプチャ中に例外がスローされることがあります。時にはバックグラウンドになることもあります。 例外は次の行に示していますmCaptureSession.capture上java.lang.IllegalStateException:セッションが閉じられました。さらなる変更は違法です

try { 
    if ((null != mCaptureSession) && (isCameraOpen)) { 
     mState = STATE_PREVIEW; 
     mCaptureSession.capture(mPreviewRequestBuilder.build(), mCaptureCallback, mHandler); 
    } 
} catch (CameraAccessException e) { 
    L.e("CameraLolipop --- CameraCaptureSession.CaptureCallback " + e); 
} 

....私はmCaptureSession isReprocessable、それはデバイス23および上記のために動作するかどうかもチェックしてみました。 しかし、それ以外は何もできませんでした。 みんな、この解決策を見つけるのを助けてください。 ありがとうございます。ここで

は例外です:

java.lang.IllegalStateException: Session has been closed; further changes are illegal. 
at android.hardware.camera2.impl.CameraCaptureSessionImpl.checkNotClosed(CameraCaptureSessionImpl.java:569) 
at android.hardware.camera2.impl.CameraCaptureSessionImpl.capture(CameraCaptureSessionImpl.java:152) 
at java.lang.reflect.Method.invoke(Native Method) 
at android.hardware.camera2.dispatch.InvokeDispatcher.dispatch(InvokeDispatcher.java:39) 
at android.hardware.camera2.dispatch.HandlerDispatcher$1.run(HandlerDispatcher.java:65) 
+0

エラーログを投稿できますか? –

+0

確かに、ここにあります: – user0770

+0

あなたはそれを解決しましたか?ソースコード全体を見ることはできませんか? –

答えて

0

私は同じ問題に直面し、私は非表示にテクスチャを解決しonPause、それが近いと目に見える設定履歴書に/変更する前に、カメラを閉じて終了するスレッドを送信しますテクスチャ私はこれがあなたを助けることを望む。

@Override 
public void onPause() { 
    super.onPause(); 
    mTextureView.setVisibility(View.GONE); 

    closeCamera(); 
    closeBackgroundThread(); 
    try { 
     Thread.sleep(500); 
    } catch (InterruptedException e) { 
     e.printStackTrace(); 
    } 
} 

@Override 
public void onResume() { 
    super.onResume(); 
    mTextureView.setVisibility(View.VISIBLE); 
    openBackgroundThread(); 
    if(mTextureView.isAvailable()) { 
     openCamera(mTextureView.getWidth(), mTextureView.getHeight()); 
    } else { 
     mTextureView.setSurfaceTextureListener(mSurfaceTextureListener); 
    } 
} 
関連する問題