安卓多线程——AsyncTask
在采集视频的同时需要对视频进行实时处理,因此要使用到多线程。
AsyncTask是android提供的一个处理异步任务的框架,相当于Handler+Thread。相比而言,AsyncTask的优点是封装良好,代码简洁。
参考链接: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相关推荐
- Android 多线程-----AsyncTask详解
您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态. 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内 ...
- android多线程下载原理,安卓多线程断点续传下载功能(靠谱第三方组件,原理demo)...
一,原生的DownloadManager 从Android 2.3(API level 9)开始,Android以Service的方式提供了全局的DownloadManager来系统级地优化处理长时间 ...
- Android多线程--AsyncTask
常见的多线程方法有: 继承Thread类 实现Runnable接口 Handler AsyncTask HandlerThread 1.定义 一个Android已经封装好的轻量级异步类 属于抽象类,即 ...
- Android必学之AsyncTask,多线程AsyncTask,详细AsyncTask使用教程
AsyncTask,即异步任务,是Android给我们提供的一个处理异步任务的类.通过此类,可以实现UI线程和后台线程进行通讯,后台线程执行异步任务,并把结果返回给UI线程. 为什么需要使用异步任务? ...
- Android 多线程-----AsyncTask详解(康小岱已读)
本篇随笔将讲解一下Android的多线程的知识,以及如何通过AsyncTask机制来实现线程之间的通信. 一.Android当中的多线程 在Android当中,当一个应用程序的组件启动的时候,并且没有 ...
- Android 多线程AsyncTask详解
原文地址:http://www.cnblogs.com/xiaoluo501395377/p/3430542.html 本篇随笔将讲解一下Android的多线程的知识,以及如何通过AsyncTask机 ...
- 安卓多线程编程系列3:使用handler和message下载网络图片
使用handler和message进行网络操作是多线程编程经常使用的形式,下面我们来一起看一下它的使用方法. 整体思路:触发一个事件,在这个事件中开启一个线程,在这个线程中定义消息,在消息中携带数据, ...
- 【技术漫谈】Android高手进阶,安卓多线程面试题
一 我最近也是跟一些同学的交流啊,拿我自己的一些事情来看,其实做了很多的一些.更加底层的一些东西了,包括一些.电子方面的一些编程,然后也会涉及到一些Linux里面的一些驱动方面的一些事情,最近是在做这 ...
- 大话Android多线程(六) AsyncTask知识扫盲
版权声明:本文为博主原创文章,未经博主允许不得转载 源码:github.com/AnliaLee 大家要是看到有错误的地方或者有啥好的建议,欢迎留言评论 前言 本章我们将结合之前几篇博客,来研究研究多 ...
最新文章
- 友盟分享和cocos2dx符合重复duplicate symbol 解决方案
- #在蓝懿学习iOS的日子#第六个练习日
- 第五周-第11章节-Python3.5-内置模块详解之Xml模块
- 在批处理中运行.sql文件
- Oracle 分析及动态采样
- 番茄花园win11 32位专业版镜像v2021.08
- Detours的作用和实例(hook、钩子)
- 【Spring笔记】使用注解开发
- 腾讯专访 | 子芽:代码疫苗技术,赋能数字化应用内生安全自免疫
- 小米2s自带rec刷root_关于vivo手机的root
- 汇丰银行借沟通CTBS远程管理帐务
- pip 下载whl文件
- python中死循环有用吗_Python里是否存在死循环
- 腾讯云IM集成问题汇总
- 选择器权重及字体属性
- 【ACWing】658. 一元二次方程公式
- 人力资源管理计算机基础,人力资源管理-专-李佑强-计算机应用基础实践报告.doc...
- python制作一个网易音乐下载器
- Centos6.3挂载移动硬盘,新硬盘方法
- VB 6.0 如何在64位操作系统下运行!