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

免费找客源软件网站排名优化方法讲解

免费找客源软件,网站排名优化方法讲解,简答题网站建设步骤,网站建设 有哪些费用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.zqtcl.cn/news/793109/

相关文章:

  • 体检营销型网站php网站建设培训班
  • 做洁具最好的网站数据分析
  • 郑州网站建设丶汉狮网络网站建设中图片是什么意思
  • 深圳网站建设公司设计公司做影视网站用主机还是用服务器
  • 网站建设价格如何做问卷调查网站
  • 网络营销推广合同天津网站seo策划
  • 明年做那个网站致富wordpress loper
  • 网站开发原理柳州网站推广
  • 杭州高端网站开发重庆网站建设去迅法网
  • 营销型网站建设调查表用flash做游戏下载网站
  • 企业网站申请流程北京网站建设北京
  • 响应式网站导航栏模板python开发wordpress
  • 大学生创新创业大赛一个网站做两个优化可以做吗
  • 网站设计建设铁总建设函网站
  • 做期货都看哪个网站什么是网络营销的综合工具
  • 专做袜子的网站北京学设计去哪个网站好
  • 一搜网站制作网站支付怎么做
  • 广州 科技网站建设公司国外酷炫flash网站
  • 焦作网站建设焦作wordpress怎么进行301 htaccess
  • 那个网站能找到人做品牌文化的网站
  • 家里做网站买什么服务器好网站建设报价单 文库
  • 网站百度建设银行广西分行招聘网站
  • 打开网站显示404北京公司请做网站工资
  • 网站开发验收流程图app开发制作的图片
  • 网站流量的作用app定制开发和模板开发的区别
  • 如何做分公司网站网站建设与设计开题报告
  • 易语言怎么做网站网络推广客户渠道
  • 唐山哪里有做网站的网站服务器在
  • 网络服务机构的网站广东省住房及建设厅官方网站
  • 工业设计灵感网站商务网页设计与制作微课版答案