类android.hardware.Camera.Parameters源码实例Demo

下面列出了怎么用android.hardware.Camera.Parameters的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: mollyim-android   文件: CameraView.java
@Override
public void onOrientationChanged(int orientation) {
  if (camera.isPresent() && orientation != ORIENTATION_UNKNOWN) {
    int newOutputOrientation = getCameraPictureRotation(orientation);

    if (newOutputOrientation != outputOrientation) {
      outputOrientation = newOutputOrientation;

      Camera.Parameters params = camera.get().getParameters();

      params.setRotation(outputOrientation);

      try {
        camera.get().setParameters(params);
      }
      catch (Exception e) {
        Log.e(TAG, "Exception updating camera parameters in orientation change", e);
      }
    }
  }
}
 
源代码2 项目: android_9.0.0_r45   文件: LegacyMetadataMapper.java
private static void mapStatistics(CameraMetadataNative m, Parameters p) {
    /*
     * statistics.info.availableFaceDetectModes
     */
    int[] fdModes;

    if (p.getMaxNumDetectedFaces() > 0) {
        fdModes = new int[] {
            STATISTICS_FACE_DETECT_MODE_OFF,
            STATISTICS_FACE_DETECT_MODE_SIMPLE
            // FULL is never-listed, since we have no way to query it statically
        };
    } else {
        fdModes = new int[] {
            STATISTICS_FACE_DETECT_MODE_OFF
        };
    }
    m.set(STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES, fdModes);

    /*
     * statistics.info.maxFaceCount
     */
    m.set(STATISTICS_INFO_MAX_FACE_COUNT, p.getMaxNumDetectedFaces());
}
 
public void setCamera(final Camera camera) {
	mCamera = camera;

	if (mCamera != null) {
		requestLayout();

		Camera.Parameters params = mCamera.getParameters();
		camera.setDisplayOrientation(90);
		List<String> focusModes = params.getSupportedFocusModes();
		if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) {
			// set the focus mode
			params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
			// set Camera parameters
			mCamera.setParameters(params);
		}
	}
}
 
源代码4 项目: android_9.0.0_r45   文件: LegacyMetadataMapper.java
/**
 * Convert the ae antibanding mode from api1 into api2.
 *
 * @param mode the api1 mode, {@code null} is allowed and will return {@code -1}.
 *
 * @return The api2 value, or {@code -1} by default if conversion failed
 */
private static int convertAntiBandingMode(String mode) {
    if (mode == null) {
        return -1;
    }

    switch (mode) {
        case Camera.Parameters.ANTIBANDING_OFF: {
            return CONTROL_AE_ANTIBANDING_MODE_OFF;
        }
        case Camera.Parameters.ANTIBANDING_50HZ: {
            return CONTROL_AE_ANTIBANDING_MODE_50HZ;
        }
        case Camera.Parameters.ANTIBANDING_60HZ: {
            return CONTROL_AE_ANTIBANDING_MODE_60HZ;
        }
        case Camera.Parameters.ANTIBANDING_AUTO: {
            return CONTROL_AE_ANTIBANDING_MODE_AUTO;
        }
        default: {
            Log.w(TAG, "convertAntiBandingMode - Unknown antibanding mode " + mode);
            return -1;
        }
    }
}
 
源代码5 项目: Augendiagnose   文件: Camera1Handler.java
/**
 * Get the best preview size.
 *
 * @param aspectRatio The aspect ratio of the picture.
 * @param parameters  The camera parameters.
 * @return The best preview size.
 */
@Nullable
private static Camera.Size getBestPreviewSize(final float aspectRatio, @NonNull final Camera.Parameters parameters) {
	Camera.Size result = null;
	float bestAspectRatioDifference = 0;

	for (Camera.Size size : parameters.getSupportedPreviewSizes()) {
		float newAspectRatioDifference = Math.abs(((float) size.width) / size.height - aspectRatio);
		if (result == null) {
			result = size;
			bestAspectRatioDifference = newAspectRatioDifference;
		}
		else {
			if ((newAspectRatioDifference < bestAspectRatioDifference - 0.01f) // MAGIC_NUMBER
					|| (size.width > result.width && newAspectRatioDifference < bestAspectRatioDifference + 0.01f)) { // MAGIC_NUMBER
				result = size;
				bestAspectRatioDifference = newAspectRatioDifference;
			}
		}
	}

	return result;
}
 
