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

桐乡网站二次开发淘宝做图网站好

桐乡网站二次开发,淘宝做图网站好,大学学科建设网站,wordpress 媒体库图片不显示1. 相关的API Android有三套关于摄像头的API(库)#xff0c;分别是Camera、Camera2和CameraX#xff0c;其中Camera已废弃#xff0c;在Android5.0以后推荐使用Camera2和CameraX#xff0c;Camera2推出是用来替换Camera的#xff0c;它拥有丰富的API可以为复杂的用例提供…1. 相关的API Android有三套关于摄像头的API(库)分别是Camera、Camera2和CameraX其中Camera已废弃在Android5.0以后推荐使用Camera2和CameraXCamera2推出是用来替换Camera的它拥有丰富的API可以为复杂的用例提供深入的控制功能同样的它使用起来也相对麻烦。而CameraX是在Camera2基础上构建的更高层次的库旨在简化相机操作提供更方便的API降低学习曲线。 2. 选择使用场景 如果对相机的底层控制要求很高需要自定义功能、处理原始图像数据等那么 Camera2是一个更合适的选择如果想要更轻松地实现基本的相机功能降低开发难度CameraX 是一个更适合的选择。 3. CameraX简介 CameraX着重于用例它能支持下面常见用例 预览。使用PreviewView它是一种支持裁剪、缩放和旋转的view相机处于活动状态时图片预览会流式传输到它的surface。图片拍摄。提供自动白平衡、曝光、延迟、闪光灯和对焦等功能支持把图片放到内存缓存区和写文件。图像分析。应用会对每个帧运行analyze()方法可以进行图像处理、视觉或机器学习。可以通过设置阻塞和非阻塞的模式处理分析流水线无法满足CameraX帧率要求。视频拍摄。录制视频流和音频流对其压缩合并后写入磁盘。 CameraX不是本文重点此处不做详细介绍。 4. Camera2 4.1 设计架构 摄像头可以看做是数据源可以向摄像头注册多个业务流摄像头会把每帧的数据同时输出到每个流水线这些流水线可以并行对数据进行处理每个流水线可以有自己的输出格式传入的原始数据会通过每个与流水线相关联的隐士逻辑转换成相应的输出格式。摄像头需要使用CameraCaptureSession接受每个原始帧的帧配置CameraCaptureSession用来记录绑定到摄像头的所有流水线创建会话后无法添加或移除流水线。它会维持一个CaptureRequest队列这些队列会成为活跃配置。CaptureRequest会讲配置添加到队列选择一个或者多个可用的流水线从摄像头接收帧。 4.2 预览 下面我们写一段代码实现摄像头预览功能 // 创建接受相机帧的数据流(输出缓冲区)每一个数据流就是一个Surface对象我们要实现预览功能 // 就用UI中的SurfaceView中的Surface作为数据流这样相机帧数据直接传输到UI显示, // 前面提到过可以同时支持多个数据流并行所以这里使用了list存储我们只预览放一个Surface就行了val targets listOf(fragmentCameraBinding.viewFinder.holder.surface)// 创建CameraCaptureSession, 这是自己封装的函数具体实现是调用的CameraDevice的函数 val session createCaptureSession(camera, targets, cameraHandler)// 创建CaptureRequest,里面设置了接受帧的数据流 val captureRequest camera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW).apply { addTarget(fragmentCameraBinding.viewFinder.holder.surface) }//因为预览需要看到连续的图像所以需要这个请求重复调用 session.setRepeatingRequest(captureRequest.build(), null, cameraHandler) 上面的代码实现了预览功能基本包含了从相机获取数据流的基本功能如果我们想要拍照需要使用ImageReader可以看下面的例子。 4.3 拍照 //创建一个ImageReader val imageReader ImageReader.newInstance(width, height, ImageFormat.JPEG, 3)//设置图片捕获后的回调 imageReader.setOnImageAvailableListener({ reader -val image reader.acquireNextImage() }, imageReaderHandler)//创建Session支持的数据流 val targets listOf(fragmentCameraBinding.viewFinder.holder.surface, imageReader.surface)//创建CameraCaptureSession val session createCaptureSession(camera, targets, cameraHandler)//创建CaptureRequest val captureRequest session.device.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE).apply { addTarget(imageReader.surface) }//单次请求 session.capture(captureRequest.build(), null, handler) 因为拍照只需要捕获一次图像就行了所以这里直接调用的capture()函数而上面预览需要持续捕获调用的是setRepeatingRequest()至于想要预览时支持点击拍照可以先调用重复捕获在调用单次捕获系统是支持交错捕获请求的。 4.4 视频 按照当前的框架录制视频也容易多了只需要添加一个新的数据流用来接收图像帧并且保存为视频文件就行了为了实现这个功能系统提供了两个比较好用的类MediaRecorder和MediaCodec。实际上MediaRecorder底层也是使用MediaCodec简单点说就是MediaRecorder简化了录制音视频的流程但是定制性相对较低如果需要对音视频处理进行定制可以使用MediaCodec。下面是简化后使用MediaRecorder的代码 TODO https://developer.android.com/training/camera2/capture-sessions-requests?hlzh-cn#kotlin https://github.com/android/camera-samples
http://www.dnsts.com.cn/news/14926.html

相关文章:

  • 桐城市建设局网站网站创意策划案
  • 工信部网站icp备案号竞价推广托管开户
  • 用软件什么做网站注册电气工程师报考条件
  • 搞一个卖东西的网站怎么做免费获取源码的网站
  • 建设外贸网站案例外贸网站定制建站
  • 建设网站最重要的是什么意思教学网站建设计划
  • 网站设计项目策划ppt向网站服务器上传网页文件下载
  • 电气网站设计十个免费软件不收费
  • 个人网站建设教程视频浏览广告赚钱的平台
  • 备案平台新增网站南昌模板建站代理
  • 南通公司网站制作方法网站目录
  • 网站建设及推广刷外链工具
  • 注册域名要多久惠州seo快速排名
  • 网站平台建设方案电商的推广方式
  • 天津免费建网站福田建设网站
  • 青浦企业网站制作wordpress前台注册插件
  • 什么是网站建设与维护wordpress开启分页
  • 返利网站开发计划书北京动画视频制作公司
  • 在线心理健康网站建设蓝色风格的网站
  • 怎么建立企业网站免费的网站制作谁家好
  • 网页网站的制作过程友情链接对网站的作用
  • 联兴建设官方网站昆明网站开发推广公司
  • 房产信息网网站邯郸网站设计招聘网
  • 做网站应该会什么软件如何搭建网络论坛平台
  • wordpress加入移动端导航栏网站排名乐云seo
  • 网站 栏目做视频up主视频网站
  • 专做特卖的网站网络推广有哪些网站
  • 网站开发视频教程百度网盘枣庄做网站制作
  • 长治制作公司网站的公司广告公司名字免费起名大全
  • 做网站需要注意些什么好看的网站分享