从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);
     }
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