源代码6 项目: android_9.0.0_r45   文件: LegacyRequestMapper.java
private static String convertAwbModeToLegacy(int mode) {
    switch (mode) {
        case CONTROL_AWB_MODE_AUTO:
            return Camera.Parameters.WHITE_BALANCE_AUTO;
        case CONTROL_AWB_MODE_INCANDESCENT:
            return Camera.Parameters.WHITE_BALANCE_INCANDESCENT;
        case CONTROL_AWB_MODE_FLUORESCENT:
            return Camera.Parameters.WHITE_BALANCE_FLUORESCENT;
        case CONTROL_AWB_MODE_WARM_FLUORESCENT:
            return Camera.Parameters.WHITE_BALANCE_WARM_FLUORESCENT;
        case CONTROL_AWB_MODE_DAYLIGHT:
            return Camera.Parameters.WHITE_BALANCE_DAYLIGHT;
        case CONTROL_AWB_MODE_CLOUDY_DAYLIGHT:
            return Camera.Parameters.WHITE_BALANCE_CLOUDY_DAYLIGHT;
        case CONTROL_AWB_MODE_TWILIGHT:
            return Camera.Parameters.WHITE_BALANCE_TWILIGHT;
        case CONTROL_AWB_MODE_SHADE:
            return Parameters.WHITE_BALANCE_SHADE;
        default:
            Log.w(TAG, "convertAwbModeToLegacy - unrecognized control.awbMode" + mode);
            return Camera.Parameters.WHITE_BALANCE_AUTO;
    }
}
 
源代码7 项目: android_9.0.0_r45   文件: LegacyResultMapper.java
private static void mapAf(CameraMetadataNative m,
        Rect activeArray, ZoomData zoomData, Camera.Parameters p) {
    // control.afMode
    m.set(CaptureResult.CONTROL_AF_MODE, convertLegacyAfMode(p.getFocusMode()));

    // control.afRegions
    if (p.getMaxNumFocusAreas() > 0) {
        if (DEBUG) {
            String focusAreas = p.get("focus-areas");
            Log.v(TAG, "mapAe - parameter dump; focus-areas: " + focusAreas);
        }

        MeteringRectangle[] meteringRectArray = getMeteringRectangles(activeArray,
                zoomData, p.getFocusAreas(), "AF");

        m.set(CONTROL_AF_REGIONS, meteringRectArray);
    }
}
 
源代码8 项目: Augendiagnose   文件: Camera1Handler.java
/**
 * Get the biggest possible picture size.
 *
 * @param parameters The camera parameters.
 * @return The biggest picture size.
 */
@Nullable
private static Camera.Size getBiggestPictureSize(@NonNull final Camera.Parameters parameters) {
	Camera.Size result = null;

	for (Camera.Size size : parameters.getSupportedPictureSizes()) {
		if (result == null) {
			result = size;
		}
		else {
			int resultSize = Math.min(result.width, result.height);
			int newSize = Math.min(size.width, size.height);

			if (newSize > resultSize || (newSize == resultSize && size.width > result.width)) {
				result = size;
			}
		}
	}

	return result;
}
 
源代码9 项目: spydroid-ipcamera   文件: VideoStream.java
protected synchronized void updateCamera() throws RuntimeException {
	if (mPreviewStarted) {
		mPreviewStarted = false;
		mCamera.stopPreview();
	}

	Parameters parameters = mCamera.getParameters();
	mQuality = VideoQuality.determineClosestSupportedResolution(parameters, mQuality);
	int[] max = VideoQuality.determineMaximumSupportedFramerate(parameters);
	parameters.setPreviewFormat(mCameraImageFormat);
	parameters.setPreviewSize(mQuality.resX, mQuality.resY);
	parameters.setPreviewFpsRange(max[0], max[1]);

	try {
		mCamera.setParameters(parameters);
		mCamera.setDisplayOrientation(mOrientation);
		mCamera.startPreview();
		mPreviewStarted = true;
	} catch (RuntimeException e) {
		destroyCamera();
		throw e;
	}
}
 
