Dil*_*lip 12 android android-camera nexus-10 google-nexus
我正在使用以下代码在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;
}
}
Run Code Online (Sandbox Code Playgroud)
我在调用releaseCamera()之前调用了mCamera.stopPreview()
我有什么方法可以异步地做到这一点吗?因为从Camerapreview活动到下一个活动只需不到一分钟.
编辑1:我们将预览尺寸从最高(1080x1920)缩小到中间范围(480x800),一切都开始正常.预览尺寸是否与HAL中的相机释放有关?
小智 5
您可以尝试在线程内释放相机作为解决方法,但这不是一个理想的解决方案.您可以在后台执行发布功能时启动下一个活动
new AsyncTask() {
@Override
protected Object doInBackground(Object... params) {
releaseCamera();
return null;
};
}.execute();
Run Code Online (Sandbox Code Playgroud)