当前位置: 首页 > news >正文

东莞网站建设技术支持黄山网站建设

东莞网站建设技术支持,黄山网站建设,wordpress相册,网站代码制作流程 一、获取CameraManager实例二、获取可用的相机列表三、选择一个相机并打开它四、创建一个CaptureRequest.Builder对象五、设置CaptureRequest.Builder对象的参数六、创建一个CaptureSession对象七、开始预览 代码示例 一、获取CameraManager实例 CameraManager manager (…

流程

        • 一、获取CameraManager实例
        • 二、获取可用的相机列表
        • 三、选择一个相机并打开它
        • 四、创建一个CaptureRequest.Builder对象
        • 五、设置CaptureRequest.Builder对象的参数
        • 六、创建一个CaptureSession对象
        • 七、开始预览
      • 代码示例

一、获取CameraManager实例

   CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);

二、获取可用的相机列表

   String[] cameraIds = manager.getCameraIdList();

三、选择一个相机并打开它

   String cameraId = cameraIds[0];manager.openCamera(cameraId, new CameraDevice.StateCallback() {@Overridepublic void onOpened(CameraDevice camera) {// 相机已经打开,可以进行后续操作}@Overridepublic void onDisconnected(CameraDevice camera) {// 相机断开连接,需要释放资源camera.close();}@Overridepublic void onError(CameraDevice camera, int error) {// 相机打开出错,需要释放资源camera.close();}}, null);

四、创建一个CaptureRequest.Builder对象

   CaptureRequest.Builder builder = camera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);

五、设置CaptureRequest.Builder对象的参数

   builder.set(CaptureRequest.CONTROL_MODE, CameraMetadata.CONTROL_MODE_AUTO);

六、创建一个CaptureSession对象

   camera.createCaptureSession(Arrays.asList(surface), new CameraCaptureSession.StateCallback() {@Overridepublic void onConfigured(CameraCaptureSession session) {// CaptureSession已经创建,可以进行后续操作}@Overridepublic void onConfigureFailed(CameraCaptureSession session) {// CaptureSession创建失败,需要释放资源camera.close();}}, null);

七、开始预览

   session.setRepeatingRequest(builder.build(), null, null);

代码示例

  • xml布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><TextureViewandroid:id="@+id/texture_view"android:layout_width="match_parent"android:layout_height="match_parent" /></RelativeLayout>
  • 处理
public class MainActivity extends AppCompatActivity implements  TextureView.SurfaceTextureListener{private String[] cameraIds;private  String cameraId;private CameraManager cameraManager;//从系统服务中获取相机管理器private TextureView textureView;private CameraDevice mCameraDevice;private CameraCaptureSession cameraCaptureSession;private CaptureRequest.Builder captureRequestBuilder = null;private static final int ACTION_REQUEST_PERMISSIONS = 0x001;/*** 所需的所有权限信息*/private static final String[] NEEDED_PERMISSIONS = new String[]{Manifest.permission.CAMERA,//相机};@SuppressLint({"MissingPermission", "MissingInflatedId"})@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//权限检查if (!checkPermissions(NEEDED_PERMISSIONS)) {ActivityCompat.requestPermissions(this, NEEDED_PERMISSIONS,ACTION_REQUEST_PERMISSIONS);}textureView=findViewById(R.id.texture_view);textureView.setSurfaceTextureListener(this);//设置布局}/*** 权限检查* @param neededPermissions 需要的权限* @return 是否全部被允许*/protected boolean checkPermissions(String[] neededPermissions) {if (neededPermissions == null || neededPermissions.length == 0) {return true;}boolean allGranted = true;for (String neededPermission : neededPermissions) {allGranted &= ContextCompat.checkSelfPermission(this, neededPermission) == PackageManager.PERMISSION_GRANTED;}return allGranted;}@Overridepublic void onSurfaceTextureAvailable(@NonNull SurfaceTexture surfaceTexture, int i, int i1) {//布局初始化完成,打开相机openCamera2();}@SuppressLint("MissingPermission")private void openCamera2(){//一、获取cameraManagercameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);try {cameraIds = cameraManager.getCameraIdList();//获取摄像机id的集合cameraId = cameraIds[0];cameraManager.openCamera(cameraId,callback,null);} catch (Exception e) {throw new RuntimeException(e);}}CameraDevice.StateCallback callback=new CameraDevice.StateCallback() {@Overridepublic void onOpened(@NonNull CameraDevice cameraDevice) {mCameraDevice = cameraDevice;createCameraPreviewSession();}@Overridepublic void onDisconnected(@NonNull CameraDevice cameraDevice) {}@Overridepublic void onError(@NonNull CameraDevice cameraDevice, int i) {}};private void createCameraPreviewSession() {try {SurfaceTexture surfaceTexture = textureView.getSurfaceTexture();
//            surfaceTexture.setDefaultBufferSize(textureView.getWidth(), textureView.getHeight());surfaceTexture.setDefaultBufferSize(640, 480);
//            surfaceTexture.setDefaultBufferSize(480,640 );Surface previewSurface = new Surface(surfaceTexture);captureRequestBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);captureRequestBuilder.addTarget(previewSurface);mCameraDevice.createCaptureSession(Arrays.asList(previewSurface), new CameraCaptureSession.StateCallback() {@Overridepublic void onConfigured(CameraCaptureSession session) {cameraCaptureSession = session;try {cameraCaptureSession.setRepeatingRequest(captureRequestBuilder.build(), null, null);} catch (CameraAccessException e) {e.printStackTrace();}}@Overridepublic void onConfigureFailed(CameraCaptureSession session) {Toast.makeText(MainActivity.this, "Failed to create camera capture session", Toast.LENGTH_SHORT).show();}}, null);} catch (CameraAccessException e) {e.printStackTrace();}}@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults);switch (requestCode) {case ACTION_REQUEST_PERMISSIONS: {// 如果请求被取消,结果数组将为空if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {// 授权成功,执行相关操作} else {// 授权失败,禁用相关功能或显示提示信息}return;}// 处理其他权限请求}}@Overridepublic void onSurfaceTextureSizeChanged(@NonNull SurfaceTexture surfaceTexture, int i, int i1) {}@Overridepublic boolean onSurfaceTextureDestroyed(@NonNull SurfaceTexture surfaceTexture) {return false;}@Overridepublic void onSurfaceTextureUpdated(@NonNull SurfaceTexture surfaceTexture) {}@Overrideprotected void onResume() {super.onResume();}}
http://www.zhongyajixie.com/news/22231.html

相关文章:

  • 网站如何做404注册一个网站
  • 网站建设关键要做好哪些工作千锋教育和达内哪个好
  • 铜川市住房和城乡建设局网站网站排名怎么做上去
  • 网监网站备案网站在线客服系统免费
  • 大连网站建设酷网谷歌商店下载
  • 安徽城乡建设厅网站指数是指什么
  • 东莞网站建设是什么最有效的推广方式
  • js怎么做网站客服聊天百度贴吧怎么做推广
  • 网页电子书在线阅读器wordpress商丘seo公司
  • 辽宁建设集团招聘信息网站国家免费技能培训有哪些
  • 阿里云虚拟主机建站教程小说推文推广平台
  • 设计网站建站交换友情链接的好处
  • 做网站都需要哪些知识淘宝推广方法有哪些
  • 苏州市公共交易资源平台汉中网站seo
  • 做网站的宣传单素材4p 4c 4r营销理论区别
  • 武汉做营销型网站的公司短视频seo排名系统
  • wordpress 文章备份简述优化搜索引擎的方法
  • 网站用什么图片格式好深圳网站制作推广
  • 认证网站源码网络优化网站
  • 有什么网站是做企业型的seo推广优势
  • html网页设计代码作业正能量网站seo优化价格
  • asp做的药店网站模板推广方案万能模板
  • 企业网站备案在哪个部门seo排名赚靠谱吗
  • 外贸网站建设智能建站火星培训机构收费明细
  • 茶叶网站flash模板免费下载chatgpt 网址
  • 网站建设发布教程电脑培训速成班多少钱
  • wordpress 循环输出seo建站公司推荐
  • 做b2c网站公司定制开发公司
  • 公司网站属于信息化建设吗百度网盘网页
  • wordpress代码高亮显示北京专业网站优化