源代码10 项目: zom-android-matrix   文件: CameraView.java
private void startPreview(SurfaceHolder holder) {
	try {

		Parameters params = camera.getParameters();

		if (params.getSupportedFocusModes().contains(
				Parameters.FOCUS_MODE_AUTO)) {
			params.setFocusMode(Parameters.FOCUS_MODE_AUTO);
		}

		List<Size> previewSizes = camera.getParameters().getSupportedPreviewSizes();
		List<Size> pictureSizes = camera.getParameters().getSupportedPictureSizes();

           params.setPreviewSize(previewSizes.get(previewSizes.size()-2).width,previewSizes.get(previewSizes.size()-2).height);
		params.setPictureSize(pictureSizes.get(pictureSizes.size()-2).width,pictureSizes.get(pictureSizes.size()-2).height);
		camera.setParameters(params);

		camera.setPreviewDisplay(holder);
		camera.startPreview();

		previewConsumer.start(camera);
	} catch(IOException e) {
		Log.e(TAG, "Error starting camera preview", e);
	}
}
 
源代码11 项目: mlkit-material-android   文件: CameraSource.java
/**
 * Selects the most suitable preview frames per second range.
 *
 * @param camera the camera to select a frames per second range from
 * @return the selected preview frames per second range
 */
private static int[] selectPreviewFpsRange(Camera camera) {
  // The camera API uses integers scaled by a factor of 1000 instead of floating-point frame
  // rates.
  int desiredPreviewFpsScaled = (int) (REQUESTED_CAMERA_FPS * 1000f);

  // The method for selecting the best range is to minimize the sum of the differences between
  // the desired value and the upper and lower bounds of the range.  This may select a range
  // that the desired value is outside of, but this is often preferred.  For example, if the
  // desired frame rate is 29.97, the range (30, 30) is probably more desirable than the
  // range (15, 30).
  int[] selectedFpsRange = null;
  int minDiff = Integer.MAX_VALUE;
  for (int[] range : camera.getParameters().getSupportedPreviewFpsRange()) {
    int deltaMin = desiredPreviewFpsScaled - range[Camera.Parameters.PREVIEW_FPS_MIN_INDEX];
    int deltaMax = desiredPreviewFpsScaled - range[Camera.Parameters.PREVIEW_FPS_MAX_INDEX];
    int diff = Math.abs(deltaMin) + Math.abs(deltaMax);
    if (diff < minDiff) {
      selectedFpsRange = range;
      minDiff = diff;
    }
  }
  return selectedFpsRange;
}
 
源代码12 项目: TikTok   文件: CameraEngine.java
/**
     * ------------- 设置闪光灯模式 ------------------
     * @param flashMode
     */
    public static void setFlashMode(int flashMode){
        try{
            Camera.Parameters parameters = camera.getParameters();
            if(flashMode == FLASH_MODE_OFF){
                parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
            }else if(flashMode == FLASH_MODE_ON){
                parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
            }else{
                parameters.setFlashMode(Camera.Parameters.FLASH_MODE_AUTO);
            }
//        CacheUtil.putInt(AppUtil.getApplicationContext(), FLASH_MODE, flashMode);
            camera.setParameters(parameters);
        }catch (Exception e){
            e.printStackTrace();
        }

    }
 
