在采集视频的同时需要对视频进行实时处理,因此要使用到多线程。

AsyncTask是android提供的一个处理异步任务的框架,相当于Handler+Thread。相比而言,AsyncTask的优点是封装良好,代码简洁。

使用AsyncTask可以使你在后台执行耗时任务(doInBackground)并将结果反馈给UI线程(onPostExecute),方便UI线程更新界面,而不会阻塞UI线程。

参考链接:http://www.netfoucs.com/article/RowandJJ/69121.html

使用的代码:

   //2. 开启一个线程进行实施处理帧/*自定义的IndentifyTask类,开启一个线程分析数据*/private class IndentifyTask extends AsyncTask<Void, Void, Void>{private byte[] mData;//构造函数IndentifyTask(byte[] data){this.mData = data;}@Overrideprotected Void doInBackground(Void... params) {// TODO Auto-generated method stub//Size size = myCamera.getParameters().getPreviewSize(); //获取预览大小final int w = myCamera.getParameters().getPreviewSize().width;  //宽度final int h = myCamera.getParameters().getPreviewSize().height;final YuvImage image = new YuvImage(mData, ImageFormat.NV21, w, h, null);ByteArrayOutputStream os = new ByteArrayOutputStream(mData.length);if(!image.compressToJpeg(new Rect(0, 0, w, h), 100, os)){return null;}byte[] tmp = os.toByteArray();Bitmap bmp = BitmapFactory.decodeByteArray(tmp, 0,tmp.length); //doSomethingNeeded(bmp);   //自己定义的实时分析预览帧视频的算法processBmp( bmp );//自己定义的实时分析预览帧视频的算法return null;}    } 
//1.建立一个全局变量
IndentifyTask m_IndentifyTask ;

//3.在处理帧函数里面添加处理逻辑

@Override
public void onPreviewFrame(byte[] data, Camera arg1) {if(starttime  == 0) {starttime = System.currentTimeMillis();}long time = System.currentTimeMillis()-starttime;long current = time / 1000;Log.d("video", "video recorder =========================remains  "+current +"  "+(time % 1000));//在处理帧函数里面添加处理逻辑switch(m_IndentifyTask.getStatus()){case RUNNING:return;case PENDING:m_IndentifyTask.cancel(false);break;}m_IndentifyTask= new IndentifyTask(data);m_IndentifyTask.execute((Void)null);}

安卓多线程——AsyncTask相关推荐

  1. Android 多线程-----AsyncTask详解

    您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态. 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内 ...

  2. android多线程下载原理,安卓多线程断点续传下载功能(靠谱第三方组件,原理demo)...

    一,原生的DownloadManager 从Android 2.3(API level 9)开始,Android以Service的方式提供了全局的DownloadManager来系统级地优化处理长时间 ...

  3. Android多线程--AsyncTask

    常见的多线程方法有: 继承Thread类 实现Runnable接口 Handler AsyncTask HandlerThread 1.定义 一个Android已经封装好的轻量级异步类 属于抽象类,即 ...

  4. Android必学之AsyncTask,多线程AsyncTask,详细AsyncTask使用教程

    AsyncTask,即异步任务,是Android给我们提供的一个处理异步任务的类.通过此类,可以实现UI线程和后台线程进行通讯,后台线程执行异步任务,并把结果返回给UI线程. 为什么需要使用异步任务? ...

  5. Android 多线程-----AsyncTask详解(康小岱已读)

    本篇随笔将讲解一下Android的多线程的知识,以及如何通过AsyncTask机制来实现线程之间的通信. 一.Android当中的多线程 在Android当中,当一个应用程序的组件启动的时候,并且没有 ...

  6. Android 多线程AsyncTask详解

    原文地址:http://www.cnblogs.com/xiaoluo501395377/p/3430542.html 本篇随笔将讲解一下Android的多线程的知识,以及如何通过AsyncTask机 ...

  7. 安卓多线程编程系列3:使用handler和message下载网络图片

    使用handler和message进行网络操作是多线程编程经常使用的形式,下面我们来一起看一下它的使用方法. 整体思路:触发一个事件,在这个事件中开启一个线程,在这个线程中定义消息,在消息中携带数据, ...

  8. 【技术漫谈】Android高手进阶,安卓多线程面试题

    一 我最近也是跟一些同学的交流啊,拿我自己的一些事情来看,其实做了很多的一些.更加底层的一些东西了,包括一些.电子方面的一些编程,然后也会涉及到一些Linux里面的一些驱动方面的一些事情,最近是在做这 ...

  9. 大话Android多线程(六) AsyncTask知识扫盲

    版权声明:本文为博主原创文章,未经博主允许不得转载 源码:github.com/AnliaLee 大家要是看到有错误的地方或者有啥好的建议,欢迎留言评论 前言 本章我们将结合之前几篇博客,来研究研究多 ...

最新文章

  1. 友盟分享和cocos2dx符合重复duplicate symbol 解决方案
  2. #在蓝懿学习iOS的日子#第六个练习日
  3. 第五周-第11章节-Python3.5-内置模块详解之Xml模块
  4. 在批处理中运行.sql文件
  5. Oracle 分析及动态采样
  6. 番茄花园win11 32位专业版镜像v2021.08
  7. Detours的作用和实例(hook、钩子)
  8. 【Spring笔记】使用注解开发
  9. 腾讯专访 | 子芽:代码疫苗技术,赋能数字化应用内生安全自免疫
  10. 小米2s自带rec刷root_关于vivo手机的root
  11. 汇丰银行借沟通CTBS远程管理帐务
  12. pip 下载whl文件
  13. python中死循环有用吗_Python里是否存在死循环
  14. 腾讯云IM集成问题汇总
  15. 选择器权重及字体属性
  16. 【ACWing】658. 一元二次方程公式
  17. 人力资源管理计算机基础,人力资源管理-专-李佑强-计算机应用基础实践报告.doc...
  18. python制作一个网易音乐下载器
  19. Centos6.3挂载移动硬盘,新硬盘方法
  20. VB 6.0 如何在64位操作系统下运行!

热门文章

  1. javascript面向对象技术基础(四)
  2. vuex 基本入门和使用(一)
  3. spring cloud学习进阶篇:Spring Cloud Sleuth + Zipkin 实现分布式跟踪解决方案
  4. zend studio安装xdebug调试工具
  5. 每个用户做独立的线程同步
  6. RedHat 5.4 RHCE VSFTPD学习笔记
  7. mysql 内置功能 存储过程介绍
  8. [UE4]创建游戏、加入游戏
  9. HTML-JS 循环 函数 递归
  10. C#基础知识学习(2)string类中的方法