4

我正在使用相机,并且正在使用文档中给出的完全相同的示例:http: //developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview .html

我在装有 Android 3.1 和 3.2 的 Xoom 上运行该示例。

我的问题是当我锁定和解锁 Xoom 时,相机没有回来。图像与我锁定平板电脑之前的最后一张相同,并且红灯也没有回来。

如果有人可以帮助我,我将不胜感激。

4

2 回答 2

8

锁定和解锁是指屏幕休眠或按下设备电源开关使设备进入休眠状态然后重新唤醒?

如果是这样,我怀疑您需要在 onPause 中释放相机资源,然后通过表面视图回调在 onResume 中再次启动预览。

在我处理相机的 Android 2.2 和 2.3 应用程序中,我使用的模式是:

onCreate:
 - get reference to the camera
onResume:
- sv = (SurfaceView)this.findViewById(R.id.capture_SurfaceView);
            mHolder = sv.getHolder(); 
            mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
            mHolder.setSizeFromLayout();
            mHolder.addCallback(this); 
surfaceChanged:
- Camera.setPreviewDisplayHolder()
- Camera.startPreview()
onPause:
- Camera.stopPreview
- SurfaceHolder.removeCallback()
- Camera.release()

这对我来说非常适用于设备关闭然后重新打开,或者我的应用程序进入后台。

于 2011-08-25T07:05:02.927 回答
0

一种解决方案可能是在 onResume() 中将surfaceview 设置为不可见和可见,这会使surfaceview 销毁并重新创建。

于 2012-03-05T03:00:02.067 回答