源代码13 项目: Camera2   文件: AndroidCameraAgentImpl.java
@Deprecated
@Override
public void setParameters(final Parameters params) {
    if (params == null) {
        Log.v(TAG, "null parameters in setParameters()");
        return;
    }
    final String flattenedParameters = params.flatten();
    try {
        mDispatchThread.runJob(new Runnable() {
            @Override
            public void run() {
                mCameraState.waitForStates(AndroidCameraStateHolder.CAMERA_IDLE |
                        AndroidCameraStateHolder.CAMERA_UNLOCKED);
                mCameraHandler.obtainMessage(CameraActions.SET_PARAMETERS, flattenedParameters)
                        .sendToTarget();
            }
        });
    } catch (final RuntimeException ex) {
        mCameraAgent.getCameraExceptionHandler().onDispatchThreadException(ex);
    }
}
 
源代码14 项目: Camera2   文件: AndroidCameraAgentImpl.java
@Override
public String dumpDeviceSettings() {
    Parameters parameters = getParameters();
    if (parameters != null) {
        String flattened = getParameters().flatten();
        StringTokenizer tokenizer = new StringTokenizer(flattened, ";");
        String dumpedSettings = new String();
        while (tokenizer.hasMoreElements()) {
            dumpedSettings += tokenizer.nextToken() + '\n';
        }

        return dumpedSettings;
    } else {
        return "[no parameters retrieved]";
    }
}
 
源代码15 项目: Ti-Android-CameraView   文件: CameraViewProxy.java
/**
 * Function to determine if flash support is available
 * @return Boolean Flash Support
 */
private boolean hasFlash(){
	Camera cam = ((CameraView) view).currentCameraInstance();
	Parameters params = cam.getParameters();
    List<String> flashModes = params.getSupportedFlashModes();
    if(flashModes == null) {
        return false;
    }

    for(String flashMode : flashModes) {
        if(Parameters.FLASH_MODE_ON.equals(flashMode)) {
            return true;
        }
    }

    return false;
}
 
源代码16 项目: fast_qr_reader_view   文件: CameraSource.java
/**
 * Selects the most suitable preview frames per second range, given the desired frames per second.
 *
 * @param camera the camera to select a frames per second range from
 * @param desiredPreviewFps the desired frames per second for the camera preview frames
 * @return the selected preview frames per second range
 */
@SuppressLint("InlinedApi")
private static int[] selectPreviewFpsRange(Camera camera, float desiredPreviewFps) {
  // The camera API uses integers scaled by a factor of 1000 instead of floating-point frame
  // rates.
  int desiredPreviewFpsScaled = (int) (desiredPreviewFps * 1000.0f);

  // The method for selecting the best range is to minimize the sum of the differences between
  // the desired value and the upper and lower bounds of the range.  This may select a range
  // that the desired value is outside of, but this is often preferred.  For example, if the
  // desired frame rate is 29.97, the range (30, 30) is probably more desirable than the
  // range (15, 30).
  int[] selectedFpsRange = null;
  int minDiff = Integer.MAX_VALUE;
  List<int[]> previewFpsRangeList = camera.getParameters().getSupportedPreviewFpsRange();
  for (int[] range : previewFpsRangeList) {
    int deltaMin = desiredPreviewFpsScaled - range[Camera.Parameters.PREVIEW_FPS_MIN_INDEX];
    int deltaMax = desiredPreviewFpsScaled - range[Camera.Parameters.PREVIEW_FPS_MAX_INDEX];
    int diff = Math.abs(deltaMin) + Math.abs(deltaMax);
    if (diff < minDiff) {
      selectedFpsRange = range;
      minDiff = diff;
    }
  }
  return selectedFpsRange;
}
 
源代码17 项目: kickflip-android-sdk   文件: CameraEncoder.java
/**
 * Attempts to find a preview size that matches the provided width and height (which
 * specify the dimensions of the encoded video).  If it fails to find a match it just
 * uses the default preview size.
 * <p/>
 * TODO: should do a best-fit match.
 */
