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();
    开启一个线程接收视频信息,同时在开启一个线程进行视频解码操作

  • 相关阅读:
    ajax专题
    luogu P1346 电车 最短路
    luogu P1462 通往奥格瑞玛的道路 最短路
    luogu P1328 生活大爆炸版石头剪刀布
    luogu P1315 联合权值 枚举
    luogu P1156 垃圾陷阱 背包问题
    luogu P1217 回文质数 枚举
    luogu P3650 滑雪课程设计 枚举
    luogu1209 修理牛棚 贪心
    luogu P1223 排队接水 贪心
  • 原文地址:https://www.cnblogs.com/xunbu7/p/8117931.html
Copyright © 2011-2022 走看看