public class
Camera.Parameters
extends Object
java.lang.Object | |
↳ | android.hardware.Camera.Parameters |
Class Overview
类概述
相机的服务设置。
使相机参数生效,应用程序必须调用setparameters(相机参数。)
。例如,在setwhitebalance(字符串)
被称为,白平衡不实际上改变了之前setparameters(相机参数。)
被称为参数变化的对象。
不同的设备可能有不同的相机功能,如图片的大小或闪光模式。应用程序应该查询相机能力之前设置参数。例如,应用应该打电话getsupportedcoloreffects()
在呼叫setcoloreffect(字符串)
。如果相机不支持颜色的影响,getsupportedcoloreffects()
将返回null。
概要
公共方法 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | flatten()
创建一套这个对象的所有参数的单个字符串参数。
|
||||||||||
String | get(String key)
返回一个字符串参数的值。
|
||||||||||
String | getantibanding()
获取当前antibanding设置。
|
||||||||||
boolean | getautoexposurelock()
获取自动曝光锁定状态。
|
||||||||||
boolean | getautowhitebalancelock()
获取自动白平衡锁的状态。
|
||||||||||
String | getcoloreffect()
获取当前的颜色设置效果。
|
||||||||||
int | getexposurecompensation()
获取当前曝光补偿指数。
|
||||||||||
float | getexposurecompensationstep()
获取曝光补偿的步骤。
|
||||||||||
String | getflashmode()
获取当前的闪光模式设定。
|
||||||||||
float | getfocallength()
变焦距(毫米)的相机。
|
||||||||||
List<Camera.Area> | getfocusareas()
获取当前的重点领域。 |
||||||||||
void | getfocusdistances(浮动[ ]输出)
从摄像机到一个对象似乎是焦点得距离。 |
||||||||||
String | getfocusmode()
获取当前的焦点模式设置。
|
||||||||||
float | gethorizontalviewangle()
获取水平角度来看。
|
||||||||||
int | 返回一个值(字符串键)
返回一个整数参数的值。
|
||||||||||
int | getjpegquality()
收益质量的JPEG图像设置。
|
||||||||||
int | getjpegthumbnailquality()
返回质量的JPEG图片EXIF缩略图设置。
|
||||||||||
Camera.Size | getjpegthumbnailsize()
返回EXIF缩略图的JPEG图片的尺寸。
|
||||||||||
int | getmaxexposurecompensation()
得到的最大曝光补偿指数。
|
||||||||||
int | getmaxnumdetectedfaces()
获取人脸支持的最大数量。
|
||||||||||
int | getmaxnumfocusareas()
得到最多支持的重点领域。
|
||||||||||
int | getmaxnummeteringareas()
获取最大数量的计量领域的支持。
|
||||||||||
int | getmaxzoom()
得到的缩放所允许的最大值为快照。
|
||||||||||
List<Camera.Area> | getmeteringareas()
获取当前计量范围。 |
||||||||||
int | getminexposurecompensation()
获得最小的曝光补偿指数。
|
||||||||||
int | getpictureformat()
返回的照片图像格式。
|
||||||||||
Camera.Size | getpicturesize()
返回设置图片尺寸。
|
||||||||||
Camera.Size | getpreferredpreviewsizeforvideo()
返回优先推荐或预览大小(宽度和高度)像素的视频。
|
||||||||||
int | getpreviewformat()
返回预览帧的图像格式有
camera.previewcallback 。 |
||||||||||
void | getpreviewfpsrange(int [ ]范围)
返回当前预览的帧的最大和最小。
|
||||||||||
int | getpreviewframerate()
该方法被在API级别9。取代
getpreviewfpsrange(int [ ]) |
||||||||||
Camera.Size | getpreviewsize()
返回的尺寸设置预览图片。
|
||||||||||
String | getscenemode()
获取当前情景模式设置。
|
||||||||||
List<String> | getsupportedantibanding()
获取受支持的antibanding值。
|
||||||||||
List<String> | getsupportedcoloreffects()
获取受支持的颜色的影响。
|
||||||||||
List<String> | getsupportedflashmodes()
获取受支持的闪光模式。
|
||||||||||
List<String> | getsupportedfocusmodes()
获取受支持的对焦模式。
|
||||||||||
List<Camera.Size> | getsupportedjpegthumbnailsizes()
获取受支持的JPEG缩略图的大小。
|
||||||||||
List<Integer> | getsupportedpictureformats()
获取受支持的图片格式。
|
||||||||||
List<Camera.Size> | getsupportedpicturesizes()
获取受支持的图片大小。
|
||||||||||
List<Integer> | getsupportedpreviewformats()
获取受支持的预览格式。
|
||||||||||
List<int[]> | getsupportedpreviewfpsrange()
获取受支持的预览帧(帧每秒)的范围。
|
||||||||||
List<Integer> | getsupportedpreviewframerates()
该方法被在API级别9。取代
getsupportedpreviewfpsrange() |
||||||||||
List<Camera.Size> | getsupportedpreviewsizes()
获取受支持的预览图片。
|
||||||||||
List<String> | getsupportedscenemodes()
获取受支持的场景模式。
|
||||||||||
List<Camera.Size> | getsupportedvideosizes()
获取受支持的视频帧的大小,可以通过使用 mediarecorder。 |
||||||||||
List<String> | getsupportedwhitebalance()
获取受支持的白平衡。
|
||||||||||
float | getverticalviewangle()
获取垂直视角度。
|
||||||||||
boolean | getvideostabilization()
得到的视频稳定化的现状。
|
||||||||||
String | getwhitebalance()
获取当前白平衡设置。
|
||||||||||
int | getzoom()
获取当前的缩放值。
|
||||||||||
List<Integer> | getzoomratios()
获取所有的变焦缩放比例值。
|
||||||||||
boolean | isautoexposurelocksupported()
如果自动曝光锁定支持,返回true。
|
||||||||||
boolean | isautowhitebalancelocksupported()
如果自动白平衡锁定支持返回true。
|
||||||||||
boolean | issmoothzoomsupported()
如果顺利变焦支持返回true。
|
||||||||||
boolean | isvideosnapshotsupported()
如果视频快照支持返回true。 |
||||||||||
boolean | isvideostabilizationsupported()
如果视频稳定的支持,返回true。
|
||||||||||
boolean | iszoomsupported()
如果变焦支持返回true。
|
||||||||||
void | 拆下(字符串键) | ||||||||||
void | removegpsdata()
消除GPS纬度,经度,高度,和从参数时间戳。
|
||||||||||
void | 配置(字符串关键的,字符串值)
设置一个字符串参数。
|
||||||||||
void | 配置(字符串关键,int值)
设置一个整数参数。
|
||||||||||
void | setantibanding(字符串antibanding)
设置antibanding。
|
||||||||||
void | setautoexposurelock(布尔切换)
设置自动曝光锁定状态。 |
||||||||||
void | setautowhitebalancelock(布尔切换)
设置自动白平衡锁定状态。 |
||||||||||
void | setcoloreffect(字符串值)
设置当前的颜色设置效果。
|
||||||||||
void | setexposurecompensation(int值)
设置曝光补偿指数。
|
||||||||||
void | setflashmode(字符串值)
设置闪光模式。
|
||||||||||
void | setfocusareas(列表<相机。面积>重点领域)
设置焦点区域。
|
||||||||||
void | setfocusmode(字符串值)
设置焦点模式。
|
||||||||||
void | setgpsaltitude(双高度)
集GPS高程。
|
||||||||||
void | setgpslatitude(双纬度)
集GPS经纬度坐标。
|
||||||||||
void | setgpslongitude(双经度)
集GPS经纬度坐标。
|
||||||||||
void | setgpsprocessingmethod(字符串processing_method)
集GPS处理方法。
|
||||||||||
void | setgpstimestamp(长时间)
集GPS时间戳。
|
||||||||||
void | setjpegquality(int质量)
捕获的图像集的JPEG质量。
|
||||||||||
void | setjpegthumbnailquality(int质量)
套在JPEG图片EXIF缩略图质量。
|
||||||||||
void | setjpegthumbnailsize(int,int宽度,高度)
集的EXIF缩略图的JPEG图片的尺寸。 |
||||||||||
void | setmeteringareas(列表<相机。面积> meteringareas)
集计量范围。
|
||||||||||
void | setpictureformat(int pixel_format)
设置图片的图像格式。
|
||||||||||
void | setpicturesize(int,int宽度,高度)
设置图片的尺寸。 |
||||||||||
void | setpreviewformat(int pixel_format)
设置预览照片的图像格式。
|
||||||||||
void | setpreviewfpsrange(int,int max)
最小和最大帧设置预览。
|
||||||||||
void | setpreviewframerate(int FPS)
该方法被在API级别9。取代
setpreviewfpsrange(int,int) |
||||||||||
void | setpreviewsize(int,int宽度,高度)
设置预览照片的尺寸。
|
||||||||||
void | setrecordinghint(布尔提示)
集记录模式的提示。
|
||||||||||
void | setrotation(int旋转)
集度相对于相机的方向顺时针旋转角度。
|
||||||||||
void | setscenemode(字符串值)
设置场景模式。
|
||||||||||
void | setvideostabilization(布尔切换)
启用和禁用视频稳定。 |
||||||||||
void | setwhitebalance(字符串值)
设置白平衡。
|
||||||||||
void | setzoom(int值)
设置缩放值。
|
||||||||||
void | unflatten(字符串扁平)
以一个扁平的字符串参数,增加了每一个这个参数对象。
|
[扩展]
继承的方法
| |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
从阶级java.lang.Object
|
常数
public static final String
flash_mode_auto
闪光灯会自动在需要的时候被解雇。闪光会被解雇预览时,自动对焦,或快照取决于驱动。
public static final int
focus_distance_far_index
数组中的远距使用getfocusdistances(浮[ ])
。
public static final int
focus_distance_near_index
数组中的近距离使用的焦点getfocusdistances(浮[ ])
。
public static final int
focus_distance_optimal_index
使用的最佳焦点距离的数组索引getfocusdistances(浮[ ])
。
public static final String FOCUS_MODE_AUTO
自动对焦模式。程序应该调用自动对焦(autofocuscallback)
在这个模式下启动的重点。
public static final String FOCUS_MODE_CONTINUOUS_PICTURE
用于拍照的连续自动对焦模式。相机不断致力。焦点改变的速度更是比攻击focus_mode_continuous_video
。自动对焦开始时的参数设置。
应用程序可以调用自动对焦(autofocuscallback)
在这种模式。如果对焦是在中东的扫描,重点回调函数将返回时完成。如果对焦是不扫描,重点回调将立即返回一个布尔值,指示是否焦点是否清晰。应用程序可以决定是否要立即采取图片或改变聚焦模式自动对焦,并运行一个完整的周期。重点位置自动对焦锁定后的电话。如果应用程序需要恢复持续的注意力,cancelautofocus必须调用。重启预览将不会恢复连续。对停止连续集中,应用程序应该改变焦点模式其他模式。
public static final String FOCUS_MODE_CONTINUOUS_VIDEO
用于视频记录的连续自动对焦模式。相机不断致力。这是视频记录最好的选择,因为焦点变化。应用程序还可以呼叫TakePicture(camera.shuttercallback,camera.picturecallback,相机。picturecallback)
在这种模式下,但对象可能不会成为焦点。自动对焦启动时的参数集。
由于API级别14,应用程序可以调用自动对焦(autofocuscallback)
在这种模式下。重点回调将立即返回一个布尔值,指示是否重点是尖锐或不。焦点位置后自动电话锁。如果程序要恢复持续的注意力,cancelautofocus 必须调用。重启预览将不会恢复连续自动对焦。停止持续的注意力,应用程序应该改变对焦模式,其他模式。
public static final String FOCUS_MODE_EDOF
扩展景深(EDOF)。重点是数字化和不断。应用程序不应调用自动对焦(autofocuscallback)
在这种模式下。
public static final String FOCUS_MODE_FIXED
的焦点是固定的。摄像机一直在这种模式下,如果不是重点调。如果相机自动对焦,这种方式可以解决焦点,这通常是在超焦距。应用程序应该不叫自动对焦(autofocuscallback)
在这种模式下。
public static final String FOCUS_MODE_INFINITY
重点是无穷的。应用程序不应调用自动对焦(autofocuscallback)
在这种模式下。
public static final String FOCUS_MODE_MACRO
宏观(特写)对焦模式。程序应该调用自动对焦(autofocuscallback)
在这模式启动的重点。
public static final String scene_mode_hdr
用高动态范围成像技术的现场捕获。该相机将有一个扩展的动态范围的图像相比,定期捕获。捕获这样的图像可能会比普通的捕获时间。
公共方法
public boolean getAutoExposureLock ()
获取自动曝光锁定状态。应用程序应该检查isautoexposurelocksupported()
在使用这个方法。看到setautoexposurelock(布尔)
关于锁的细节。
public boolean getAutoWhiteBalanceLock ()
获取自动白平衡锁的状态。应用程序应该检查isautowhitebalancelocksupported()
在使用本方法。看到setautowhitebalancelock(布尔)
关于锁细节。
public int getExposureCompensation ()
获取当前曝光补偿指数。
退货
- 目前的曝光补偿指数。的范围
getminexposurecompensation()
对getmaxexposurecompensation()
。0意味着曝光不调整。
public List<Camera.Area> getFocusAreas ()
获取当前的重点领域。摄像头驱动程序使用区来决定焦点。
在使用这个API或setfocusareas(名单)
应用程序应该调用,getmaxnumfocusareas()
了解最大数量的重点领域第一。如果该值为0,重点区域是不支持。
每个重点领域是一个具有特定重量的矩形。方向相对于传感器的方向,即,所看到的方向传感器。受到旋转或镜像不setdisplayorientation(int)
。坐标的矩形范围从1000到1000。(1000,1000)是左上角的点。(1000,1000)下的权利。宽度和高度集中地区不能0或负。
的重量范围从1到1000。重量应该解释为每一个像素的权重在该地区的所有像素具有指定的重量。这意味着一个小面积相同的重量为较大的地区会对聚焦比地区影响较小。重点领域可以部分重叠,司机会在重叠区域中添加权重。
一个特殊的情况空
重点地区名单意味着司机是自由选择的重点目标,它希望。例如,司机可以使用更多的信号选择重点领域和改变他们动态。应用程序可以将焦点设置地区列表空
如果他们想让司机完全控制聚焦。
重点领域是相对于当前场视图getzoom()
)。无论缩放级别是什么,(1000,1000)顶部的当前可见的相机代表。重点地区不能设置在目前来看,即使当使用变焦。
重点地区仅影响当前的焦点模式如果focus_mode_auto
,focus_mode_macro
,focus_mode_continuous_video
,或focus_mode_continuous_picture
。
public void getFocusDistances (float[] output)
从摄像机到一个对象似乎是焦点得距离。该对象是在最佳的聚焦距离最大。场的深度远焦距离减去接近焦点距离。
焦距可以改变后调用自动对焦(autofocuscallback)
,cancelautofocus()
,或startpreview()
。应用程序可以调用getparameters()
该方法可随时获得最新的焦点距离。如果聚焦模式焦距可以改变 focus_mode_continuous_video,不时。
这种方法的目的是估计摄像机和主体之间的距离。在自动对焦,主体的距离可在远近焦点距离。然而,其精度取决于相机硬件,自聚焦算法,重点地区,和场景。误差可以很大,它只能作为一个。
远距> =最佳焦点距离> =近焦点的距离。如果焦点距离为无穷大,价值float.positive_infinity
。
public String getFocusMode ()
获取当前的焦点模式设置。
退货
- 目前的焦点模式。此方法将总是返回一个非空的价值。程序应该调用
自动对焦(autofocuscallback)
如果焦点模式focus_mode_auto或focus_mode_macro开始重点。
public int getMaxExposureCompensation ()
得到的最大曝光补偿指数。
退货
- 最大曝光补偿指数(>=0)。如果这方法
getminexposurecompensation()
返回0,曝光补偿是不。
public int getMaxNumDetectedFaces ()
获取人脸支持的最大数量。这是列表的返回的最大长度camera.facedetectionlistener
。如果返回值是0检测指定的,脸型不。
public int getMaxNumMeteringAreas ()
获取最大数量的计量领域的支持。这是列表的最大长度setmeteringareas(名单)
和getmeteringareas()
。
public int getMaxZoom ()
得到的缩放所允许的最大值为快照。这是最大的值,应用程序可以设置为setzoom(int)
应用程序。iszoomsupported()
在使用本方法。这个值可能会在不同的预览大小的变化。应用应调用此后再设置预览大小。
public List<Camera.Area> getMeteringAreas ()
获取当前计量范围。摄像头驱动程序使用这些地区决定曝光。
在使用这个API或setmeteringareas(名单)
应用程序应该调用,getmaxnummeteringareas()
要知道计量领域第一的最大数量。如果该值为0,计量面积不支持。
每个测光区域是一个矩形指定重量。该方向相对于传感器的方向,即,传感器看到什么。方向不受旋转或镜像setdisplayorientation(int)
。坐标的矩形范围从1000到1000。(1000,1000)是左上点。(1000,1000)是右下点。宽度和高度计量范围不能0或负。
的重量范围从1到1000,并表示每个像素在该地区的一个重。这意味着一个有相同重量的一个较小的区域大计量的地区将在计量结果有更多的影响。计量领域可以部分地重叠和司机将重叠区域中添加量。
一个特殊的情况空
计量区列表意味着司机自由表选择。例如,驱动程序可以使用更多的信号选择计量领域,动态地改变他们。应用程序可以设置计量面积列表空
如果他们想驾驶员完全控制计量。
测光区域相对于查看当前场getzoom()
)。无论缩放级别是什么,(1000,1000)顶部的当前可见的相机代表。该计量面积不能设置在目前来看,即使使用。
无论是计量领域是什么,最终曝光补偿的setexposurecompensation(int)
。
public int getMinExposureCompensation ()
获得最小的曝光补偿指数。
退货
- 最小的曝光补偿指数(<=0)。如果这方法
getmaxexposurecompensation()
返回0,曝光补偿是不。
public Camera.Size getPreferredPreviewSizeForVideo ()
返回优先推荐或预览大小(宽度和高度)像素的视频。摄像机的应用程序应该设置预览尺寸值不大于优先预览大小。换句话说,对预览大小宽度和高度产品不应大于首选预览大小。此外,我们建议选择一个预览大小具有相同的纵横比为视频的分辨率要记录。
public void getPreviewFpsRange (int[] range)
返回当前预览的帧的最大和最小。价值观是返回的元素之一getsupportedpreviewfpsrange()
。
public String getSceneMode ()
获取当前情景模式设置。
参见
scene_mode_auto
scene_mode_action
scene_mode_portrait
scene_mode_landscape
scene_mode_night
scene_mode_night_portrait
scene_mode_theatre
scene_mode_beach
scene_mode_snow
scene_mode_sunset
scene_mode_steadyphoto
scene_mode_fireworks
scene_mode_sports
scene_mode_party
scene_mode_candlelight
scene_mode_barcode
public List<int[]> getSupportedPreviewFpsRange ()
获取受支持的预览帧(帧每秒)的范围。每个范围包含一个最小和最大FPS FPS。如果最低fps等于最大FPS,固定帧速率的相机输出帧。如果不是,架在汽车车架相机输出。实际帧速率的最大值和最小值之间的波动。价值观是乘以1000为整数。例如,如果框架速率是每秒26.623帧,该值为26623。
public List<Camera.Size> getSupportedVideoSizes ()
获取受支持的视频帧的大小,可以通过使用 mediarecorder。
如果返回的列表是否为空,返回列表将包含在至少一个尺寸和一个在返回列表的大小必须通过mediarecorder。用于摄像机应用setvideosize()如果摄像机作为视频源。在这种情况下,预览的大小可以在视频记录是不同的从记录的视频分辨率。
public int getZoom ()
获取当前的缩放值。这也可以在平滑变焦是在进步。应用程序应该检查iszoomsupported()
在使用这种方法。
退货
- 当前的缩放值。范围是0到
getmaxzoom()
。0意味着相机不放大。
public List<Integer> getZoomRatios ()
获取所有的变焦缩放比例值。应用程序应该检查iszoomsupported()
在使用这个方法。
退货
- 1 / 100的增量缩放比例。例如:一个变焦3.2是返回320。元素的数目
getmaxzoom()
1。列表是从小到大的排序。第一个元素是100的。最后一个元素的最大值缩放缩放比。
public boolean isAutoExposureLockSupported ()
如果自动曝光锁定支持,返回true。应用应调用此之前试图锁定自动曝光。看到setautoexposurelock(布尔)
关于锁的细节。
public boolean isAutoWhiteBalanceLockSupported ()
如果自动白平衡锁定支持返回true。应用应调用此之前试图锁定自动白平衡。看到setautowhitebalancelock(布尔)
关于锁的细节。
public boolean isVideoSnapshotSupported ()
如果视频快照支持返回true。那是,应用程序可以调用TakePicture(camera.shuttercallback,camera.picturecallback,camera.picturecallback,相机。picturecallback)
在记录期间。应用程序不需要打电话startpreview()
拍照后。预览仍将活跃。除此之外,拍照时记录是以图片通常相同。所有设置和方法TakePicture同相关工作。前:getpicturesize()
,getsupportedpicturesizes()
,setjpegquality(int)
,setrotation(int)
,等图片会有EXIF标题。flash_mode_auto
和flash_mode_on
同时还在工作,但视频记录闪光。
应用程序可以设置快门回调为避免快门声。它还建议将原图像和后视图回调无效避免预览显示中断。
对记录的视频领域的可能是不同的拍摄的照片。一个视频快照的最大大小可能小于定期仍然捕捉。如果当前的图片尺寸设定为比可以通过视频快照支持的图片,将在最大负载大小而被捕。
public boolean isVideoStabilizationSupported ()
如果视频稳定的支持,返回true。看到setvideostabilization(布尔)
对于视频稳像的细节。
public void setAutoExposureLock (boolean toggle)
设置自动曝光锁定状态。应用程序应该检查isautoexposurelocksupported()
在使用这个方法。
如果设置为TRUE,相机的自动曝光程序将立即暂停直至锁设置为false。曝光补偿设置变化仍然生效而自动曝光锁定。
如果自动曝光已被锁定,设置为TRUE,又有没有影响(司机不会重新计算的曝光值)。
停止预览stoppreview()
,或触发仍然图像捕捉TakePicture(camera.shuttercallback,camera.picturecallback,相机。picturecallback)
,不会改变锁。
曝光补偿,自动曝光锁定,和自动白平衡锁可以用来捕捉图像的曝光被爆,为。
自动曝光锁定状态,包括状态,不会后保持相机release()
被称为。自动曝光锁定后open()
但在第一次调用startpreview()
不允许自动曝光程序运行的,并可能导致严重的过度或曝光不足的图像。
public void setAutoWhiteBalanceLock (boolean toggle)
设置自动白平衡锁定状态。应用程序应该检查isautowhitebalancelocksupported()
在使用本方法。
如果设置为TRUE,相机自动白平衡程序将立即暂停直至锁设置为false。
如果自动白平衡已被锁定,设置为TRUE,又没有影响(司机不会重新计算白平衡值)。
停止预览stoppreview()
,或触发仍然图像捕捉TakePicture(camera.shuttercallback,camera.picturecallback,相机。picturecallback)
,不会改变锁。
改变白平衡模式setwhitebalance(字符串)
要设置自动白平衡锁释放。
曝光补偿,自动曝光锁定,和AWB锁可以用来捕获曝光被突发的图像,例如。自动白平衡状态,包括锁定状态,不会后保持release()
被称为。锁定自动白平衡后open()
但在第一次调用startpreview()
不允许自动白平衡的常规来运行的,并可能导致在捕获的图像颜色严重错误。
public void setExposureCompensation (int value)
设置曝光补偿指数。
参数
value | 曝光补偿指数。有效值的范围从getminexposurecompensation() (含)至getmaxexposurecompensation() (含)。0意味着暴露不调整。应用程序应该调用 getminexposurecompensation和getmaxexposurecompensation到知道曝光补偿的支持。 |
---|
public void setJpegThumbnailSize (int width, int height)
集的EXIF缩略图的JPEG图片的尺寸。如果应用设置宽度和高度为0,不含 EXIF缩略图。
应用需要考虑的显示方向。看到setpreviewsize(int,int)
参考。
public void setPictureSize (int width, int height)
设置图片的尺寸。
应用需要考虑的显示方向。看到setpreviewsize(int,int)
参考。
public void setPreviewFormat (int pixel_format)
设置预览照片的图像格式。
如果这不叫,默认的格式将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) |
---|
public void setPreviewFpsRange (int min, int max)
最小和最大帧设置预览。该控制预览帧的速率接收camera.previewcallback
。最小和最大预览帧必须是一个元素getsupportedpreviewfpsrange()
。
抛出
RuntimeException | 如果FPS范围无效。 |
---|
public void setPreviewSize (int width, int height)
设置预览照片的尺寸。如果预览已经开始,应用程序应该停止预览先改变预览大小。两侧的宽度和高度都是基于 。这是,预览的大小是在由显示方向旋转的大小。这样的应用需要而设置预览大小考虑显示方向。例如,假设相机支持两480x320和块的预览图片。应用程序要比3:2 预览。如果显示方向设置为0或180,预览大小应设置为480x320。如果显示方向设置为90或270 ,预览大小应设置为320x480。显示取向也应同时设置图片的大小和缩略图大小考虑。
public void setRecordingHint (boolean hint)
集记录模式的提示。这告诉相机,应用的目的是记录视频start()
,不采取照片TakePicture(camera.shuttercallback,camera.picturecallback,camera.picturecallback,相机。picturecallback)
。使用这个提示可以允许mediarecorder。start()启动得更快或在输出毛刺少。这应该是在最好的结果开始预览称,但可以预览时活性变化。默认值为false。 应用程序仍然可以takepicture()当呼叫提示是真的还是叫 start()时mediarecorder提示。但是性能可能更糟。
参数
hint | 如果应用程序打算录制视频的使用mediarecorder 。 |
---|
public void setRotation (int rotation)
集度相对于相机的方向顺时针旋转角度。这会影响 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 | 如果旋转值无效。 |
---|
public void setSceneMode (String value)
设置场景模式。变化的场景模式可能会覆盖其他参数(如闪光模式,对焦模式,白平衡)。为的例子,假设原来的闪光模式是在支持Flash 模式开/关。在夜景模式,闪光模式和闪光模式支持的可更改了。在设置的场景模式,程序应该调用getparameters知道一些参数。
public void setVideoStabilization (boolean toggle)
启用和禁用视频稳定。使用isvideostabilizationsupported()
要确定是否调用此方法是有效的。
视频稳定减少因晃动的摄像机运动在两个预览流和视频记录,包括从预览回调接收数据。它在不减少运动模糊图像TakePicture
。
视频稳定可以启用在预览或记录是活跃的残疾,但切换可能导致在视频流可以在录制的视频是不可取的一跳。
public void setZoom (int value)
设置缩放值。如果相机放大(值>0),图片的实际大小可能小于图片大小设置。应用尺寸后,图片是返回可以检查实际的图片camera.picturecallback
。预览的大小保持在相同的变焦。应用程序应该检查iszoomsupported()
在使用这个方法。
参数
value | 变焦值。有效的范围是0到getmaxzoom() 。 |
---|