我正在使用以下代码在 onPause 中释放相机。但是 mCamera.release() 行平均需要 30 秒才能释放 Nexus 10 设备中的相机。我在 mCamera.release() 之前和之后添加了日志记录,发现打印这些日志的时间差是 30 秒。
private void releaseCamera() {
if (mCamera != null) {
previewing = false;
mCamera.setPreviewCallback(null);
if(mPreview != null)
mPreview.getHolder().removeCallback(mPreview);
Log.e("QR","Starting to call mCamera.release()");
mCamera.release();
Log.e("QR","Released Camera");
mCamera = null;
}
}
我在调用 releaseCamera() 之前调用 mCamera.stopPreview()
有什么方法可以异步进行吗?因为从 Camerapreview 活动到下一个活动只需要不到一分钟的时间。
编辑1:我们将预览尺寸从最高( 1080x1920)减小到中等范围(480x800),一切都开始正常了。预览大小是否与 HAL 中的相机版本有关?