Java 类android.media.CameraProfile 实例源码

项目:AndroidMedia    文件:Camera.java   
public static int getQualityNumber(String jpegQuality) {
    Integer quality = mHashMap.get(jpegQuality);
    if (quality == null) {
        Log.w(TAG, "Unknown Jpeg quality: " + jpegQuality);
        return DEFAULT_QUALITY;
    }
    return CameraProfile.getJpegEncodingQualityParameter(quality.intValue());
}
项目:HallMonitor    文件:CameraHelper.java   
public static void updateCameraParametersPreference(Context ctx, Camera cam) {


        // get Camera parameters
        Camera.Parameters params = cam.getParameters();

        List<String> focusModes = params.getSupportedFocusModes();
        if (focusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {
            // set the focus mode
            params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
        }

        //set the camera picture size
        initialCameraPictureSize(ctx, params);

        // Set JPEG quality.
        int jpegQuality = CameraProfile.getJpegEncodingQualityParameter(0,
                CameraProfile.QUALITY_HIGH);
        params.setJpegQuality(jpegQuality);

        List<String> flashModes = params.getSupportedFlashModes();
        if (flashModes.contains(Camera.Parameters.FLASH_MODE_AUTO)) {
            // set the focus mode
            params.setFlashMode(Camera.Parameters.FLASH_MODE_AUTO);
        }

        List<String> whiteBalanceModes = params.getSupportedWhiteBalance();
        if (whiteBalanceModes.contains(Camera.Parameters.WHITE_BALANCE_AUTO)) {
            // set the focus mode
            params.setWhiteBalance(Camera.Parameters.WHITE_BALANCE_AUTO);
        }

        // set Camera parameters
        cam.setParameters(params);

    }
项目:Camera2    文件:PhotoModule.java   
private void updateParametersPictureQuality() {
    int jpegQuality = CameraProfile.getJpegEncodingQualityParameter(mCameraId,
            CameraProfile.QUALITY_HIGH);
    mCameraSettings.setPhotoJpegCompressionQuality(jpegQuality);
}
项目:Camera2    文件:VideoModule.java   
@SuppressWarnings("deprecation")
private void setCameraParameters() {
    SettingsManager settingsManager = mActivity.getSettingsManager();

    // Update Desired Preview size in case video camera resolution has changed.
    updateDesiredPreviewSize();

    mCameraSettings.setPreviewSize(new Size(mDesiredPreviewWidth, mDesiredPreviewHeight));
    // This is required for Samsung SGH-I337 and probably other Samsung S4 versions
    if (Build.BRAND.toLowerCase().contains("samsung")) {
        mCameraSettings.setSetting("video-size",
                mProfile.videoFrameWidth + "x" + mProfile.videoFrameHeight);
    }
    int[] fpsRange =
            CameraUtil.getMaxPreviewFpsRange(mCameraCapabilities.getSupportedPreviewFpsRange());
    if (fpsRange.length > 0) {
        mCameraSettings.setPreviewFpsRange(fpsRange[0], fpsRange[1]);
    } else {
        mCameraSettings.setPreviewFrameRate(mProfile.videoFrameRate);
    }

    enableTorchMode(Keys.isCameraBackFacing(settingsManager, mAppController.getModuleScope()));

    // Set zoom.
    if (mCameraCapabilities.supports(CameraCapabilities.Feature.ZOOM)) {
        mCameraSettings.setZoomRatio(mZoomValue);
    }
    updateFocusParameters();

    mCameraSettings.setRecordingHintEnabled(true);

    if (mCameraCapabilities.supports(CameraCapabilities.Feature.VIDEO_STABILIZATION)) {
        mCameraSettings.setVideoStabilization(true);
    }

    // Set picture size.
    // The logic here is different from the logic in still-mode camera.
    // There we determine the preview size based on the picture size, but
    // here we determine the picture size based on the preview size.
    List<Size> supported = mCameraCapabilities.getSupportedPhotoSizes();
    Size optimalSize = CameraUtil.getOptimalVideoSnapshotPictureSize(supported,
            mDesiredPreviewWidth, mDesiredPreviewHeight);
    Size original = new Size(mCameraSettings.getCurrentPhotoSize());
    if (!original.equals(optimalSize)) {
        mCameraSettings.setPhotoSize(optimalSize);
    }
    Log.d(TAG, "Video snapshot size is " + optimalSize);

    // Set JPEG quality.
    int jpegQuality = CameraProfile.getJpegEncodingQualityParameter(mCameraId,
            CameraProfile.QUALITY_HIGH);
    mCameraSettings.setPhotoJpegCompressionQuality(jpegQuality);

    if (mCameraDevice != null) {
        mCameraDevice.applySettings(mCameraSettings);
        // Nexus 5 through KitKat 4.4.2 requires a second call to
        // .setParameters() for frame rate settings to take effect.
        mCameraDevice.applySettings(mCameraSettings);
    }

    // Update UI based on the new parameters.
    mUI.updateOnScreenIndicators(mCameraSettings);
}
项目:ShoppingMall    文件:TakePhotoFragment.java   
@SuppressWarnings("deprecation")
private void initCamera(SurfaceHolder holder, int width, int height) {
    try {
        if (mCamera == null) {
            mCamera = Camera.open(0);
        }
        holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        Camera.Parameters parameters = mCamera.getParameters();
        if (flashModeString != null) {
            parameters.setFlashMode(flashModeString);
        }
        if (parameters.getSupportedFocusModes().contains(Camera.Parameters.FOCUS_MODE_AUTO)) {
            parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
        }
        // flashModeString = Camera.Parameters.FLASH_MODE_OFF;
        parameters.setPictureFormat(ImageFormat.JPEG);
        int jpegQuality = CameraProfile.getJpegEncodingQualityParameter(0, CameraProfile.QUALITY_MEDIUM);
        parameters.setJpegQuality(jpegQuality);
        List<Camera.Size> previewSizes = parameters.getSupportedPreviewSizes();
        // Camera.Size preSize = getOptimalPicSize(previewSizes);
        Camera.Size preSize = getOptimalPicSize(previewSizes);
        if (preSize != null) {
            parameters.setPreviewSize(preSize.width, preSize.height);
        }
        List<Camera.Size> picSizes = parameters.getSupportedPictureSizes();
        Camera.Size picSize = getOptimalPicSize(picSizes);
        if (picSize != null) {
            parameters.setPictureSize(picSize.width, picSize.height);
        }
        mCamera.setParameters(parameters);
        mCamera.setDisplayOrientation(getPreviewDegree(getBackOpActivity()));
        mCamera.setPreviewDisplay(holder);
        mCamera.startPreview();         
        mCamera.autoFocus(new AutoFocusCallback() {
            @Override
            public void onAutoFocus(boolean success, Camera camera) {
                isFocusing = false;
            }
        });
        isFocusing = true;
    } catch (Exception e) {
        if (mCamera != null) {
            mCamera.release();
            mCamera = null;
        }
        e.printStackTrace();
    }
}
项目:nexus-camera    文件:VideoModule.java   
@SuppressWarnings("deprecation")
private void setCameraParameters() {
    mParameters.setPreviewSize(mDesiredPreviewWidth, mDesiredPreviewHeight);
    int[] fpsRange = CameraUtil.getMaxPreviewFpsRange(mParameters);
    if (fpsRange.length > 0) {
        mParameters.setPreviewFpsRange(
                fpsRange[Parameters.PREVIEW_FPS_MIN_INDEX],
                fpsRange[Parameters.PREVIEW_FPS_MAX_INDEX]);
    } else {
        mParameters.setPreviewFrameRate(mProfile.videoFrameRate);
    }

    forceFlashOffIfSupported(!mUI.isVisible());

    // Set white balance parameter.
    String whiteBalance = mPreferences.getString(
            CameraSettings.KEY_WHITE_BALANCE,
            mActivity.getString(R.string.pref_camera_whitebalance_default));
    if (isSupported(whiteBalance,
            mParameters.getSupportedWhiteBalance())) {
        mParameters.setWhiteBalance(whiteBalance);
    } else {
        whiteBalance = mParameters.getWhiteBalance();
        if (whiteBalance == null) {
            whiteBalance = Parameters.WHITE_BALANCE_AUTO;
        }
    }

    // Set zoom.
    if (mParameters.isZoomSupported()) {
        mParameters.setZoom(mZoomValue);
    }

    // Set continuous autofocus.
    List<String> supportedFocus = mParameters.getSupportedFocusModes();
    if (isSupported(Parameters.FOCUS_MODE_CONTINUOUS_VIDEO, supportedFocus)) {
        mParameters.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
    }

    mParameters.set(CameraUtil.RECORDING_HINT, CameraUtil.TRUE);

    // Enable video stabilization. Convenience methods not available in API
    // level <= 14
    String vstabSupported = mParameters.get("video-stabilization-supported");
    if ("true".equals(vstabSupported)) {
        mParameters.set("video-stabilization", "true");
    }

    // Set picture size.
    // The logic here is different from the logic in still-mode camera.
    // There we determine the preview size based on the picture size, but
    // here we determine the picture size based on the preview size.
    List<Size> supported = mParameters.getSupportedPictureSizes();
    Size optimalSize = CameraUtil.getOptimalVideoSnapshotPictureSize(supported,
            (double) mDesiredPreviewWidth / mDesiredPreviewHeight);
    Size original = mParameters.getPictureSize();
    if (!original.equals(optimalSize)) {
        mParameters.setPictureSize(optimalSize.width, optimalSize.height);
    }
    Log.v(TAG, "Video snapshot size is " + optimalSize.width + "x" +
            optimalSize.height);

    // Set JPEG quality.
    int jpegQuality = CameraProfile.getJpegEncodingQualityParameter(mCameraId,
            CameraProfile.QUALITY_HIGH);
    mParameters.setJpegQuality(jpegQuality);

    mCameraDevice.setParameters(mParameters);
    // Keep preview size up to date.
    mParameters = mCameraDevice.getParameters();

    // Update UI based on the new parameters.
    mUI.updateOnScreenIndicators(mParameters, mPreferences);
}