如何解决使用camera2当我调用closeCamera时,显示最后看到的帧而不是黑屏
我实现了具有3种状态的摄像头:自拍(前),后和关。
除“关闭”状态外,其他所有功能都起作用。
我正在使用camera2,它显示在TextureView上:
<TextureView
android:id="@+id/texture_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
预期:“断开”状态。当被选择,我想以关闭照相机并显示黑屏
实际:在“关闭”状态下,显示摄像机的最后一帧。
closeCamera方法:
private void closeCamera() {
try {
mCameraOpenCloseLock.acquire();
closePreviewSession();
if (null != mCameraDevice) {
mCameraDevice.close();
mCameraDevice = null;
}
if (null != mMediaRecorder) {
mMediaRecorder.release();
mMediaRecorder = null;
}
} catch (InterruptedException e) {
throw new RuntimeException("Interrupted while trying to lock camera closing.");
} finally {
mCameraOpenCloseLock.release();
}
}
private void closePreviewSession() {
if (mPreviewSession != null) {
mPreviewSession.close();
mPreviewSession = null;
}
}
有什么主意如何使“ closeCamera”显示黑屏?
解决方法
最简单的选择可能是在关闭相机时用单独的黑色视图覆盖TextureView。
或在不使用时隐藏TextureView。