热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

androidc摄像头v4l2,androidv4l2摄像头,不基于camera框架

前一段事件做了一个在android平板上跑usb摄像头的程序,该程序不许要camera框架,仅仅是调用了jni,其实和大部分播放器的原理一

前一段事件做了一个在android平板上跑usb摄像头的程序,该程序不许要camera框架,仅仅是调用了jni,其实和大部分

播放器的原理一样,只不过一个数据是从视频文件中读取出来的,而一个是从camera摄像头里面取出来的。

具体代码不能贴出来但是我可以把原理说一下,你们按照这个过程就可以搞定了,你可以拿作设计的方案,最起码我可以告诉你

这个方案是可行的。

要想一块平板能够支持usb摄像头,首先你得有usb口,因为大多没有usb口的设备都是只支持usb slave 而不支持usb host

而我们需要的是usb host,第二你的平板中要有相应的摄像头驱动,一般的通用摄像头都是v4l2+uvc 2个框架模块。

这里我得友情提示一下了,如果你作的是系统性的 ,肯定是ok的,如果你作的是apk,这里就有一个问题了,因为当摄像头

设备被设别的时候,有些厂家会把自动生成的设备节点的权限设定为不可读,这样你可以放弃了,所以你得有心里准备。

如果以上问题都没有问题,那么下面的就可以走入正题了,首先从摄像头取出数据,然后对每一帧进行解码,然后转换成RGB565

,最后直接丢到surface的画布上就行了。路线是  读数据-》解码-》转换RGB565-》丢给surface。

怎么解码转码就不多说了,但是上来肯定要解码,一半的图片传输数据都是被压缩过的。下面说一下怎么丢给surface的问题,开始我们

是用C++创建的surface对象,然后用lock,unlock进行数据的推送,这样肯定是没问题的,如果你都是靠命令运行的话,但是如果做成apk

你会发现从java端用的jni是没有权限创建surface的,所以c++创建surface是行不通的。

那么就只能在java层创建一个surfcaeview,然后把对象传到jni层,以指针的形式,同时把surfaceview的2个重要函数lock,unlockAndpost(名字

可能不对),也以指针的形式传到jni层,这样在jni 层就可以对java的surface进行数据的操作了。

按照我说的是肯定行的通的,但是得满足我所说的条件,还有一点就是如果是用ffmpeg软解码,帧率可能有点慢,这和surface的大小,图片的分辨率都有关系

,好了就说这么多了,具体的操作得你们自己研究了,你要学会如何用c层如何调java。



推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
  • 今天就跟大家聊聊有关怎么在Android应用中实现一个换肤功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根 ... [详细]
  • 近来有一个需求,是需要在androidjava基础库中插入一些log信息,完成这个工作需要的前置条件有编译好的android源码具体android源码如何编译,这 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 在开发app时,使用了butterknife后,在androidStudio打包apk时可能会遇到报错。为了解决这个问题,可以通过打开proguard-rules.pro文件进行代码混淆来解决。本文介绍了具体的混淆代码和方法。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • Windows7企业版怎样存储安全新功能详解
    本文介绍了电脑公司发布的GHOST WIN7 SP1 X64 通用特别版 V2019.12,软件大小为5.71 GB,支持简体中文,属于国产软件,免费使用。文章还提到了用户评分和软件分类为Win7系统,运行环境为Windows。同时,文章还介绍了平台检测结果,无插件,通过了360、腾讯、金山和瑞星的检测。此外,文章还提到了本地下载文件大小为5.71 GB,需要先下载高速下载器才能进行高速下载。最后,文章详细解释了Windows7企业版的存储安全新功能。 ... [详细]
  • 如何压缩网站页面以减少页面加载时间
    本文介绍了影响网站打开时间的两个因素,即网页加载速度和网站页面大小。重点讲解了如何通过压缩网站页面来减少页面加载时间。具体包括图片压缩、Javascript压缩、CSS压缩和HTML压缩等方法,并推荐了相应的压缩工具。此外,还提到了一款Google Chrome插件——网页加载速度分析工具Speed Tracer。 ... [详细]
  • android ... [详细]
author-avatar
手机用户2602900871
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有