1.【Android】Camera
2.Android Camera(äº)
【Android】Camera
在Android应用中集成相机功能,主要可以考虑三个选项:CameraX、Camera2和废弃的原始Android Camera类。推荐使用CameraX,因为它是Jetpack库的一部分,支持广泛设备(从Android 5.0及更高版本),机场巴士乘车溯源码怎么查并提供了围绕常见用例设计的一致高级别API。CameraX基于Camera2软件包构建,提供更高级别的控件,适用于需要复杂功能的场景,尽管其API更为复杂,且要求设备支持Android 5.0(API级别)及以上版本。
原始Android Camera类已被废弃,商业电玩源码新应用应使用CameraX或Camera2,而现有应用需进行迁移以充分利用新功能,同时避免与特定设备的兼容性问题。
CameraX是为简化相机应用开发而设计的库,适用于新应用开发。它提供了更直观、nz发卡源码易于使用的API,确保向后兼容Android 5.0及更高版本的设备。CameraX通过抽象“用例”概念与设备相机交互,支持多种用例,如预览、分析、竞价评级源码拍摄和视频拍摄,并且提供了清晰的API模型和生命周期集成。
为了与CameraX配合使用,您需要指定用例、配置选项以及使用set()方法和build()方法来构建用例。每个用例包含特定API,过左锋源码如拍摄用例的takePicture()方法。应用通过cameraProvider.bindToLifecycle()方法绑定到生命周期,确保相机状态随应用生命周期的变化而变化。
Camera2是替代Camera类的最新低级Android相机包,提供了深入控制,适合复杂用例。然而,其API相对复杂,且要求管理特定设备的配置。对于大多数开发者,推荐使用CameraX库,但更多细节可参考Camera2的官方文档和示例项目。
总结,选择CameraX作为集成Android应用中相机功能的首选方案,它提供了简化且兼容性强的API,支持广泛的设备,并且易于理解和使用。对于需要更高控制的应用,Camera2是一个可选方案,但建议优先考虑CameraX以获得更简便的开发体验。
Android Camera(äº)
CameraManagerãCameraDeviceãCameraCharacteristicsãCameraRequestä¸CameraRequest.BuilderãCameraCaptureSession以åCaptureResultã
1. å¼åç¸æºå¿ é¡»ççæéå°±æ¯ Manifest.permission.CAMERA äºï¼æ以第ä¸æ¥è¦å¨Manifestä¸æ·»å Camera permissionï¼
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" /></pre>
å¦ææ¯6.0以ä¸çææºè¿è¦å¨æç³è¯·æéï¼å ³äºæéè¿å大家å¯ä»¥ä½¿ç¨PermissionUtilå ¨å±ç®¡çã
2.è·åCameraManagerå®ä¾ å¼å¯ç¸æº
3.å½ç¸æºæåæå¼åä¼åè°onOpenedæ¹æ³ï¼è¿éå¯ä»¥æ¿å°CameraDevice对象ï¼ä¹å°±æ¯å ·ä½çæå头设å¤
4.设置ç¸æºä¸äºåæ° å æ¬æ¹å
5.å¼å¯é¢è§
6.å¼å¯é¢è§åè·åå®æ¶æµæ°æ®ï¼onImageAvailableåè°ä¸çImageRenderè·åå®æ¶æµæ°æ®ï¼è¿ä¸ªæ°æ®æ¯YUV__çæ°æ® ,æ们å¯ä»¥åå¨æ°æ®ä¹å¯ä»¥å¯¹æ°æ®æµè¿è¡ç¾é¢æ»¤éæä½ï¼ä¹å¯ä»¥æ¨éç»æå¡ç«¯ã
7.å½å ³éçé¢æè åæ¢é¢è§æ¶ ï¼