关闭

开源流媒体客户端EasyClient手机端控制摄像机EasyCamera云台PTZ控制实现

标签: EasyDarwinEasyClientEasyCamera手机云台控制EasyCMS
1333人阅读 评论(0) 收藏 举报
分类:

本文转自EasyDarwin开源团队成员kim的博客:http://blog.csdn.net/jinlong0603/article/details/51835308


EasyCamera是EasyDarwin开源团队开发的一款植入摄像机内部的嵌入式程序,功能是将普通IP Camera与EasyDarwin流媒体云平台(EasyCMS、EasyDarwin、EasyRMS等云服务器)对接,上传数据、接受指令控制,形成一套云摄像机方案。

EasyCamera目前已经提供了云台控制的功能,大家可以查阅EasyDarwin的协议文档。本文就介绍下Android客户端如何实现对EasyCamera的云台控制。

首先,简单介绍下Android客户端(EasyClient)如何与EasyCamera交互的。EasyClient并不直接与EasyCamera进行通信。EasyCamera开机时会将中心管理服务器(EasyCMS)发送注册请求、发送快照等,并且一直定时发送注册、快照进行保活。EasyCMS记录了所有当前在线的EasyCamera信息。当Android客户端EasyClient打开时,首先会向EasyCMS获取当前在线的EasyCamera列表。EasyClient请求某个Camera视频时,EasyCMS会通知对应的EasyCamera将视频流推送到指定的EasyDarwin服务器上,EasyClient从该EasyDarwin服务器上获取到实时视频流进行播放。

从EasyClient上云台控制EasyCamera,是EasyClient向EasyCMS服务器发送一个请求,内容包括设备序列号、动作等,参见协议文档4.9节。EasyCMS回复MSG_SC_PTZ_CONTROL_ACK给EasyClient后,会将请求内容发送给对应的EasyCamera进行控制。

我定义了两个枚举,枚举了控制类型(单步还是连续),控制动作(上下左右停等)。

[java] view plain copy
  1. enum ControlType{  
  2.     TYPE_SINGLE("single"),  
  3.     TYPE_CONTINUE("continuous");  
  4.     private String des;  
  5.   
  6.     private ControlType(String string) {  
  7.         des=string;  
  8.     }  
  9.   
  10.     public String GetDes() {  
  11.         return des;  
  12.     }  
  13. }  
  14.   
  15. enum ControlCmd{  
  16.     CMD_MOVESTOP("stop"),  
  17.     CMD_MOVEUP("up"),  
  18.     CMD_MOVEDOWN("down"),  
  19.     CMD_MOVELEFT("left"),  
  20.     CMD_MOVERIGHT("right"),  
  21.     CMD_ZOMEIN("zoomin"),  
  22.     CMD_ZOMEOUT("zoomout");  
  23.     private String des;  
  24.   
  25.     private ControlCmd(String string) {  
  26.         des=string;  
  27.     }  
  28.   
  29.     public String GetDes() {  
  30.         return des;  
  31.     }  
  32. }  


在EasyPlayerActivity.java中增加4个按键, 分别为上下左右,并增加OnTouchListener接口,当按键按下时持续转动,释放按键时停止转动。

[java] view plain copy
  1. @Override  
  2.     public boolean onTouch(View v, MotionEvent event) {  
  3.         if(TextUtils.isEmpty(mDevSerial)){  
  4.             return true;  
  5.         }  
  6.   
  7.         switch (event.getAction()){  
  8.             case MotionEvent.ACTION_DOWN:  
  9.                 switch (v.getId()){  
  10.                     case R.id.btMoveUp:  
  11.                         sendControlCommand(ControlCmd.CMD_MOVEUP, ControlType.TYPE_CONTINUE);  
  12.                         break;  
  13.                     case R.id.btMoveDown:  
  14.                         sendControlCommand(ControlCmd.CMD_MOVEDOWN, ControlType.TYPE_CONTINUE);  
  15.                         break;  
  16.                     case R.id.btMoveLeft:  
  17.                         sendControlCommand(ControlCmd.CMD_MOVELEFT, ControlType.TYPE_CONTINUE);  
  18.                         break;  
  19.                     case R.id.btMoveRight:  
  20.                         sendControlCommand(ControlCmd.CMD_MOVERIGHT, ControlType.TYPE_CONTINUE);  
  21.                         break;  
  22.                 }  
  23.                 break;  
  24.             case MotionEvent.ACTION_UP:  
  25.             case MotionEvent.ACTION_CANCEL:  
  26.                 sendControlCommand(ControlCmd.CMD_MOVESTOP, ControlType.TYPE_CONTINUE);  
  27.                 break;  
  28.             default:  
  29.                 break;  
  30.         }  
  31.   
  32.         return false;  
  33.     }  


源码参见Github上EasyClient,地址:https://github.com/EasyDarwin/EasyClient