private static void choosePreviewSize(Camera.Parameters parms, int width, int height) {
    // We should make sure that the requested MPEG size is less than the preferred
    // size, and has the same aspect ratio.
    Camera.Size ppsfv = parms.getPreferredPreviewSizeForVideo();
    if (ppsfv != null && VERBOSE) {
        Log.d(TAG, "Camera preferred preview size for video is " +
                ppsfv.width + "x" + ppsfv.height);
    }

    for (Camera.Size size : parms.getSupportedPreviewSizes()) {
        if (size.width == width && size.height == height) {
            parms.setPreviewSize(width, height);
            return;
        }
    }

    Log.w(TAG, "Unable to set preview size to " + width + "x" + height);
    if (ppsfv != null) {
        parms.setPreviewSize(ppsfv.width, ppsfv.height);
    }
    // else use whatever the default size is
}
 
@SuppressLint("NewApi")
private boolean initCamera() {
	try {
		if (frontCamera == 0) {
			mCamera = Camera.open(CameraInfo.CAMERA_FACING_BACK);
		} else {
			mCamera = Camera.open(CameraInfo.CAMERA_FACING_FRONT);
		}
		Camera.Parameters camParams = mCamera.getParameters();
		mCamera.lock();
		mSurfaceHolder = mVideoView.getHolder();
		mSurfaceHolder.addCallback(this);
		mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
		mCamera.setDisplayOrientation(90);

	} catch (RuntimeException ex) {
		EMLog.e("video", "init Camera fail " + ex.getMessage());
		return false;
	}
	return true;
}
 
源代码19 项目: Eye-blink-detector   文件: FaceScanner.java
/**
 * Set the flash on or off
 *
 * @param b desired flash state
 * @return <code>true</code> if successful
 */

public boolean setFlashOn(boolean b) {
    if (mCamera != null) {
        try {
            Camera.Parameters params = mCamera.getParameters();
            params.setFlashMode(b ? Parameters.FLASH_MODE_TORCH : Parameters.FLASH_MODE_OFF);
            mCamera.setParameters(params);

            return true;
        } catch (RuntimeException e) {
            Log.w(TAG, "Could not set flash mode: " + e);
        }
    }
    return false;
}
 
源代码20 项目: code-scanner   文件: CodeScanner.java
/**
 * Set current zoom value (between {@code 0} and {@link Parameters#getMaxZoom()}, if larger,
 * max zoom value will be set
 */
public void setZoom(final int zoom) {
    if (zoom < 0) {
        throw new IllegalArgumentException("Zoom value must be greater than or equal to zero");
    }
    synchronized (mInitializeLock) {
        if (zoom != mZoom) {
            mZoom = zoom;
            if (mInitialized) {
                final DecoderWrapper decoderWrapper = mDecoderWrapper;
                if (decoderWrapper != null) {
                    final Camera camera = decoderWrapper.getCamera();
                    final Parameters parameters = camera.getParameters();
                    Utils.setZoom(parameters, zoom);
                    camera.setParameters(parameters);
                }
            }
        }
    }
    mZoom = zoom;
}
 
源代码21 项目: code-scanner   文件: CodeScanner.java
private void setFlashEnabledInternal(final boolean flashEnabled) {
    try {
        final DecoderWrapper decoderWrapper = mDecoderWrapper;
        if (decoderWrapper != null) {
            final Camera camera = decoderWrapper.getCamera();
            final Parameters parameters = camera.getParameters();
            if (parameters == null) {
                return;
            }
            if (flashEnabled) {
                Utils.setFlashMode(parameters, Parameters.FLASH_MODE_TORCH);
            } else {
                Utils.setFlashMode(parameters, Parameters.FLASH_MODE_OFF);
            }
            camera.setParameters(parameters);
        }
    } catch (final Exception ignored) {
    }
}
 
