Jor*_*dan 5 java android galaxy camera-flash camera2
我正在使用Android Camera2 API拍摄应用程序的照片,但无法使闪光灯在大多数Samsung Galaxy设备(银河s6 edge,银河s7,银河j7)上正常工作。我相信我已经正确实现了闪光逻辑,因为曾经在Play商店中使用过的Google相机应用程序也表现出相同的行为。另外,银河s8似乎可以很好地与闪光灯配合使用(尽管结果肯定有不一致的照明)
银河j7的问题在于,当我使用闪光灯拍摄照片(锁定闪光灯或在需要闪光灯的场景中使用自动闪光灯)时,闪光灯将保持开启状态很长时间,预览将被锁定,然后在可能需要7秒钟才能拍摄图像,而闪光灯不是图像的一部分。
我有以下处理闪光模式的方法:
private void setAutoFlash(CaptureRequest.Builder requestBuilder)
{
switch (mFlashState)
{
case FLASH_STATE_AUTO:
requestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);
//requestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);
break;
case FLASH_STATE_ON:
requestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_ALWAYS_FLASH);
//requestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_SINGLE);
break;
case FLASH_STATE_OFF:
requestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
//requestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);
break;
}
}
Run Code Online (Sandbox Code Playgroud)
每当需要CaptureRequest.Builder时,都会调用此闪存逻辑
我读过的3条注释行是为帮助Flash对我来说正常工作而建议阅读的其他内容,但它似乎没有任何作用
三星有自己的相机API(http://developer.samsung.com/galaxy/camera),但我读到它只是Camera2的包装,我担心他们的API甚至无法解决我的问题。
附加信息:
任何有关如何完成工作闪光的帮助将不胜感激
在断断续续地工作了一段时间后,我意识到了一些事情。我提到 ZCamera(来自 Play 商店)可与 Flash 配合使用,我认为他们是通过使用 Samsung SDK 来实现这一点的。我检查了该应用程序,它不使用三星 SDK。
我还将 Samsung SDK 合并到我的应用程序中,但这并没有改变任何东西。三星 SDK 实际上只是 google 相机 2 的包装,因此您可以添加一些三星特定的功能,将其添加到您的项目中不会修复任何三星兼容性。
我最终意识到,我自己编程的触摸测光流程(触摸对焦/然后拍照)的工作原理与我们在没有触摸对焦的情况下拍照时运行的逻辑非常不同。常规的照片逻辑是从谷歌的camera2 api示例代码借用的,但它不能正常工作。
让闪光灯在三星设备上闪光的技巧(或者至少对我来说有效)是首先触发自动曝光级别的检查,一旦收敛,然后启动自动对焦触发器。如果闪光灯打开,将闪光以检查自动曝光级别并对焦,然后再次闪光以拍摄照片
| 归档时间: |
|
| 查看次数: |
2014 次 |
| 最近记录: |