获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

Copyright © EasyDarwin.org 2012-2016

EasyDarwin


1
0
查看评论

EasyDarwin EasyClient开源流媒体播放器,支持多窗口显示

EasyDarwin开源团队开源的EasyClient客户端将支持流媒体采集、编码、推送、播放、抓图、录像、Onvif 等全套功能(大家持续关注我们Github的commit),其中播放功能是开源流媒体播放器EasyClient 的核心部分: 目前EasyClient的播放不像vlc那么全面,目前...
  • xiejiashu
  • xiejiashu
  • 2015-12-13 18:01
  • 5023

用EasyClient开源项目采集Windows摄像头/麦克风的音视频进行RTSP直播

EasyClient是EasyDarwin开源流媒体团队开发的一款功能丰富的开源PC客户端项目,目前支持Windows、Android版本,后续将支持ios版本,其中Windows版本的EasyClient支持多种源接入,包括Windows摄像头、麦克风、RTSP摄像机、屏幕桌面等,采集后经过x26...
  • xiejiashu
  • xiejiashu
  • 2015-11-28 22:51
  • 7341

利用EasyRTSTClient推海康视频流到EasyDarwin

  • 2016-01-08 17:03
  • 3.22MB
  • 下载

EasyClient实现IPCamera摄像机远程云台控制、语音对讲等功能

EasyDarwin云平台EasyDarwin云平台是一套由EasyDarwin、EasyCMS、EasyCamera、EasyClient、nginx、redis构成的完整云平台架构,支持分布式、跨平台、多点部署,流媒体服务器支持负载均衡,按需直播,非常适用于互联网化的安防、智能家居、幼教平台、透...
  • jinlong0603
  • jinlong0603
  • 2017-03-06 22:38
  • 680

EasyDarwin EasyClient开源流媒体客户端源码功能框架解析

EasyClient是EasyDarwin开源流媒体团队开发的一款功能丰富的开源PC客户端项目,目前支持Windows、Android版本,后续将支持ios版本,其中Windows版本的EasyClient支持多种源接入,包括Windows摄像头、麦克风、RTSP摄像机、屏幕桌面等,采集后经过x26...
  • SwordTwelve
  • SwordTwelve
  • 2015-11-29 22:37
  • 2918

基于EasyDarwin云平台实现的EasyClient客户端与EasyCamera摄像机之间的对讲与云台控制功能

本文转自EasyDarwin团队Kim的博客,感谢Kim长期对EasyDarwin开源项目的贡献:http://blog.csdn.net/jinlong0603EasyDarwin云平台是一套由EasyDarwin、EasyCMS、EasyCamera、EasyClient、nginx、redis...
  • xiejiashu
  • xiejiashu
  • 2017-03-06 22:48
  • 861

EasyClient中DShow本地采集视频参数设置及可能出现的错误提示详解

在近期发布的多窗口EasyClient版本(windows v1.2.1.5)中,由于界面的局限性,选择性的将本地采集的音视频参数设置在界面上剔除掉了(暂时还没想好放在哪里,后续版本会在界面调整后添加),大家可以查看EasyClient源码中的StartDSCapture函数的参数设置代码进行相应设...
  • SwordTwelve
  • SwordTwelve
  • 2015-12-20 13:57
  • 910

easyclient

  • 2018-01-10 09:58
  • 49.23MB
  • 下载

EasyDarwin开源云平台接入海康威视EasyCamera摄像机之快照获取与上传

本文转自EasyDarwin团队成员Alex的博客:http://blog.csdn.net/cai6811376EasyCamera开源摄像机拥有获取摄像机实时快照并上传至EasyDarwin云平台的功能,那么我们如何使用海康的摄像机SDK获取实时快照呢?我们看海康SDK的说明文档中有我们使用这个...
  • xiejiashu
  • xiejiashu
  • 2016-10-08 14:08
  • 1913

[工具]利用EasyRTSPClient工具检查摄像机RTSP流不能播放原因以及排查音视频数据无法播放问题

出现问题我们在做流媒体开发的过程中,进程会出现摄像机RTSP流莫名其妙无法播放的问题,而我们常用的vlc经常是直接弹出一个无法播放的提示框就完事了,没有说明出错的原因,或者在vlc的消息里面能看到日志消息,但是并不能清晰地将整个RTSP的流程及服务器返回的错误码反馈给开发者,而且有的时候vlc或者f...
  • xiejiashu
  • xiejiashu
  • 2016-11-10 19:47
  • 2340
    个人资料
    • 访问:1275622次
    • 积分:12173
    • 等级:
    • 排名:第1437名
    • 原创:169篇
    • 转载:163篇
    • 译文:0篇
    • 评论:384条
    #联系我#

    babosa(a)easydarwin.org


    QQ:289042893


    最新评论