android 11骁龙相机,闪光灯拍照在暗处需要5s修改

18 篇文章 0 订阅

从log上看,主要是af,ae两个耗时

解决方案,去掉拍照af

diff --git a/vendor/codeaurora/packages/apps/SnapdragonCamera/src/com/android/camera/CaptureModule.java b/vendor/codeaurora/packages/apps/SnapdragonCamera/src/com/android/camera/CaptureModule.java
index d20f4cd..42b757d 100755
--- a/vendor/codeaurora/packages/apps/SnapdragonCamera/src/com/android/camera/CaptureModule.java
+++ b/vendor/codeaurora/packages/apps/SnapdragonCamera/src/com/android/camera/CaptureModule.java
@@ -1476,7 +1476,10 @@ public class CaptureModule implements CameraModule, PhotoController,
                     mState[id] = STATE_AF_AE_LOCKED;
                     break;
                 }
-                if ((aeState == null || aeState == CaptureResult.CONTROL_AE_STATE_LOCKED)) {
+                //<!--jicong.wang modify for bug 29215
+                //if ((aeState == null || aeState == CaptureResult.CONTROL_AE_STATE_LOCKED)) {
+                if ((aeState == null || aeState == CaptureResult.CONTROL_AE_STATE_LOCKED || aeState == CaptureResult.CONTROL_AE_STATE_PRECAPTURE)) {
+                //jicong.wang modify for bug 29215 -->
                     checkAfAeStatesAndCapture(id);
                 }
                 break;
@@ -2765,7 +2768,10 @@ public class CaptureModule implements CameraModule, PhotoController,
             CaptureRequest request = builder.build();
             mLockRequestHashCode[id] = request.hashCode();
             mState[id] = STATE_WAITING_AF_LOCK;
-            mCaptureSession[id].capture(request, mCaptureCallback, mCameraHandler);
+            //<!--jicong.wang modify for bug 29215
+            //mCaptureSession[id].capture(request, mCaptureCallback, mCameraHandler);
+            runPrecaptureSequence(id);
+            //jicong.wang modify for bug 29215 -->
             if (mHiston) {
                 updateGraghViewVisibility(View.INVISIBLE);
             }
@@ -4025,7 +4031,9 @@ public class CaptureModule implements CameraModule, PhotoController,
 
     private void applySettingsForLockFocus(CaptureRequest.Builder builder, int id) {
         builder.set(CaptureRequest.CONTROL_AF_TRIGGER, CaptureRequest.CONTROL_AF_TRIGGER_START);
-        applyAFRegions(builder, id);
+        //<!--jicong.wang modify for bug 29215
+        //applyAFRegions(builder, id);
+        //jicong.wang modify for bug 29215 -->
         applyAERegions(builder, id);
         applyCommonSettings(builder, id);
     }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现Android相机的外挂闪光灯拍照同步,你可以按照以下步骤进行操作: 1. 首先,确保在AndroidManifest.xml文件中添加相机闪光灯的权限: ```xml <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera.flash" /> ``` 2. 在你的Activity或Fragment中,创建相机实例并打开相机: ```java private Camera camera; private void openCamera() { camera = Camera.open(); } ``` 3. 获取相机参数,并设置外部闪光灯模式: ```java private void setExternalFlashMode(boolean enable) { Camera.Parameters parameters = camera.getParameters(); if (enable) { parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); } else { parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); } camera.setParameters(parameters); } ``` 4. 在拍照时,打开外部闪光灯,等待闪光灯亮起后再进行拍照: ```java private void takePhotoWithExternalFlash() { setExternalFlashMode(true); // 等待闪光灯亮起 try { Thread.sleep(1000); // 根据实际情况调整等待时间 } catch (InterruptedException e) { e.printStackTrace(); } camera.takePicture(null, null, pictureCallback); } ``` 5. 在拍照完成后,关闭外部闪光灯: ```java private Camera.PictureCallback pictureCallback = new Camera.PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { // 处理拍照结果 setExternalFlashMode(false); } }; ``` 这样,当调用 `takePhotoWithExternalFlash()` 方法时,相机会先打开外部闪光灯,并等待闪光灯亮起后再进行拍照拍照完成后关闭外部闪光灯。你可以根据实际需求调整等待时间和闪光灯的模式。 注意:外挂闪光灯的连接方式可能因设备而异,你需要根据具体的硬件连接方式和通信协议来控制外部闪光灯的开关。以上代码仅提供了闪光灯模式的设置示例,具体的外部闪光灯控制需要根据硬件设备的要求进行编码。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值