UVC系列1-Android盒子控制云台摄像头系列

2024-06-01 06:18

本文主要是介绍UVC系列1-Android盒子控制云台摄像头系列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Android作为host端控制云台摄像头整个实现过程中涉及了Android kernel底层UVC部分,Android kernel代码的编译,USB协议,Android JNI方面的知识。

刚开始项目提出这个需求的时候,想到的是通过Android原生的USB API 去控制外接的USB PTZ摄像头,因为大多数的云台摄像头支持pelco-d或是pelco-p协议,而Android提供的接口可以传递byte[]类型的参数过去,设想通过这种方式实现控制。现在回想起来这个方法真是too young to naive。因为Android kernel层是通过UVC(usb video class)协议取控制摄像头PTZ,需要走这一套逻辑才能实现。

由此思路开始转到通过Android UVC来控制摄像头转动,但是google了大大小小的网站没有人做过这个东西,侧面也在一定程度上说明了需求足够操蛋。UVC在Android的kernel层,但是怎么去验证这个东西呢,就想到了有Ubuntu,而Ubuntu上面有一个工具uvcdyctrl 可以输入对应的参数控制摄像头,于是通过这个工具验证了在linux下控制云台转动的可能性。

紧接着要解决的是如何把这个可能性移植到Android上,从前期的实践看,是需要查看kernel层的实现,kernel层的参数是否实现了相对和绝对的控制;如果kernel层实现了,怎么把这个实现传递到app层面,让app可以输入参数控制转动。

现在思路很清晰了,就是打通从kernel到app的通道,实现控制,将app层的控制指令传递到kernel,由kernel将控制字节传递到硬件。

接下来的文章是:

  • 1、探索Android UVC协议;

  • 2、研究UVC控制协议;

  • 3、定制Android kernel UVC部分支持相对和绝对参数;

  • 4、编写Android jni代码实现控制PTZ。

这篇关于UVC系列1-Android盒子控制云台摄像头系列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1020207

相关文章

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制

使用DrissionPage控制360浏览器的完美解决方案

《使用DrissionPage控制360浏览器的完美解决方案》在网页自动化领域,经常遇到需要保持登录状态、保留Cookie等场景,今天要分享的方案可以完美解决这个问题:使用DrissionPage直接... 目录完整代码引言为什么要使用已有用户数据?核心代码实现1. 导入必要模块2. 关键配置(重点!)3.

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js

SpringSecurity 认证、注销、权限控制功能(注销、记住密码、自定义登入页)

《SpringSecurity认证、注销、权限控制功能(注销、记住密码、自定义登入页)》SpringSecurity是一个强大的Java框架,用于保护应用程序的安全性,它提供了一套全面的安全解决方案... 目录简介认识Spring Security“认证”(Authentication)“授权” (Auth

python之流程控制语句match-case详解

《python之流程控制语句match-case详解》:本文主要介绍python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录match-case 语法详解与实战一、基础值匹配(类似 switch-case)二、数据结构解构匹

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

Android如何获取当前CPU频率和占用率

《Android如何获取当前CPU频率和占用率》最近在优化App的性能,需要获取当前CPU视频频率和占用率,所以本文小编就来和大家总结一下如何在Android中获取当前CPU频率和占用率吧... 最近在优化 App 的性能,需要获取当前 CPU视频频率和占用率,通过查询资料,大致思路如下:目前没有标准的