【问题标题】:Camera2 working only in some devicesCamera2 仅适用于某些设备
【发布时间】:2017-07-13 14:25:46
【问题描述】:

我正在使用 Camera2 开发一个应用,我需要在不影响预览的情况下拍摄照片,但我遇到了问题。

在所有手机中,我可以在显示预览时拍照,但在其中一些手机中,预览会冻结片刻,这是我想要避免的。

我的应用适用于某些设备,但不适用于所有设备。起初我以为是硬件支持摄像头(LEGACY、LIMITED、FULL)的原因,但我错了。

在完全支持的 Nexus 5 中,它可以工作。在具有 LEGACY 支持的华为 P8 Lite 中,它不起作用。在具有 LEGACY 支持的 BQ Aquaris U 中,它可以工作:S。这三款手机都有 API 23。

这里有拍照时产生的控制台日志:https://jpst.it/11qjM

有人知道是什么原因吗?是不是因为厂家的摄像头驱动?

谢谢!

【问题讨论】:

  • 在您的示例中,损坏的设备本身不支持 YUV 捕获格式,而是转换为 JPEG。我不知道如何可靠地检查相机通过仿真提供的格式。
  • 所有设备都支持YUV捕获格式。但是为了使用 LEGACY 设备拍摄最高分辨率的照片,您必须使用 JPEG。请参阅以下链接中的表格:ibb.co/cOTnZa PRIV - PREVIEW 是屏幕中显示的预览。并且要在第二个目标中具有最大尺寸,它必须是 JPEG。谢谢!
  • 对不起,这张表的来源是什么?
  • 我认为 Target 列指的是您的实验设备。但它是开发人员的背景。文档,我还是不明白什么是Target 1Target 2

标签: android android-camera2


【解决方案1】:

作为一名全职开发人员,我将大部分时间都花在相机方面,我可以毫无疑问地说,三星设备上的 Camera2API 已损坏,我认为其他制造商也存在问题。有些功能可以在他们的一些手机上运行,​​而另一些则根本不行,即使是基本的图像拍摄应用程序也可以在三星设备上可靠地运行,这比它的价值要麻烦得多。使用原始相机 API。您会收到警告说它已被弃用,但该代码仍保留在那里。我没有亲自在您列出的那些手机上运行我的应用程序,但我并不感到惊讶,它不仅限于三星设备。

【讨论】:

    猜你喜欢
    • 2018-04-10
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多