导航:首页 > 操作系统 > androidcameraapi2

androidcameraapi2

发布时间:2022-09-24 06:18:48

android Camera API 1.0,2.0,3.0 知多少

看到源码里面有诸如Camera.h , Camera2.h, Camera3.h的文件,觉得奇怪,后面在Camera3.h

中找到了对前后3个版本的概要性描述。

BTW, 我们看代码的过程中,如何避免不需要的文件被添加到工程?

我是指: 我只想看Camera3.0的代码,怎么去除掉其他版本的呢?

不知道各位是否知道这些牵涉到哪些文件? 谢谢!!

* S1. Version history:
* 1.0: Initial Android camera HAL (Android 4.0) [camera.h]:
*
* - Converted from C3;3; CameraHardwareInterface abstraction layer.
*
* - Supports android.hardware.Camera API.
*
* 2.0: Initial release of expanded-capability HAL (Android 4.2) [camera2.h]:
*
* - Sufficient for implementing existing android.hardware.Camera API.
*
* - Allows for ZSL queue in camera service layer
*
* - Not tested for any new features such manual capture control, Bayer RAW
* capture, reprocessing of RAW data.
* 3.0: First revision of expanded-capability HAL:
*
* - Major version change since the ABI is completely different. No change to
* the required hardware capabilities or operational model from 2.0.
*
* - Reworked input request and stream queue interfaces: Framework calls into
* HAL with next request and stream buffers already dequeued. Sync framework
* support is included, necessary for efficient implementations.
*
* - Moved triggers into requests, most notifications into results.
*
* - Consolidated all callbacks into framework into one structure, and all
* setup methods into a single initialize() call.
* - Made stream configuration into a single call to simplify stream
* management. Bidirectional streams replace STREAM_FROM_STREAM construct.

⑵ android 5.0的摄像头类修改了吗

修改了,改为
Camera2是Android5.0中的其中一个新的特性,新的API。与原来的camera API相比,不同之处在于:

原生支持RAW照片输出突发拍摄模式
制约拍照速度的不再是软件而是硬件。以Nexus 5为例,分辨率全开下Andorid L的连拍速度可达到30fps。

全手动控制
快门、感光度、对焦、测光、硬件视频防抖等多种参数都被整合到了新的API内。新的API中添加的手动控制功能列表:

感光度手动对焦/AF开关AE/AF/AWB模式AE/AWB锁硬件视频防抖连续帧
干货

Camera2 程序逻辑与原Camera有很大不同。

CameraManager,系统服务,通过 CameraManager去获得camera设备对象。CameraDevices提供描述相机硬件设备支持可用的和输出的参数,这些信息通过 CameraCharacteristics获得,CameraCharacteristics又是从 getCameraCharacteristics(cameraId)获得,通过freamwork中的源码发现,其实这里就是直接调用的Camera API接口。

通过camera拍照,应用首先要创建由相机设备的输出surface组成的拍照会话,createCaptureSession(List, CameraCaptureSession.StateCallback, Handler)。每个surface必须预先设置适当的大小和格式去匹配相机设备的可支持的大小和格式。一个目标surface可以从不同的类中获取,包括SurfaceView,SurfaceTexture via Surface(SurfaceTexture), MediaCodec, MediaRecorder, Allocation, and ImageReader.

一旦请求被建立,他可以交给活动的拍照会话:一次拍照(one-shot )或者无止境连续拍照或预览(Repeating)。两种方法都有一个其他的方式:接受一系列的请求作为burst拍照/重复burst。

⑶ android camera2 用surfaceview输出预览图像画面拉长

项目当中遇到调整摄像头位置需要全屏显示摄像头预览界面,过程中发现预览界面存在无法显示全,画面被拉伸的问题。surfaceview的宽高比可能与camera设置的宽高比不一致 ,经测试发现设置Camera 预览宽高可解决此问题(注意这里设置屏幕物理宽高不起作用,必须设置屏幕分辨率)
////通过Resources获取(无效)
// DisplayMetrics dm = getResources().getDisplayMetrics();
// heigth = dm.heightPixels;
// width = dm.widthPixels;
//获取屏幕的默认分辨率 设置预览界面长宽解决预览界面变形显示不全问题(有效)
Display display = getWindowManager().getDefaultDisplay();
int height = display.getWidth();
int width = display.getHeight();
Camera.Size preSize = CameraUtil.getCloselyPreSize( true , width, height, parameters.getSupportedPreviewSizes());
parameters.setPreviewSize(preSize.width, preSize.height);
Log.e(TAG + "摄像头尺寸前置" , "width" + preSize.width + "------" + "height" + preSize.height);
camera2.setParameters(parameters);
// 启动摄像头预览
camera2.startPreview();
System.out.println( "camera.startpreview" );

