想拿高清视频流里一帧帧图一定要用camera2,一定要用camera2,一定要用camera2!!!

原先的camera好像最高只支持1080P的预览分辨率,我用华为P20,P9,Mate系列,小米8都试过,调用getSupportPreviewSize方法可以获得本机所支持的预览分辨率集合,然后看了下最高1920x1080,至于其他手机不太清楚。

但是我用的苹果8是可以支持4k预览流输出的,于是乎我就突发奇想用camera2试试,camera2相对而言要复杂很多,我这里就再多说了,给个前辈的链接自己去研究下Android多媒体之Camera2的相关操作谷歌也在github上提供了camera2的demo,自己去搜下,我比较懒就直接把demo复制之后改了一些东西。下面说几点要注意的地方(最好结合goole提供的demo一起看)

第一,选择预览分辨率

demo中是chooseOptimalSize()函数来实现(根据屏幕的分辨率),一开始我就把原来写的逻辑给改了,让预览分辨率变成最高,会导致低端的手机卡卡的。这边不用改,这是预览的大小,并不是帧图的大小,不搭界的。帧图大小在于ImageReader.newInstance(bestSize.getWidth(), bestSize.getHeight(),

ImageFormat.JPEG, /maxImages/1);这个函数中的bestSize.getWidth(),getHeight(),是我业务所需要的,这边你可以改成最高的(map.getOutputSizes(ImageFormat.JPEG)这个函数会给你一个Size数组,自己挑个最高的)

第二, 对焦

因为demo上是拍照,我是直接取视频流,拍照时个点击事件,可以告诉相机什么时候取图,而预览没办法告诉相机什么时候取图,这边我是设置成mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE,

CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);

然后在 process函数中Integer afState = result.get(CaptureResult.CONTROL_AF_STATE);改成这样子,就可以获得对焦的状态,我也是打了Log测试了好久发现,afState为6的时候是模糊状态,afState为2时是相机认为的对焦完成状态,可以进CaptureResult类中看下,CaptureResult.CONTROL_AF_STATE_PASSIVE_FOCUSED = 2被认为对焦好的状态,好了,可以取图了。这边一定要把mState改掉,要不然会一直取图,mImageReader会一直有图片存在,会报maxImages什么什么的错误。我也谷歌了好久,都是说image要close。

我做的项目是有扫码功能,只是把最重要的部分完成了,踩了好多坑,花了好多时间,还有一些小地方没做好,等我做完再贴代码吧。

android 接收视频流,Android 获取高清(4K)视频流图片相关推荐

  1. Android中使用系统相机进行拍照并获取高清照片(一)

    打开系统像机功能 方式一: /*** 打开系统像机的功能* @param view*/public void startCamera(View view){Intent intent = new In ...

  2. Android获取自身图标,Android获取高清app图标代码分享

    Android获取高清app图标只有一个方法,具体内容如下 public synchronized static Drawable getIconFromPackageName(String pack ...

  3. 万豪国际集团在华运营酒店超过400家;高清4K登机口智能数码屏亮相虹桥T2国内出发候机厅 | 美通企业日报...

    今日看点:万豪国际集团在华运营酒店超过400家.高清4K登机口数码屏系列亮相上海虹桥机场T2航站楼.三星半导体和三星显示正式在中国启动运营官方新媒体账号.名创优品葡萄牙首家商店开业,加速欧洲市场扩张. ...

  4. 爬虫实例(二)—— 爬取高清4K图片

    大家好,我是 Enovo飞鱼,今天继续分享一个爬虫案例,爬取高清4K图片,加油

  5. 分享Win11壁纸、Windows11高清4K桌面默认壁纸。

    有不少小伙伴发现了win11系统中有不少好看的全新4K高清默认壁纸,不得不说,Windows 11的桌面壁纸其中很多真的很好看,所以有很多同学想用Win11的壁纸.下面,小编把win11中的全部高清默 ...

  6. python手机壁纸超清_详解Python静态网页爬取获取高清壁纸

    前言 在设计爬虫项目的时候,首先要在脑内明确人工浏览页面获得图片时的步骤 一般地,我们去网上批量打开壁纸的时候一般操作如下: 1.打开壁纸网页 2.单击壁纸图(打开指定壁纸的页面) 3.选择分辨率(我 ...

  7. 静态网页爬取:批量获取高清壁纸

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  8. 爬虫入门(一)——静态网页爬取:批量获取高清壁纸

    应老师分的方向,昨天开始自学入门爬虫了 虽然实现了一个比较简单的小爬虫,自己还是非常兴奋的,还是第一次实现  真的好开心 本来想爬pexel上的壁纸,然而发现对方的网页不知道设置了什么,反正有反爬虫机 ...

  9. Python爬虫从入门到精通:(9)数据解析_xpath解析2_爬取4K高清动漫图片_Python涛哥

    使用xpath爬取4K高清动漫图片名称和图片数据 爬取当前页: # 创建文件夹 存储图片 dirName = 'GirlsLib' if not os.path.exists(dirName):os. ...

  10. java实现高清不失真图片压缩

    java实现高清不失真图片压缩 1.从图像文件创建缩略图 Thumbnails.of(new File("original.jpg")).size(160, 160).toFile ...

最新文章

  1. 【BZOJ】1574: [Usaco2009 Jan]地震损坏Damage
  2. MySQL 数据库mysqlbinlog使用问题:unknown variable ‘default-character-set=utf8‘.解决方法
  3. [Python语音识别项目笔记] 3softmax函数
  4. 中高级数论 [欧拉函数线性筛,二次剩余]
  5. append在python里是什么意思_“一棵绿萝七个鬼”是什么意思?卧室里到底能不能养绿萝!...
  6. 肖修鹏:十年磨一剑,成就靠谱职业经理人
  7. 查询mysql各个库和表的大小并按大小输出
  8. 判断一个字符(小写变为大写,大写变小写,数字不变,空格输出space,其他字符输出other)C语言
  9. 网络不通时自动重启网卡的脚本
  10. 设计模式之GOF23建造者模式
  11. 【opencv之Roberts算子】
  12. html中hover的作用,hover在css中的用法
  13. 加速R运算的简易方法-MRO
  14. HLS第十二课(bayer photo)
  15. 请你来说一下数字证书是什么,里面都包含那些内容
  16. 四川省天府新区知识产权信息公共服务网点申报好处条件材料
  17. edgexfoundry docker 容器化部署 ubuntu16.4 跑起来 go0.6.0 版
  18. Grid Control 和 Database Control
  19. autoconf使用环境
  20. gcd中group实现并发任务全部完成后

热门文章

  1. Packet Tracer 思科模拟器入门教程 之九 路由器的基本配置
  2. 计算机文化基础测试题网教,计算机文化基础测试题
  3. Unity从Asset Store下载的资源安装包默认的保存位置及其修改
  4. 最新Everest 企业版(AIDA64)使用SQL保存数据的方法介绍
  5. 含论文答辩PPT任务书源码等基于SSM框架演唱会网上订票系统
  6. java毕向东学习笔记——day01
  7. 游戏美术-魔兽世界查看器的正确使用方法
  8. QuickZIP V1.21 源码 【学习SharpZipLib的必看!】【以SharpZipLib为基础完成】【VB.Net】
  9. [Linux]关于Transmission下载服务器的搭建与配置
  10. MongoDB同步原理解析