Android系统Camera参数设置

一、应用程序

1.Camera应用使用的参数对象

frameworks/base/core/java/android/hardware/Camera.java
public class Parameters {
 
}

2.使用

Camera拍照预览:

packages/apps/Camera/src/com/android/camera/CameraModule.java

mInitialParams = mCameraDevice.getParameters();
mInitialParams.getSupportedPreviewSizes();
mInitialParams.setPreviewSize(maxSize.width,maxSize.height);
Camera拍照:

mInitialParams.setPictureSize(maxSize.width,maxSize.height);
mCameraDevice.setParameters(mInitialParams);
Camera录像预览:

packages/apps/Camera/src/com/android/camera/VideoModule.java

InitialParams = vCameraDevice.getParameters();
vInitialParams.getSupportedVideoSizes();
mParameters.setPreviewSize();
vCameraDevice.setParameters(mParameters);

二、MediaRecorder

1.CameraSource使用的参数对象

frameworks/av/camera/CameraParameters.cpp

void CameraParameters::getVideoSize(int *width, int *height) const{

}

2.使用

frameworks/av/media/libstagefright/CameraSource.cpp

status_t CameraSource::checkVideoSize(
         const CameraParameters& params,
         int32_t width, int32_t height) {
  params.getVideoSize(&frameWidthActual, &frameHeightActual);
  if (frameWidthActual != width || frameHeightActual != height) {
    ALOGE("Failed to set video frame size to %dx%d. " "The actual video size is %dx%d ", width, height, frameWidthActual, frameHeightActual);
  }
}
三、CameraHAL

1.CameraHAL使用的参数对象

frameworks/av/camera/CameraParameters.cpp

2.使用

hardware/amlogic/camera/CameraHal.cpp

int CameraHal::setParameters(const CameraParameters& params){
  //add by tank for CameraSource video recorder
  mParameters.setVideoSize(w,h);
  //end tan 2013-12-3
  // Handle RECORDING_HINT to Set/Reset Video Mode Parameters
}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
设置Android相机的镜像效果,您可以使用Camera.Parameters类中的setPreviewSize()方法来设置预览大小,然后调用setPreviewFpsRange()方法设置预览帧率范围。在设置预览大小和帧率之后,您可以使用setPreviewDisplay()方法将SurfaceView与相机绑定,并调用startPreview()方法开始预览。 如果您想要设置镜像效果,可以使用setPreviewSize()方法设置预览大小,并在Camera.Parameters类中使用setPreviewFlipped()方法来设置是否翻转预览。如果您想要水平翻转预览,可以将setPreviewFlipped()方法的第一个参数设置为true,第二个参数设置为false。如果您想要垂直翻转预览,可以将setPreviewFlipped()方法的第一个参数设置为false,第二个参数设置为true。 以下是一个示例代码片段,演示如何设置相机的镜像效果: ```java Camera camera = Camera.open(); Camera.Parameters parameters = camera.getParameters(); // 设置预览大小 parameters.setPreviewSize(640, 480); // 设置水平翻转预览 parameters.setPreviewFlipped(true, false); camera.setParameters(parameters); // 绑定SurfaceView并开始预览 SurfaceView surfaceView = findViewById(R.id.surface_view); SurfaceHolder surfaceHolder = surfaceView.getHolder(); camera.setPreviewDisplay(surfaceHolder); camera.startPreview(); ``` 在上面的代码中,我们使用setPreviewSize()方法设置预览大小为640x480,然后使用setPreviewFlipped()方法设置水平翻转预览。最后,我们将SurfaceView与相机绑定,并调用startPreview()方法开始预览。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值