⑷ Android camera2 判断相机功能是否可控的实例

//Creates a new Camera object to access a particular hardware camera. Camera camera = Camera.open() ; //Returns the current settings for this Camera service. Parameters parameters = camera.getParameters(); //Sets the dimensions for preview pictures. parameters.setPreviewSize(int width, int height) //Sets the dimensions for pictures. parameters.setPictureSize(int width, int height) //你先获取一下 你手机支持的分辨率,不然你不好设置你手机支持的最高分辨率 //Creates a single string with all the parameters set in this Parameters object. //camera.getParameters().flatten(); //return String 你看一下返回的字符串,就可以看到很多手机摄像的很多相关参数了。

⑸ android camera开发是用camera2还是camera

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
// your code using Camera API here - is between 1-20
} else if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// your code using Camera2 API here - is api 21 or higher
}

⑹ android camera2 上怎么让textureview全屏

选择壁纸时有一个小小的技巧,小编在此就和各位机油们分享一下这个小窍门。 目前安卓手机屏幕主流的分辨率大致有这么几种:320x240(高x宽)、480x320、800x480、854x480、960x540。安卓壁纸有这么一个特性:壁纸是会随着分屏的滑动而移动,所以壁纸的实际分辨率比屏幕分辨率要大,高度不变,但宽度却是屏幕的两倍! 屏幕分辨率为320x240的安卓手机,对应的壁纸分辨率为:320x480。 屏幕分辨率为480x320的安卓手机,对应的壁纸分辨率为:640x480。 屏幕分辨率为800x480的安卓手机,对应的壁纸分辨率为:960x800。 屏幕分辨率为800x480的安卓手机,对应的壁纸分辨率为:960x800。 屏幕分辨率为854x480的安卓手机,对应的壁纸分辨率为:960x854。 屏幕分辨率为960x540的安卓手机,对应的壁纸分辨率为:1080x960。

⑺ Android camera2 判断相机功能是否可控

转: 看官方API发现的一行,记录下来 <manifest ... > <uses-feature android:name="android.hardware.camera" /> ... </manifest ... > 文档说调用相机功能要增加这行到配置文件里,表明用到相机功能。(貌似根据网上例子没加这个也能打开默认相机功能。) It's then your responsibility to check for the availabilityof the camera at runtime by callinghasSystemFeature(PackageManager.FEATURE_CAMERA).If a camera is not available, you should then disable your camera features. 要通过这个来检查设备是否有照相机功能,没有的话就要根据情况调整,或者是关闭相机功能,避免出错。

⑻ Android camera2 判断相机功能是否可控

Float hardwareLevel = mCameraCharacteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL);

LEGACY < LIMITED < FULL < LEVEL_3. 越靠右边权限越大

INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY = 2
INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED = 0
INFO_SUPPORTED_HARDWARE_LEVEL_FULL = 1
INFO_SUPPORTED_HARDWARE_LEVEL_3 = 3

在相应的等级下面会有各自支持的功能,LEGACY为最低权限
在LIMITED中

阅读全文

与androidcameraapi2相关的资料

热点内容
聚优电影卡使用范围 浏览:759
浙江网络卫星授时服务器云空间 浏览:497
宝塔加密方式 浏览:217
linux环境变量的路径 浏览:749
粉笔缓存的视频在手机哪个文件夹 浏览:680
港片尺度大 浏览:373
女主胸大的H电影 浏览:877
小女孩那个电影叫什么 浏览:58
中越战争电影在哪看 浏览:896
成龙电影国语版全部 浏览:199
如何入侵网页服务器修改帐号 浏览:646
陕西物联网数显钟服务器云主机 浏览:279
原版3d是国语吗 浏览:926
程序员勇敢的第一步 浏览:160
安卓车载音乐什么格式 浏览:432
rin演过的电影 浏览:149
telnet命令登陆 浏览:328
不同文件夹名字怎么找 浏览:242
邵氏风花雪月老电影 浏览:997