【问题标题】:Take picture automatically with no user interaction [closed]无需用户交互即可自动拍照[关闭]
【发布时间】:2013-01-09 16:04:05
【问题描述】:

我想以不需要用户交互且不显示用户交互元素的方式拍照。换句话说,我想使用后台进程拍照。不得发出声音(例如拍照时的相机快门)。如果可能的话,如果我可以设置相机的分辨率而不是在拍摄后调整图像大小,那也很好。

我见过的所有代码示例都使用一个显示典型相机应用并让用户手动拍照的 Activity。

【问题讨论】:

  • Here。它可能会帮助您完成任务。首先,一旦相机在后台拍摄照片,您需要使相机快门静音。检查here.

标签: android camera


【解决方案1】:

我认为Camera 的开发页面很好地概述了该过程。你读过吗?

  1. 从 open(int) 获取 Camera 实例。
  2. 使用 getParameters() 获取现有(默认)设置。
  3. 如有必要,修改返回的Camera.Parameters对象并调用setParameters(Camera.Parameters)。
  4. 如果需要,调用 setDisplayOrientation(int)。
  5. 重要提示:将完全初始化的 SurfaceHolder 传递给 setPreviewDisplay(SurfaceHolder)。没有表面,相机将无法开始预览。
  6. 重要提示:调用 startPreview() 开始更新预览图面。必须先开始预览,然后才能拍照。
  7. 如果需要,请调用 takePicture(Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback, Camera.PictureCallback) 来拍摄照片。等待回调提供实际的图像数据。
  8. 拍照后,预览显示将停止。要拍摄更多照片,请先再次调用 startPreview()。
  9. 调用 stopPreview() 以停止更新预览图面。
  10. 重要提示:调用 release() 释放相机以供其他应用程序使用。应用程序应立即在 onPause() 中释放相机(并在 onResume() 中重新打开()它)。

虽然它确实提到了预览,但您始终可以隐藏用于预览的表面。无需用户交互。

【讨论】:

  • 我正在查看相机的 API,但与所有 API 文档一样,它没有解释“操作方法”。您可以粘贴您所指文档的网址吗?谢谢。
  • Camera API 页面的链接在上面,这就是我获得上述十个“操作方法”步骤的地方。它非常明确地说明了您需要做什么。如果您需要更多,请使用@TGMCians 回答,因为它会为您提供代码。
  • 抱歉,我看不到链接,因为谷歌浏览器给它的颜色几乎和普通文本一样,而且没有下划线。谢谢。正是我想要的。
猜你喜欢
  • 2012-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-29
  • 2014-11-03
相关资源
最近更新 更多