我想以这样一种方式拍照,即不需要用户交互,也不会显示用户交互元素。换句话说,我想使用后台进程拍照。不得发出任何声音(如拍摄照片时的相机快门)。如果可能的话,如果我可以设置相机的分辨率而不是在拍摄后调整图像大小,也会很好。
我见过的所有代码示例都使用显示典型相机应用的活动,并让用户手动拍摄照片。
答案 0 :(得分:3)
我认为Camera的开发页面很好地概述了这个过程。你看过了吗?
- 从open(int)获取Camera实例。
- 使用getParameters()获取现有(默认)设置。
- 如有必要,修改返回的Camera.Parameters对象并调用setParameters(Camera.Parameters)。
- 如果需要,请调用setDisplayOrientation(int)。
- 重要提示:将完全初始化的SurfaceHolder传递给setPreviewDisplay(SurfaceHolder)。没有表面,相机将无法开始预览。
- 重要提示:调用startPreview()开始更新预览曲面。必须先开始预览才能拍照。
- 如果需要,可以调用takePicture(Camera.ShutterCallback,Camera.PictureCallback,Camera.PictureCallback,Camera.PictureCallback)来捕捉照片。等待回调提供实际的图像数据。
- 拍照后,预览显示将停止。要拍摄更多照片,请先再次调用startPreview()。
- 调用stopPreview()以停止更新预览表面。
- 重要事项:调用release()以释放相机以供其他应用程序使用。应用程序应立即在onPause()中释放相机(并在onResume()中重新打开())。
醇>
虽然确实提到了预览,但您始终可以隐藏用于预览的曲面。不需要用户交互。