zoukankan      html  css  js  c++  java
  • 智能家居之智能监控小记

    1.手机是如何连接摄像头

    第一次连接的时候摄像头需要通过网线和路由器连接,会给摄像头分配一个ip地址,手机使用uid、密码通过ip地址进行连接,类似javaweb中的登陆访问操作

    2.第一次怎么连接摄像头

    首次连接摄像头需要通过网线去连接摄像头,然后手机通过wifi连接路由器,必须得到同一个网段下,然后通过手机去添加摄像头,因为我们已经有uid和密码了,所以不用添加,这样就会在手机中存储下摄像头的相关 信息,添加成功,就可以把网线拔了,下次连接的时候会从手机中将摄像头的信息拿出来,这样就可以实现使用手机在不同网段中连接摄像头了。

    3.操作时阻塞现象

    手机去连接摄像头的时候,是开了一个子线程通过jni调用.so文件中的方法去连接的,为了避免阻塞现象的发送,sdk中对所有的子线程都做了加锁操作,避免线程阻塞

    4.摄像头内部如何实现

    摄像头内部封装了一个微型liunx系统和一个微型的web服务器,我们发送指令是发送给web服务器,然后web服务器根据指令,通过一些算法去告诉摄像头执行什么操作,通过在返还给摄像头一些信息

    5.移动操作中的指令参数:触控点、辅助设备

    触控点:sdk中支持直接用手指在屏幕上滑动实现移动、放大等操作,所有会有一个触 控点的参数,辅助设备:摄像头支持外接麦克风和音响,所以会有一个辅助设备的参数存在,一般触控点和辅助设备我们都有0表示就可以了,代表使用系统默认的参数

    Init ();
    调用init放的时候会通过jni调用.so文件中的方法去初始化IOTC(物联云联机平台)模块,同时初始化av通道的最大数量(av就是音频audio和视频video,用于信号的输入、输出),为连接做准备


    New camera()?
    初始化uid和密码(初始化uid和密码为空字符串)  uid :20位的一个摄像头的唯一标示,密码 :连接摄像头的密码


    registerIOTCListener()?
    设置一个监听IOTC指令的回调监听,用于监听指令的返回信息


    Connect(uid)?
    将我们的uid赋值给camera中uid属性,然后开启一个线程去连接设备,再开启一个线程检验设备的状态


    Start()
    将通道号(手机和摄像头进行连接的一个通道的编号,必须保持一致,如果不一致会导致指令无法发送成功)、用户名、密码设置到av通道中,并开启一个线程启动设备


    sendIOCtrl(channel,type,data[])
    将指令添加到指令执行的队列当中去等待执行,类似MessageQueue


    Type:AVIOCTRLDEFs.IOTYPE_USER_IPCAM_GETSUPPORTSTREAM_REQ
    获取用户摄像头支持的流信息的请求指令类型
    IOTYPE:IO指令的类型
    user:用户
    IPCAM :ip camera 
    getsupportstream :获取支持的流信息
    req :request请求


    data[] :指令的参数


    attachCamera(Camera,channel)
    设置一个回调监听来获取返回的图片信息,同时开启一个渲染线程通过while循环使用Canvas videoCanvas = mSurHolder.lockCanvas();不停的进行图片渲染


    startShow();
    开启一个线程接收视频信息,同时在开启一个线程进行视频解码操作

  • 相关阅读:
    Jmeter设置代理,抓包之app请求
    Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器
    sh命令
    第二篇 Html(13章节)-a标签,img标签,列表,表格
    第一篇-Html标签中head标签,body标签中input系列,textarea和select标签
    给你任意指定生活中的一件物品,你会怎么测试?
    软件缺陷的优先级和严重性定义
    Maven学习总结(三)——使用Maven构建项目
    Maven学习总结(二)——Maven项目构建过程练习
    Maven学习总结(一)——Maven入门
  • 原文地址:https://www.cnblogs.com/xunbu7/p/8117931.html
Copyright © 2011-2022 走看看