源代码22 项目: VideoCamera   文件: CameraWrapper.java
@TargetApi(VERSION_CODES.HONEYCOMB)
protected List<Size> getSupportedVideoSizes(int currentSdkInt) {
    Parameters params = mNativeCamera.getNativeCameraParameters();

    List<Size> supportedVideoSizes;
    if (currentSdkInt < Build.VERSION_CODES.HONEYCOMB) {
        CLog.e(CLog.CAMERA, "Using supportedPreviewSizes iso supportedVideoSizes due to API restriction");
        supportedVideoSizes = params.getSupportedPreviewSizes();
    } else if (params.getSupportedVideoSizes() == null) {
        CLog.e(CLog.CAMERA, "Using supportedPreviewSizes because supportedVideoSizes is null");
        supportedVideoSizes = params.getSupportedPreviewSizes();
    } else {
        supportedVideoSizes = params.getSupportedVideoSizes();
    }

    return supportedVideoSizes;
}
 
源代码23 项目: Android-IP-Camera   文件: CameraPreview.java
public CameraPreview(Context context, Camera camera) {
    super(context);
    mCamera = camera;

    mHolder = getHolder();
    mHolder.addCallback(this);
    // deprecated setting, but required on Android versions prior to 3.0
    mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    Parameters params = mCamera.getParameters();
    List<Size> sizes = params.getSupportedPreviewSizes();
    for (Size s : sizes) {
    	Log.i(TAG, "preview size = " + s.width + ", " + s.height);
    }
    
    params.setPreviewSize(640, 480); // set preview size. smaller is better
    mCamera.setParameters(params);
    
    mPreviewSize = mCamera.getParameters().getPreviewSize();
    Log.i(TAG, "preview size = " + mPreviewSize.width + ", " + mPreviewSize.height);
    
    int format = mCamera.getParameters().getPreviewFormat();
    mFrameLength = mPreviewSize.width * mPreviewSize.height * ImageFormat.getBitsPerPixel(format) / 8;
}
 
