安卓(Android) 怎么设置最佳相机(Camera)预览fps

2019年10月27日22:39:03安卓(Android) 怎么设置最佳相机(Camera)预览fps已关闭评论 632 1416字阅读4分43秒

1.简介

安卓(Android) 怎么设置最佳相机(Camera)预览fps?——请看下文。

2.示例代码

/**
 * 版权所有 编程十万个怎么办(www.tah1986.com)
 */
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

import android.hardware.Camera;
import android.util.Log;

public class Main {
  private static final String TAG = "";
  private static final int MIN_FPS = 10;
  private static final int MAX_FPS = 20;

  public static void setBestPreviewFPS(Camera.Parameters parameters) {
    setBestPreviewFPS(parameters, MIN_FPS, MAX_FPS);
  }

  public static void setBestPreviewFPS(Camera.Parameters parameters, int minFPS, int maxFPS) {
    List<int[]> supportedPreviewFpsRanges = parameters.getSupportedPreviewFpsRange();
    if (supportedPreviewFpsRanges != null && !supportedPreviewFpsRanges.isEmpty()) {
      int[] suitableFPSRange = null;
      for (int[] fpsRange : supportedPreviewFpsRanges) {
        int thisMin = fpsRange[Camera.Parameters.PREVIEW_FPS_MIN_INDEX];
        int thisMax = fpsRange[Camera.Parameters.PREVIEW_FPS_MAX_INDEX];
        if (thisMin >= minFPS * 1000 && thisMax <= maxFPS * 1000) {
          suitableFPSRange = fpsRange;
          break;
        }
      }
      if (suitableFPSRange == null) {
        Log.i(TAG, "Sem intervalo de QPS adequado?");
      } else {
        int[] currentFpsRange = new int[2];
        parameters.getPreviewFpsRange(currentFpsRange);
        if (Arrays.equals(currentFpsRange, suitableFPSRange)) {
          Log.i(TAG, Arrays.toString(suitableFPSRange));
        } else {
          Log.i(TAG, Arrays.toString(suitableFPSRange));
          parameters.setPreviewFpsRange(suitableFPSRange[Camera.Parameters.PREVIEW_FPS_MIN_INDEX],
              suitableFPSRange[Camera.Parameters.PREVIEW_FPS_MAX_INDEX]);
        }
      }
    }
  }

}

 
继续阅读
编程十万个怎么办