请教一个问题
我一个activity
打开了摄像头,并启动了预览,在onpause中调用了release摄像头后,再回到activity,在onresume中调用了重新打开摄像头及预览,预览就失效了,但其他代码还正常,跟踪代码,执行了surfaceCreated和surfaceChanged,里面有mCamera.startPreview();
请教一个问题
我一个activity
打开了摄像头,并启动了预览,在onpause中调用了release摄像头后,再回到activity,在onresume中调用了重新打开摄像头及预览,预览就失效了,但其他代码还正常,跟踪代码,执行了surfaceCreated和surfaceChanged,里面有mCamera.startPreview();
2 回答1.3k 阅读✓ 已解决
2 回答2.7k 阅读
2 回答1.8k 阅读
1 回答2.1k 阅读
1 回答1.2k 阅读
1 回答1.4k 阅读
1 回答621 阅读✓ 已解决
activity pause过后恢复我们以前是这样做的,Camera对象需要重新生成
在onPause的时候,调用如下方法(已经删除其他跟我们项目相关的逻辑代码)
然后在onResume时,重新获得Camera对象(通过
Camera.open()
),再重新设置previewCallback,SurfaceHolder,Parameters等,最后startPreview
这里可以提醒一下LZ,
打开摄像头的时间可能会很长,勿在主线程直接打开,否则会有概率出ANR
摄像头根据设备的不同可能在打开时经常会抛各种异常,记得try,catch