源代码24 项目: code-scanner   文件: Utils.java
public static void setAutoFocusMode(@NonNull final Parameters parameters,
        final AutoFocusMode autoFocusMode) {
    final List<String> focusModes = parameters.getSupportedFocusModes();
    if (focusModes == null || focusModes.isEmpty()) {
        return;
    }
    if (autoFocusMode == AutoFocusMode.CONTINUOUS) {
        if (Parameters.FOCUS_MODE_CONTINUOUS_PICTURE.equals(parameters.getFocusMode())) {
            return;
        }
        if (focusModes.contains(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {
            parameters.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
            return;
        }
    }
    if (Parameters.FOCUS_MODE_AUTO.equals(parameters.getFocusMode())) {
        return;
    }
    if (focusModes.contains(Parameters.FOCUS_MODE_AUTO)) {
        parameters.setFocusMode(Parameters.FOCUS_MODE_AUTO);
    }
}
 
源代码25 项目: LLApp   文件: CameraView.java
/**
 *  设置相机缩放级别
 *  @param zoom
 */
@Override
public void setZoom(int zoom){
	if(mCamera==null) return;
	Parameters parameters;
	//注意此处为录像模式下的setZoom方式。在Camera.unlock之后,调用getParameters方法会引起android框架底层的异常
	//stackoverflow上看到的解释是由于多线程同时访问Camera导致的冲突,所以在此使用录像前保存的mParameters。
	if(mParameters!=null)
		parameters=mParameters;
	else {
		parameters=mCamera.getParameters();
	}

	if(!parameters.isZoomSupported()) return;
	parameters.setZoom(zoom);
	mCamera.setParameters(parameters);
	mZoom=zoom;
}
 
源代码26 项目: mollyim-android   文件: CameraUtils.java
public static @Nullable Size getPreferredPreviewSize(int displayOrientation,
                                                     int width,
                                                     int height,
                                                     @NonNull Parameters parameters) {
  final int    targetWidth  = displayOrientation % 180 == 90 ? height : width;
  final int    targetHeight = displayOrientation % 180 == 90 ? width  : height;
  final double targetRatio  = (double) targetWidth / targetHeight;

  Log.d(TAG, String.format(Locale.US,
                           "getPreferredPreviewSize(%d, %d, %d) -> target %dx%d, AR %.02f",
                           displayOrientation, width, height,
                           targetWidth, targetHeight, targetRatio));

  List<Size> sizes     = parameters.getSupportedPreviewSizes();
  List<Size> ideals    = new LinkedList<>();
  List<Size> bigEnough = new LinkedList<>();

  for (Size size : sizes) {
    Log.d(TAG, String.format(Locale.US, "  %dx%d (%.02f)", size.width, size.height, (float)size.width / size.height));

    if (size.height == size.width * targetRatio && size.height >= targetHeight && size.width >= targetWidth) {
      ideals.add(size);
      Log.d(TAG, "    (ideal ratio)");
    } else if (size.width >= targetWidth && size.height >= targetHeight) {
      bigEnough.add(size);
      Log.d(TAG, "    (good size, suboptimal ratio)");
    }
  }

  if      (!ideals.isEmpty())    return Collections.min(ideals, new AreaComparator());
  else if (!bigEnough.isEmpty()) return Collections.min(bigEnough, new AspectRatioComparator(targetRatio));
  else                           return Collections.max(sizes, new AreaComparator());
}
 
源代码27 项目: mollyim-android   文件: CameraView.java
@TargetApi(14)
private void onCameraReady(final @NonNull Camera camera) {
  final Parameters parameters = camera.getParameters();

  if (VERSION.SDK_INT >= 14) {
    parameters.setRecordingHint(true);
    final List<String> focusModes = parameters.getSupportedFocusModes();
    if (focusModes.contains(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {
      parameters.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
    } else if (focusModes.contains(Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) {
      parameters.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
    }
  }

  displayOrientation = CameraUtils.getCameraDisplayOrientation(getActivity(), getCameraInfo());
  camera.setDisplayOrientation(displayOrientation);
  camera.setParameters(parameters);
  enqueueTask(new PostInitializationTask<Void>() {
    @Override
    protected Void onRunBackground() {
      try {
        camera.setPreviewDisplay(surface.getHolder());
        startPreview(parameters);
      } catch (Exception e) {
        Log.w(TAG, "couldn't set preview display", e);
      }
      return null;
    }
  });
}
 
源代码28 项目: android_9.0.0_r45   文件: LegacyMetadataMapper.java
/**
 * Create characteristics for a legacy device by mapping the {@code parameters}
 * and {@code info}
 *
 * @param parameters A non-{@code null} parameters set
 * @param info Camera info with camera facing direction and angle of orientation
 *
 * @return static camera characteristics for a camera device
 *
 * @throws NullPointerException if any of the args were {@code null}
 */
public static CameraCharacteristics createCharacteristics(Camera.Parameters parameters,
        CameraInfo info) {
    checkNotNull(parameters, "parameters must not be null");
    checkNotNull(info, "info must not be null");

    String paramStr = parameters.flatten();
    android.hardware.CameraInfo outerInfo = new android.hardware.CameraInfo();
    outerInfo.info = info;

    return createCharacteristics(paramStr, outerInfo);
}
 
源代码29 项目: Augendiagnose   文件: Camera1Handler.java
@Override
public final void setFocusMode(@Nullable final FocusMode focusMode) {
	if (focusMode == null) {
		mCurrentFocusMode = null;
		return;
	}

	switch (focusMode) {
	case AUTO:
		mCurrentFocusMode = Parameters.FOCUS_MODE_AUTO;
		break;
	case MACRO:
		mCurrentFocusMode = Parameters.FOCUS_MODE_MACRO;
		break;
	case CONTINUOUS:
		mCurrentFocusMode = Parameters.FOCUS_MODE_CONTINUOUS_PICTURE;
		break;
	case FIXED:
		mCurrentFocusMode = Parameters.FOCUS_MODE_FIXED;
		break;
	default:
		mCurrentFocusMode = null;
		break;
	}

	updateFocus();
}
 
源代码30 项目: o2oa   文件: CameraManager.java
public void closeLight()  //关闭闪光灯
{
    if(camera!=null)
    {
         Parameters parameter=camera.getParameters();  
         parameter.setFlashMode(Parameters.FLASH_MODE_OFF); 
         camera.setParameters(parameter);
    }
}
 
 类所在包
 同包方法