在android中使用没有预览或表面的相机

Posted

技术标签:

【中文标题】在android中使用没有预览或表面的相机【英文标题】:Using Camera without preview or surface in android 【发布时间】:2013-02-23 03:59:14 【问题描述】:

我正在寻找一种在没有表面视图或预览的情况下在 android 设备上使用相机的方法。我发现,没有那个预览是不可能拍照的。但是,我发现了一个教程,它实际上是在没有预览的情况下拍照。这是链接:http://www.vogella.com/articles/AndroidCamera/article.html

在将代码中的摄像头从正面切换到背面后,应用程序并没有崩溃,但它给了我一个错误 100。所以它目前只能使用前置摄像头。

我使用的是三星 Galaxy S3(4.1.2),我将在 Galaxy S2 和 Galaxy S3 Mini 上对其进行测试。

有人对此有很好的解释吗?

【问题讨论】:

好的,我用 Android SDK 的 Emulator(Android 2.3.3) 进行了尝试,但应用程序崩溃了。所以我不确定它是否只适用于真实设备。 【参考方案1】:

如果不开始预览,您将无法拍照。

虽然某些 Android 设备更灵活,允许在不运行预览的情况下调用 takePicture,但这在技术上违反了 API 规范。

它不适用于大量设备,因此请不要依赖它。该教程是错误的,并且可能仅在允许此行为的设备之一上进行了测试。

如果您不想要可见的预览,请参阅 this question 了解在 Android 版本 >= 3.0 中执行此操作的方法。

【讨论】:

感谢您的评论。本教程仅适用于当前至少具有 Android 4.0 版本的某些设备。为了以后的发展,我会记住你的答案。【参考方案2】:

其实问答的时间间隔很大,但可能对别人有帮助。

你可以试试这个图书馆,甚至从服务中拍照:

https://github.com/kevalpatel2106/android-hidden-camera

它使用一项功能来绘制其他应用程序并创建一个假表面。希望对您有所帮助。

【讨论】:

以上是关于在android中使用没有预览或表面的相机的主要内容,如果未能解决你的问题,请参考以下文章

Android - 相机预览是横向的

Android相机:应用程序通过NULL表面

使用表面纹理的相机预览

Android:通过片段进行相机预览。从活动中确定

相机中使用的Android模糊surfaceview

在使用后台服务的情况下,android camera2预览表面