类概述相机的服务设置。 使相机参数生效,应用程序必须调用 不同的设备可能有不同的相机功能,如图片的大小或闪光模式。应用程序应该查询相机能力之前设置参数。例如,应用应该打电话 概要
常数public static final Stringflash_mode_auto加入API级别5
闪光灯会自动在需要的时候被解雇。闪光会被解雇预览时,自动对焦,或快照取决于驱动。 定值: “自动”
public static final int
|
value | 曝光补偿指数。有效值的范围从getminexposurecompensation() (含)至getmaxexposurecompensation() (含)。0意味着暴露不调整。应用程序应该调用
getminexposurecompensation和getmaxexposurecompensation到知道曝光补偿的支持。 |
---|
集的EXIF缩略图的JPEG图片的尺寸。如果应用设置宽度和高度为0,不含 EXIF缩略图。
应用需要考虑的显示方向。看到setpreviewsize(int,int)
参考。
设置图片的尺寸。
应用需要考虑的显示方向。看到setpreviewsize(int,int)
参考。
设置预览照片的图像格式。
如果这不叫,默认的格式将nv21
,这使用nv21编码格式。
使用getsupportedpreviewformats()
得到的列表可预览格式。
这是强烈建议要么nv21
或YV12
使用,因为他们的相机设备支持。
以YV12,接收到的图像缓冲区不一定紧凑,有可能在每一行的像素数据的端填充物,如YV12
。相机的回调数据,可以假设步幅的Y和紫外,数据是尽可能满足对齐。那就是,如果预览的大小宽度x高度然后,方程描述缓冲指数为行开始Y为Y平面和行C为U和V
飞机:
yStride = (int) ceil(width / 16.0) * 16;
uvStride = (int) ceil( (yStride / 2) / 16.0) * 16;
ySize = yStride * height;
uvSize = uvStride * height / 2;
yRowIndex = yStride * y;
uRowIndex = ySize + uvSize + uvStride * c;
vRowIndex = ySize + uvStride * c;
size = ySize + uvSize * 2;
pixel_format | 所需的预览图片格式,通过一个定义imageformat 常数。(例如,imageformat.nv21(默认),或imageformat.yv12) |
---|
最小和最大帧设置预览。该控制预览帧的速率接收camera.previewcallback
。最小和最大预览帧必须是一个元素getsupportedpreviewfpsrange()
。
RuntimeException | 如果FPS范围无效。 |
---|
设置预览照片的尺寸。如果预览已经开始,应用程序应该停止预览先改变预览大小。两侧的宽度和高度都是基于 。这是,预览的大小是在由显示方向旋转的大小。这样的应用需要而设置预览大小考虑显示方向。例如,假设相机支持两480x320和块的预览图片。应用程序要比3:2 预览。如果显示方向设置为0或180,预览大小应设置为480x320。如果显示方向设置为90或270 ,预览大小应设置为320x480。显示取向也应同时设置图片的大小和缩略图大小考虑。
集记录模式的提示。这告诉相机,应用的目的是记录视频start()
,不采取照片TakePicture(camera.shuttercallback,camera.picturecallback,camera.picturecallback,相机。picturecallback)
。使用这个提示可以允许mediarecorder。start()启动得更快或在输出毛刺少。这应该是在最好的结果开始预览称,但可以预览时活性变化。默认值为false。
应用程序仍然可以takepicture()当呼叫提示是真的还是叫 start()时mediarecorder提示。但是性能可能更糟。
hint | 如果应用程序打算录制视频的使用mediarecorder 。 |
---|
集度相对于相机的方向顺时针旋转角度。这会影响 JPEG图片回来camera.picturecallback
。相机的驱动程序,可以设置定位在EXIF标题没有旋转图片。或驱动程序可能旋转图片和EXIF缩略图。如果JPEG图片旋转,在EXIF标题方向将丢失或1(行
# 0顶部和柱# 0左侧)。
如果应用程序想旋转图像匹配的用户看到的方向,应用程序应该使用orientationeventlistener
和camera.camerainfo
。从
orientationeventlistener价值是相对的自然定位装置。camerainfo.orientation之间的角度是摄像机取向和自然的定位装置。两个的总和是背对着照相机的旋转角度。这两种不同的是旋转角度为前置摄像头。请注意,JPEG 的前置摄像头图片并不反映在显示预览。
例如,假设设备的固有的方向是肖像。该装置是顺时针旋转270度,使装置取向是270。假设一个后置的摄像头传感器安装在景观和相机传感器的顶边与自然取向的显示右边界对齐。所以摄像机取向是90。转动应设置为0(270 + 90)。
参考代码如下。
public void onOrientationChanged(int orientation) { if (orientation == ORIENTATION_UNKNOWN) return; android.hardware.Camera.CameraInfo info = new android.hardware.Camera.CameraInfo(); android.hardware.Camera.getCameraInfo(cameraId, info); orientation = (orientation + 45) / 90 * 90; int rotation = 0; if (info.facing == CameraInfo.CAMERA_FACING_FRONT) { rotation = (info.orientation - orientation + 360) % 360; } else { // back-facing camera rotation = (info.orientation + orientation) % 360; } mParameters.setRotation(rotation); }
illegalargumentexception | 如果旋转值无效。 |
---|
设置场景模式。变化的场景模式可能会覆盖其他参数(如闪光模式,对焦模式,白平衡)。为的例子,假设原来的闪光模式是在支持Flash 模式开/关。在夜景模式,闪光模式和闪光模式支持的可更改了。在设置的场景模式,程序应该调用getparameters知道一些参数。
启用和禁用视频稳定。使用isvideostabilizationsupported()
要确定是否调用此方法是有效的。
视频稳定减少因晃动的摄像机运动在两个预览流和视频记录,包括从预览回调接收数据。它在不减少运动模糊图像TakePicture
。
视频稳定可以启用在预览或记录是活跃的残疾,但切换可能导致在视频流可以在录制的视频是不可取的一跳。
设置缩放值。如果相机放大(值>0),图片的实际大小可能小于图片大小设置。应用尺寸后,图片是返回可以检查实际的图片camera.picturecallback
。预览的大小保持在相同的变焦。应用程序应该检查iszoomsupported()
在使用这个方法。
value | 变焦值。有效的范围是0到getmaxzoom() 。 |
---|
|
来自: jnstyle > 《android开发》