使用camera2还是已弃用的Camera - 哪种做法最佳?

26

我正在开发一个应用程序,其中相机是一个重要的功能。在这方面,我想对以下几个方面有100%的把握:

  1. 如果我使用了已弃用的相机:该应用程序现在是否仍可以在所有API上运行?
  2. 如果问题1的答案是肯定的:在什么时间点该应用程序将不再在所有API上运行(我的应用程序应至少覆盖API 17)?
  3. 我在哪里可以找到关于问题2的更新的官方信息,即计划和何时实施?
  4. 假设我现在就使用新的camera2,我的理解是该应用程序将无法在API 21以下的任何API上运行- 正确吗?
  5. 从我目前获得的信息来看,我的工作假设是:现在仍然使用已弃用的相机。但是,密切关注API的市场份额并尽快开始学习camera2,以便在未来2-3年内准备好将应用程序切换到camera2。您同意吗?

在任何情况下,使用设备的相机并使其在几乎所有目标设备上运行足够棘手(至少现在我很高兴掌握了“旧”相机...)。因此,我真的希望对上述问题有所把握。非常感谢您的回答。

2个回答

37
如果我使用了被弃用的相机:现在这个应用程序还能在所有API上运行吗?
是的。
那么在什么时候,这款应用程序将无法在所有API上运行(我的应用程序至少要覆盖API 17)?
建造一个时间机器,进入未来,找出答案,然后让我们其他人知道。换句话说,我们无法预测Google是否会完全停止使用此API,但他们几乎从不停用API。
哪里可以找到关于问题2的最新官方信息,即计划和预计何时实施?
成为一名Google的员工,或者选择之前提到的时间机器选项。 Google不习惯提前宣布计划,并且他们的时间机器也不能租用。(尽管埃隆·马斯克可能已经给特斯拉装备了Mr. Fusion,所以你可以联系他...)
如果我已经使用了新的camera2,我的理解是该应用程序将无法在21以下的任何API中运行 - 正确吗?
正确。
现在仍然使用已弃用的Camera。但是要关注API的市场份额并尽快开始学习camera2,以便准备在未来2-3年内将应用程序切换到camera2。你同意吗?
不同意,原因将在您下一个引用后澄清。
使用设备相机并使其在几乎所有目标设备上运行的难度足以让人头疼。其中一部分麻烦在于设备制造商具有可以慷慨地描述为“古怪”的相机实现。
坚持仅使用旧的相机API的问题在于我预计该API的质量控制将稳步下降。设备制造商为相机提供的有限资源主要将用于新API。
因此,我的建议是同时使用两个API:在可能的情况下使用camera2,在需要时回退到原始API。诚然,这需要更多的工作。如果您没有做这项工作的条件,那么您别无选择,只能坚持使用原始相机API,直到您准备好让minSdkVersion为21+。

谢谢,非常有帮助。所以我的结论是:1)目前使用旧相机没有问题。2)我不会等待2-3年来实现新相机,而是等待1年并实现涵盖Camera和camera2的解决方案 - 前提是设备的API支持。 - Settembrini
2
更新一下,经过我更详细地研究Camera2之后,我建议从API 22开始使用Camera2,而不是从API 21开始。请参考此链接。https://dev59.com/81wX5IYBdhLWcg3wrA56#35997799 - Settembrini
@CommonsWare 我该如何在camera2中增加亮度?您能否回答我在这里提出的问题:https://dev59.com/WlYN5IYBdhLWcg3wm5EL。 - Shailendra Madda

1

CameraX:目前视频录制仍处于初步阶段,尚未得到官方支持。 https://github.com/android/camera/issues/2#issuecomment-490773932 - Ponomarenko Oleh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接