Android 取流播放获取资源SDK使用说明书.docx
《Android 取流播放获取资源SDK使用说明书.docx》由会员分享,可在线阅读,更多相关《Android 取流播放获取资源SDK使用说明书.docx(13页珍藏版)》请在冰豆网上搜索。
Android取流播放获取资源SDK使用说明书
AndroidSDK使用说明文档
目录
一.文档阅读说明3
二.SDK内容说明3
三.3.0SDK使用说明4
(1)登录流程:
4
(2)获取资源流程:
4
(3)获取设备信息6
(4)获取播放地址6
(6)远程回放查询接口7
(7)获取的监控点主要作用如下图所示:
8
四.2.0SDK使用说明11
一.文档阅读说明
非常感谢您选购我们公司的产品,申请我们的SDK进行二次开发。
温馨的提醒您在开发前请您对整个说明文档进行仔细阅读,以便整体的了解开发流程。
二.SDK内容说明
该文档主要针对手机客户端iVMS-5060取流播放SDK进行说明,文档介绍区分手机客户端2.0和3.0版本。
2个版本的SDK区分如下:
功能
2.0SDK
3.0SDK
取流方式
支持MAG
支持MAG、VTDU(区分主子码流)
资源获取方式
通过WebView加载平台返回的URL(平台实现,手机客户端只需要实现webview相关内容)
通过VmsNetSDK.jar网络库进行获取资源(需要在手机客户端实现)
是否支持远程回放
否
是
以上是2.0SDK和3.0SDK的主要区别,开发者可以根据平台目前支持的手机客户端版本进行选择,如果该平台支持手机客户端iVMS-5060V2.0系列版本,则需要使用2.0版本的SDK,如果该平台支持手机客户端iVMS-5060V3.0系列版本,则需要使用3.0版本的SDK。
具体平台支持哪个版本的手机客户端,需要咨询平台相关开发人员。
三.3.0SDK使用说明
系统框架图如图3-1所示:
图3-13.0手机客户端与平台系统架构图
(1)登录流程:
首先要获取线路也就是调用getLineList接口
其次调用登录接口login接口,该接口中会用到getLineList接口中返回的线路(具体参考SDKdemo中相关接口注释)
(2)获取资源流程:
获取资源流程,用到的接口有5个
getControlUnitList:
获取控制中心的列表
getRegionListFromCtrlUnit:
从控制中心中获取区域列表
getRegionListFromRegion:
从区域获取区域列表
getCameraListFromCtrlUnit:
从控制中心获取监控点列表
getCameraListFromRegion:
从区域获取监控点列表
以上各个接口的参数说明参考SDKdemo中相关接口注释。
流程如下:
首先获取根目录下的资源信息,根目录也就是控制中心,所以需要调用如下接口
控制中心如图3-2所示
图3-2获取根目录下的资源信息
1.getControlUnitList
2.getRegionListFromCtrlUnit
3.getCameraListFromCtrlUnit
以上接口调用完成后,展示的数据是根目录下所有的控制中心、区域和监控点。
当需要获取根目录下控制中心下的数据时,同样需要调用以上3个接口。
注:
只要是获取控制中心下的数据,都需要调用以上3个接口。
当需要获取区域下数据时,需要调用如下接口,区域展示如图3-3所示:
图3-3获取控制中心下资源
1.getRegionListFromRegion
2.getCameraListFromRegion
以上接口调用完成后,展示出该区域下所有的区域和监控点
注:
只要是获取区域下的数据,都需要调用以上接口。
客户可以根据实际情况将资源列表做成树形结构或者是目前我们手机客户端3.0版本展示的方式(如果层次过深,建议采用我们手机客户端的展示方式)。
(3)获取设备信息
3.0SDK可以通过平台获取设备信息:
getDeviceInfo
调用该接口需要平台地址,登录成功的会话ID(登录成功接口中获取)、监控点ID(资源获取到的监控点对象的一个属性ID)、设备ID(资源获取到的监控点对象的一个属性ID),、返回设备信息的对象(该对象是一个类似指针形式的对象)。
设备信息包含以下内容设备名称、设备编号、设备IP、设备端口、登录设备的用户名(这个是登录设备的用户名,并不是登录平台的用户名)、登录设备的密码(这个是登录设备的密码,并不是登录平台的密码,和登录设备用户名对应)、设备类型、设备供应商等。
(4)获取播放地址
3.0SDK获取播放地址是通过以下接口实现的
getRealPlayURL
调用该接口需要平台地址、登录成功的会话ID(登录成功接口中获取)、监控点ID(资源获取到的监控点对象的一个属性ID)、码流类型、返回播放地址的对象(该对象是一个类似指针形式的对象)。
对于码流类型,如果传入0,在返回的播放地址对象中url1表示主码流,url2表示MAG;如果传入1,在返回的播放地址对象中url1表示子码流,url2表示MAG。
开发者可以根据需要选择对象的码流(清晰度以主码流最为清晰,流畅度以MAG最为流畅)。
(5)云台接口
云台接口采用的是UDP协议,只负责发送,接口如下
sendStartPTZCmd
调用该接口需要的参数有:
云台服务器地址(可以从监控点对象中获取,不需要修改)、云台服务器端口(可以从监控点对象中获取,不需要修改)、登录成功后的会话ID、监控点ID、云台命令(int)、速度。
以上参数的具体说明和使用可以参考SDKDemo中接口说明
常用云台命令介绍如下:
1-云台转上
2-云台转下
3-云台转左
4-云台转右
11-云台左上
12-云台右上
13-云台左下
14-云台右下
7-镜头拉近
8-镜头拉远
9-镜头近焦
10-镜头远焦
(6)远程回放查询接口
远程回放时需要从存储介质中查询回放路径,接口如下
queryCameraRecord
需要的参数有平台地址、登录成功后返回的会话ID、监控点ID、录像类型、录像的存储介质、查询录像的开始时间、查询录像的结束时间、查询录像返回的对象
其中开始时间和结束时间格林威治时间,也就是从1970年1月1日的00:
00:
00.000开始的时间,精确到毫秒。
注:
在使用该接口时,请先了解下格林威治时间和Calendar的使用方法,确保传入的时间是需要查询的时间。
存储介质类型:
0-IPSAN
1-设备录像
2-PCNVR
3-ENVR
4-CISCO
5-DSNVR
7-CVR
目前我们只支持单存储介质查询,开发者可以根据需求进行遍历,实现多项查询。
(7)获取的监控点主要作用如下图所示:
图3-4监控点录像查询、实时预览、云台控制操作流程
常见错误及排查方式
N类错误排除方式
N122、N123、N124、N125
1.请检查您手机的网络;
2.请确认服务器是否在线。
N124、N140、N141、N142
1.请向平台确认该平台是否与手机客户端完成对接。
N170
1.请检查流媒体服务器是否开启。
N171
1.请向平台管理员确认是否具有控制权限。
R类错误排除方式
R1
1.重启客户端;
2.更换手机。
R3、R13
1.重启客户端。
R12
1.要求平台查询getDeviceInfo接口返回的设备名称密码是否为空。
R14
1.重启客户端;2.关闭一些别的正在运行的软件。
R17
1.要求平台查询getRealPlayURL接口返回的Rtsp地址是否正确。
R18
1.手机所处的网络是否可以连通流媒体,检查流媒体的网络是否通;
2.请进入“更多”页面,检查通讯线路是否选择正确。
R103、R104、R202、R203、R302、R303、R402、R403、R502、R503、R602、R603、R702、R703、R802、R803
1.网络不好引起,换个时间请求或者换个网络环境。
R101、R105、R106、R204、R205、R304、R305、R404、R405、R504、R505、R604、R605、R704、R705、R804、R805
1流媒体回复信令错误,需要在服务器抓包判断。
R903、R1001
流媒体取流端口不通
1.请检查udp端口是否映射;
2.关闭防火墙。
R1103
流媒体取流端口
1.请检查tcp端口是否映射;
2.关闭防火墙。
M7
Uri解析错误
运行常见错误表
N类错误码及错误描述,主要与CMS进行交互
N100
输入参数错误
N120
创建url对象失败
N121
创建request对象失败
N122
http请求超时
N123
http请求异常
N124
http请求返回非200
N125
http请求返回空
N140
创建datadoc对象失败
N141
获取root节点失败
N142
解析返回状态码和描述失败
N160
不存在数据
N161
URL请求时参数缺少或参数错误
N162
会话错误
N163
用户不存在
N164
密码错误
N165
设备不存在
N166
监控点不存在
N167
线路不存在
N168
控制中心不存在
N169
区域不存在
N170
流媒体没有被启用
N171
没有权限
N172
录像不存在
N173
用户被冻结
N174
用户已经登录
N175
没有支持
N199
未知错误
N198
平台需要提示的错误描述
N200
服务器异常
R类错误码及错误描述,主要与流媒体服务器相关
R 1
HPR初始化失败
R2
消息队列启动失败
R3
RtspClient未初始化
R4
协议不支持
R5
回调参数为空
R6
创建Rtsp引擎失败
R7
分配Rtsp引擎数超过最大数(32)
R8
无效的引擎ID
R9
引擎不存在
R10
引擎为空
R11
开始时间为空
R12
设备名称或者密码为空
R13
错误的基础端口号
R14
内存分配失败
R15
引擎未初始化
R16
MAG、VTDU4.0不支持RtporTcp
R17
Rtsp地址错误
R18
连接流媒体服务器失败
R19
不在播放状态
R101
Describe重定向失败
R102
生成Describe信令失败
R103
发送Describe信令失败
R104
接受Describe信令失败
R105
Describe回复非200OK
R106
Describe解析失败
R201
生成Setup信令失败
R202
发送Setup信令失败
R203
接收Setup信令失败
R204
Setup回复非200OK
R205
解析Setup失败
R301
生成Play信令失败
R302
发送Play信令失败
R303
接收Play信令失败
R304
Play回复非200OK
R401
创建改变速率信令失败
R402
发送改变速率信令失败
R403
接收改变速率信令失败
R404
改变速率回复非200OK
R501
创建强制I帧信令失败
R502
发送强制I帧信令失败
R503
接收强制I帧信令失败
R504
强制I帧回复非200OK
R601
创建随机定位信令失败
R602
发送随机定位信令失败
R603
接收随机定位信令失败
R604
随机定位回复非200OK
R701
创建暂停信令失败
R702
发送暂停信令失败
R703
接收暂停信令失败
R704
暂停回复非200OK
R705
不在暂停状态
R801
创建恢复信令失败
R802
发送恢复信令失败
R803
接收恢复信令失败
R804
恢复回复非200OK
R901
创建RtpUdp引擎失败
R902
初始化RtpUdp引擎失败
R903
开始RtpUdp引擎失败
R1001
创建RtcpUdp引擎失败
R1002
初始化RtcpUdp引擎失败
R1003
开始RtcpUdp引擎失败
R1101
创建RtpTcp引擎失败
R1102
初始化RtpTcp引擎失败
R1103
开始RtpTcp引擎失败
R1201
创建RtpRtsp引擎失败
R1202
初始化RtpRtsp引擎失败
R1203
开始RtpRtsp引擎失败
四.2.0SDK使用说明
如果开发人员使用的3.0的SDK,后面的内容可以不用看。
2.0手机客户端系统结构如图4-1所示:
图4-12.0手机客户端与平台系统架构图
2.0开发相对比较简单,没有资源获取的过程,资源的展示是通过WebView加载平台返回的URL实现的。
登录流程:
2.0登录过程其实是一个加载URL的过程,这个URL是通过平台地址、用户名、密码进行组合的,具体组合方式见2.0SDKDemo中getHttpUrl方法。
开发者可以通过WebView进行加载,后续工作都会在WebView中进行操作,直到跳入预览界面。
2.0SDK开发中,需要注意的是在什么时候跳入预览界面,开发者可以参考2.0SDKDemo中WebActivity中verifyRtspUrl方法,通过判断加载的url是否包含"rtsp:
//"来进行跳转识别。
所以基于2.0SDK开发,只需要在Demo中修改下平台地址、用户名、密码即可,如果开发者需要登录页面,只需要在点击登录按钮时,将平台地址、用户名、密码传递过来即可。
2.0的预览流程,相对较为简单,只有MAG取流方式,在进入预览界面时,只要获取到播放地址就可以点击播放按钮进行预览。
WebActivity向预览界面跳转时会携带URL,以“rtsp:
//”开始的url就是预览地址。