汉邦一点通安卓一直显示设备离线怎么办

暂无公告!
安全、简单、稳定的互联互通基础服务
客户端软件
主机,移动端(Windows、Android、IOS)
客户端软件
Windows、Android、IOS
一点通设备
全线设备软件升级(DVR、NVR、IPC)
一点通设备
全新一点通设备,多类型,多协议
设备标注、录像回放、设备查找、全屏地图
支持百度矢量地图、卫星地图和三维地图
一点通设备线上购买渠道
亲,还不来选购您的一点通产品?
用户登陆后可使用E-mail再次建立账号
登录用户可直接使用E-Mail注册
关注一点通
一点通微信、微博提供实时信息及辅助服务
关注一点通
一点通微信、微博
公共交流平台
一点通用户使用中的各种问题,建议,相互交流的平台
公共交流平台
一点通使用交流
移动端网站
一点通移动端设备浏览站点
移动端网站
随时随地了解一点通动态
丰富、高效、便捷的联网解决方案
将一点通分享到:
hbydt.cn. All rights reserved. | 京ICP备号-1 | 京公网安备64号
关注一点通
请关注一点通微信
请关注一点通微博
移动端网站
一点通介绍视频
登录您的账号一点通用户登录
使用已有账号登录:
长时间不访问会自动退出,需要重新登录!
第一次访问请
,忘记密码请
hbydt.cn. All rights reserved. | 京ICP备号-1 | 京公网安备64号
登录您的账号汉邦一点通pro手机连接显示未知错误怎么办_百度知道
汉邦一点通pro手机连接显示未知错误怎么办
我有更好的答案
没有设置好!找我25 2 2 3 0 9 9 88
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。汉邦一点通怎么添加设备?汉邦一点通设备添加方法介绍汉邦一点通怎么添加设备?汉邦一点通设备添加方法介绍汉邦一点通怎么添加设备?汉邦一点通设备添加方法介绍 11:59:14 汉邦一点通帮你的进行远程操作,还能添加设备进行使用哦,而汉邦一点通怎么添加设备?在此,小编给你的添加教程介绍哦。大小:22.1MB汉邦一点通Pro攻略标签:标签:相关汉邦一点通Pro下载3.4MB3.4MB3.4MB3.4MB3.4MB3.4MB3.4MB3.4MB3.4MB3.4MB(版本:2.0.171211)
功能更新:
1.增加扫描二维码添加一点通盒子下设备功能以及相关界面。
2.开放一点通添加盒子下设备接口。
3.注销demo内开发者信息,各位开发者请在使用demo之前向相关人员提供邮箱以便获取唯一开发者信息。
(版本:1.0.170419)
功能更新:
Demo中增加了流媒体登录:loginSms(String address, int nPort, String serialNo, int nChannelCount)
(版本:1.0.160524)
功能更新:
(版本:2.0.171211)
功能更新:
1.增加扫描二维码添加一点通盒子下设备功能以及相关界面。
2.开放一点通添加盒子下设备接口。
3.注销demo内开发者信息,各位开发者请在使用demo之前向相关人员提供邮箱以便获取唯一开发者信息。
(版本:1.0.170622)
功能更新:
1.&&一点通账号的注册、找回密码、登录和注销,以及账号下的设备管理,包括添加、删除等功能。
2.&&和监控设备的网络通信,如登录设备,设备相关参数的获取和修改,查询录像文件以及请求实时预览和录像文件的视频数据等。
3.&&视频解码和显示,音频解码和播放
SDK说明文档(android版)
1.开发前准备
1.1. 开发环境:Android Studio
1.2. 打开工程,选择File --> New --> Import Module
1.3. 选择ydtlibrary的路径
1.4. 添加对ydtlibrary模块的依赖。
例如app要依赖ydtlibrary,则在app处右键选择Open Module Settings在弹出的界面中选择app --> Dependencies --> + --> Module dependency
选择:ydtlibrary
1.5. 配置路径
打开app模块目录下的build.gradle,在增加如下代码:
repositories {
dirs '../ydtlibrary/libs'
2.SDK功能:
2.1. 一点通账号的注册、找回密码、登录和注销,以及账号下的设备管理,包括添加、删除等功能。
2.2. 和监控设备的网络通信,如登录设备,设备相关参数的获取和修改,查询录像文件以及请求实时预览和录像文件的视频数据等。
2.3. 视频解码和显示,音频解码和播放
所有YdtNetSDK和HBNetCtrl的接口,若无特殊说明,均应在子线程中调用。
4.初始化一点通库
//初始化一点通库
YdtNetSDK ydtSdk= new YdtNetSDK();
ydtNetSdk.init(DeveloperId, AppId, AppKey, imei);
说明:DeveloperId:开发者Id,通过开发者平台申请。
AppId:应用Id,通过开发者平台申请。
AppKey:每个应用对应一个AppKey,在开发者平台可查看。
Imei:移动设备的唯一标识。
5.账号管理
账号注册并登录
YdtCheckCodeInfo info = ydtSdk.getMessageCheckCode(address, language);
YdtUserInfo userInfo = ydtSdk.registerCheckAndLogin(mSendtoAddr, mAuthCode, pushId);
ydtSdk.setPassword( passWord );
说明:address :手机号或邮箱。
Language:验证码的语言(当前系统语言),zh_CN代表中文,en_US代表英文。
mSendtoAddr:输入的手机号或邮箱。
mAuthCode:获取到的验证码。
pushId:推送Id,使用友盟推送时,该值为友盟返回的DeviceToken,不使用推送时,可以传空字符串。
userInfo.nErrorCode为0时,表明验证码认证成功。
找回密码并登录
YdtCheckCodeInfo info = ydtSdk.getMessageCheckCode(address, language);
YdtUserInfo userInfo = ydtSdk.findPassowrdCheckAndLogin(mSendtoAddr, mAuthCode );
ydtSdk.setPassword( passWord );
说明:参考账号注册并登录。
一点通账号登录
YdtUserInfo ydtUserInfo = ydtSdk.loginByYdtAccount(userName, passWord, pushId);
说明:当ydtUserInfo.nErrorCode==0时,表示登录成功。
5.5. 获取账号信息、修改密码
YdtUserInfo userInfo = ydtSdk.getAccountInfo();
说明:登录成功后可通过 ydtUserInfo的其他参数查看用户信息;否则,ydtUserInfo的其他参数无效。
5.6. 第三方账号登录
YdtUserInfo loginYdtByQQ(String nickName, String openId, String pushId);
YdtUserInfo loginYdtByWeiXin(String nickName, String openId, String pushId);
YdtUserInfo loginYdtByWeiBo(String nickName, String openId, String pushId);
说明:nickName - QQ昵称
openId:QQ或微信或微博的openId。
pushId:推送Id,使用友盟推送时,该值为友盟返回的DeviceToken,不使用推送时,可以传空字符串。
YdtUserInfo.nErrorCode == 0表示登录成功,此时YdtUserInfo的其他变量才有效,非0表示失败原因。
5.7. 账号注销
ydtSdk.logoutYdt();
6.账号下的设备管理
6.1. 调用流程
6.2. 获取账户下设备和指定设备信息
YdtDeviceInfo ydtDeviceInfo = ydtSdk.getDevicesBelongsToAccount();
6.3. 通过序列号添加设备
YdtDeviceInfo curDevInfo = ydtNetSDK.addDeviceBySN(deviceId,
deviceName, deviceUser,devicePsw,channelCount);
说明:devId:设备ID,通过getDevicesBelongsToAccount()或getSpecifiedDeviceWithoutLogin( deviceSn )可得到该参数,该参数是不可修改的;
devName:设备名。
devUser:设备的用户名。
devPsw:设备的密码。
YdtDeviceInfo.errorCode == 0表示成功,此时YdtDeviceInfo信息中的deviceList只有一个元素,且只有地理位置信息有效。
添加设备之前,建议先校验设备的连通性和设备用户名、密码的正确性。
6.4. 通过IP添加设备
//首先登录设备,以便获取设备的序列号
hbNetCtrl.login(user, password, domain, port, callback);
ydtNetSDK.addDeviceBySN(deviceId, deviceName, deviceUser,
devicePsw, channelCount);
说明:获取设备信息失败,无法继续添加。
添加设备之前,建议先校验设备的连通性和设备用户名、密码的正确性。
6.5. 通过域名添加设备
//首先登录设备,以便获取设备的序列号
hbNetCtrl.login(user, password, domain, port, callback);
ydtNetSDK.addDeviceByDomain(deviceSn, deviceName, deviceUser, devicePsw, deviceDomain, domainPort, channelCount);
说明:nDomainPort:域名的映射端口,1~65535。
使用的YdtNetSDK对象,必须跟登录帐户使用的是同一个。
获取设备信息失败,无法继续添加。
添加设备之前,建议先校验设备的连通性和设备用户名、密码的正确性。
6.6. 设备删除
ydtSdk.deleteDevice( deviceId );
7.设备管理
7.1. 调用流程
7.2. 登录设备
HBNetCtrl hbNetCtrl = new HBNetCtrl();
hbNetCtrl.loginVveye(deviceUser,devicePsw, vveyeId, vveyeRemortPort, callback);
说明:vveyeId和vveyeRemortPort可通过ydtSdk.getSpecifiedDeviceWithoutLogin或ydtSdk.getDevicesBelongsToAccount()接口得到,当YdtDeviceParam.devNetType==”VV”时,vveyeId = YdtDeviceParam.devVNIp,vveyeRemortPort = YdtDeviceParam.devVNPort。
7.3. 域名或IP登录
hbNetCtrl.login(userr ,password, domain, port, callback);
7.4. 获取设备参数
deviceSn = hbNetCtrl.getSerialNo();
deviceName = hbNetCtrl.getDeviceName();
channelCount = hbNetCtrl.getChannelCount();
说明:获取设备信息失败,无法继续添加。
添加设备之前,建议先校验设备的连通性和设备用户名、密码的正确性。
7.5. 注销设备
hbNetCtrl.logout();
8.实时预览
8.1. 调用流程
8.2. 获取监控设备的预览数据并解码显示
hbNetCtrl.startPreview( channelIndex, streamType, previewCallback );
//开启预览数据回调:
NetDataCallback previewCallback = new BaseNetControl.NetDataCallback()
public void onNetData( DataType type, byte[] data, int nOffset, int nValidLength, long nTimeStamp )
if ( mPlayer.openStream( data, nOffset, nValidLength ) )
mPlayer.setPlaySurfaceView( videoView );
mPlayer.play();
mPlayer.inputData( data, nOffset, nValidLength );
说明:mChannelIndex:通道号,从0开始。
streamType为码流类型, 0 - 主码流, 1 - 子码流。
type - 数据类型,暂时保留。
nOffset - 数据缓冲区偏移量。
nValidLength - 有效数据长度。
nTimeStamp - 时间戳,暂时保留。
8.3. 关闭预览并停止解码
hbNetCtrl.stopPreview(channelIndex);
mPlayer.closeStream();
9.录像回放
9.1. 调用流程
9.2. 查询设备的录像文件
final List recordFileParams = mSelectDevice.hbNetCtrl.findRecordFile( mChannelIndex, mPlayType, beginTime);
说明:beginTime:long型时间戳,将要查看哪天的文件。
mPlayType:录像类型 此处为全部录像:0XFF
9.3. 回放获取指定通道的录像数据
hbNetCtrl.startPlayback( mChannelIndex, startTime, stopTime, callback );
hbNetCtrl.getPlaybackData( mChannelIndex, REQUEST_LARGE_DATA );
BaseNetControl.NetDataCallback callback = new BaseNetControl.NetDataCallback()
public void onNetData( DataType type, byte[] data, int nOffset,int nValidLength, long nTimeStamp )
mPlayer.setPlaySurfaceView( videoView );
//注册缓冲区状态回调
mPlayer.setOnBufferStateListener( new PlaySDK.OnBufferStateListener()
public void onBufferStateAlmostChange( PlaySDK player,
boolean almostEmpty )
public void onBufferStateAlmostChange( PlaySDK player, boolean
almostEmpty )
//设置缓冲模式:流畅性优先
mPlayer.setBufferMode( PlaySDK.PLAY_BUFFER_MODE_FLUENCY );
mPlayer.play();
mPlayer.inputData( data, nOffset, nValidLength );
说明:startTime:long型起始时间
stopTime:long型结束时间
type:数据类型。
data:数据源。
nOffset:数据源的偏移量,从数据源nOffset位置开始是有效数据。
nValidLength:有效数据长度。
接口使用:首先调用startPlayback发送回放请求,如果返回result==0则调用 getPlaybackData获取回放数据;此处需要开启定时器获取回放数据(具体参照demo)
关闭回放并停止解码
hbNetCtrl.stopPlayback(channelIndex);
mPlayer.closeStream();
10.1. 调用流程
绑定设备报警
mYdtNetSDK.bindDeviceAlarm( mDeviceSn, DEVICE_PASSWORD, SHARE_TYPE, BIND_FLAG );
说明:mDeviceSn:设备序列号
DEVICE_PASSWORD:设备密码
SHARE_TYPE:设备分享类型 0-自有设备,1-分享给该用户的设备,2-公共设
BIND_FLAG:绑定标识,1-绑定,0-解绑,-1禁止设备报警上传。
10.3. 获取监控设备的报警信息。
AlarmInformation alarmInf = mYdtNetSDK.getAlarmList(mDeviceSn,
beginTime, endTime, mStartNo, mCount );
AlarmInformation information = mYdtNetSDK.getSingleAlarmInfo( alarmId );
说明:传入起始时间结束时间,获取该时间段内的报警信息,采用分段获取,传入起始位置和获取条数,一次获取完毕后,改变起始位置再次获取,依次循环;当获取的条数小于指定获取条数时获取完毕。(获取多条报警信息接口的使用)
mDeviceSn:设备序列号
beginTime:报警起始时间
endTime:报警结束时间
mStartNo:起始位置
mCount:循环一次获取的条数
alarmId:报警id,设备报警会推送给终端,(开发者需要使用推送服务)
11.错误信息
使用SDK过程中,所有接口返回的错误码,可通过以下接口获取对应的错误信息。
YdtSdkError.getErrorMessage
NetSdkError.getErrorMessage
SDK说明文档(IOS版)
1.开发前准备
1.1. 在新发布的iOS9系统上围绕用户数据的安全性和体验新增了一些安全特性,同时也影响了应用的实现以及集成方式,为了保证良好的稳定性和体验,需要做如下处理:
1.2. 在info.plist的NSAppTransportSecurity下新增NSAllowsArbitraryLoads并设置为YES,指定所有HTTP连接都可正常请求
NSAppTransportSecurity
NSAllowsArbitraryLoads
SDK采用ARC管理内存,如遇问题,请联系我们如果您使用了-all_load,可能需要添加libz的库,SDK中需要添加的库文件:libstdc++.tbd、libiconv.tbd,添加方式如下:
TARGETS-->Build Phases-->Link Binary With Libraries--> + -->libz.tbd等 。
特别注意:如项目中使用包含诸如ffmpeg的开源库,因而导致的库之间的冲突,此为开发中常见情况,请根据下面链接,做相应处理:
说明:SDK支持iOS 7.0+
2.SDK功能:
2.1. 一点通账号的注册、找回密码、登录和注销,以及账号下的设备管理,包括添加、删除等功能。
2.2. 和监控设备的网络通信,如登录设备,设备相关参数的获取和修改,查询录像文件以及请求实时预览和录像文件的视频数据等。
2.3. 视频解码和显示,音频解码和播放。
所有YdtNetSDK和HBNetCtrl的接口,若无特殊说明,均应在子线程中调用。
3.2. 文档中出现的[AccountManager sharedManager].ydtNetSdk,为demo中对ydtNetSdk进行单次实例化。
4.初始化一点通库
YdtNetSdk *ydtNetSdk = [[YdtNetSdk alloc] init];
[ydtNetSdk initWithDeveloperId:DeveloperID appId:AppID appKey:AppKey imei:deviceId];
说明:YdtNetSdk中参数需全局使用,开发者在应用中
DeveloperID:开发者Id,通过开发者平台申请。
AppID:应用Id,通过开发者平台申请。
AppKey:每个应用对应一个AppKey,在开发者平台可查看。
deviceId:所持有设备的唯一标示,建议使用UUID。
5.账号管理
账号注册并登录
// 注册前可先判断账号已注册(根据项目需求自行决定)
[[AccountManager sharedManager].ydtNetSdk
getAccountInfoWithName:(NSString *)accountName completionHandler:^(YdtUserInfo * userInfo) {
//userInfo.errorCode为0时,表示获取用户信息成功,用于判断该用户是否已注册。
//获取验证码
[[AccountManager sharedManager].ydtNetSdk getVerificationCodeWithAddress:(NSString *)address
language:(NSString *)language
completionHandler:^(YdtVervificationCodeInfo *codeInfo) {
//codeInfo.errorCode == 0,表示验证码发送成功。
[[AccountManager sharedManager].ydtNetSdk registerAndLoginWithAddress:(NSString *)address verificationCode:(NSString *)verificationCode
pushId:pushID
completionHandler:^(YdtUserInfo *userInfo) {
// userInfo.errorCode == 0,表示未设置密码的状态下用户注册成功。
[[AccountManager sharedManager].ydtNetSdk
setAccountPassword:(NSString *)password completionHandler:^(int result) {
// result == 0,表示密码设置成功,此时可以正常登录。
说明:accountName :手机号或邮箱。
address:验证码所要发送到的地址(用户注册时的手机号或邮箱)。
verifocationCode:获取到的验证码。
language:验证码提示信息的语言类型,需转换成zh_CN(中文)和en_US(英文)。
password:用户密码。
pushId:为注册推送时,返回的devicetoken此参数作用为提醒异地登录。
找回密码并登录
// 调用此接口,对账户是否存在进行检验
[[AccountManager sharedManager].ydtNetSdk getVerificationCodeWithAddress:(NSString*)address
language:(NSString *)language completionHandler:^(YdtVervificationCodeInfo *codeInfo) {
// userInfo.errorCode为0时,表示获取用户信息成功,用户存在可进行密码修改。
[[AccountManager sharedManager].ydtNetSdk
findPasswordAndLoginWithName:(NSString *)name
verificationCode:(NSString *)verificationCode
pushId:pushID
completionHandler:^(YdtUserInfo *userInfo) {
//通知服务器,需要进行密码找回,当userInfo.errorCode == 0时,设置其他参数才有效。
[[AccountManager sharedManager].ydtNetSdk setAccountPassword:(NSString *)password completionHandler:^(int result) {
// result == 0,表示修改密码成功。
说明:name: 输入的手机号或邮箱号。
verifocationCode:获取到的验证码。
password:设置的用户密码。
一点通账号登录
[[AccountManager sharedManager].ydtNetSdk loginYdtWithName:(NSString *)name password:(NSString *)password pushId:pushID completionHandler:^(YdtUserInfo *userInfo) {
说明:当userInfo.errorCode==0时,表示登录成功,此时,可通过 userInfo的其他参数查看用户信息;否则,userInfo的其他参数无效。
5.5. 第三方账号登录
[[AccountManager sharedManager].ydtNetSdk
loginYdtByQQWithNickname:(NSString *)nickName openId:(NSString *)openId pushId:pushID completionHandler:^(YdtUserInfo *userInfo) {
//微博登录
[[AccountManager sharedManager].ydtNetSdk
loginYdtByWeiBoWithNickname:(NSString *)nickName
openId:(NSString *)openId pushId:pushID completionHandler:^(YdtUserInfo *userInfo) {
//微信登录
[[AccountManager sharedManager].ydtNetSdk
loginYdtByWeiXinWithNickname:(NSString *)nickName
openId:(NSString *)openId pushId:pushID completionHandler:^(YdtUserInfo *userInfo) {
5.6. 账号注销
[[AccountManager sharedManager].ydtNetCtrl logoutWithBlock:^(int result) {
说明:result = 0,表示注销成功。
6.账号下的设备管理
6.1. 调用流程
6.2. 获取账户下设备和指定设备信息
//获取账户下设备
[[AccountManager sharedManager].ydtNetSdk
getDevicesBelongsToAccountWithCompletionHandler:^(YdtDeviceInfo *deviceInfo) {
// deviceInfo.errorCode == 0时,表示获取账户下设备成功,此时deviceInfo.deviceAray才有效。
//次接口为获取指定设备信息,可为设备添加前,先通过该接口获取设备绑定状态,非绑定状态返回设备信息将用于设备添加。
[[AccountManager sharedManager].ydtNetSdk getSpecifiedDeviceWithoutLoginWithDeviceSn:(NSString *)deviceSn completionHandler:^(YdtDeviceInfo *deviceInfo) {
// deviceInfo.errorCode == 0时,获取指定设备信息成功。
说明:deviceSn:设备序列号。
6.3. 设备登录
Long result = HB_NET_Login(char* sDevIP,
WORD wDevPort,
char* sUserName,
char* sPassword,
LPHB_NET_DEVICEINFO lpDeviceInfo,
PHB_NET_DATA_PROC pfnCallback,
void* pContext);
说明:此步骤在添加设备时,无需一定调用。以下是参数调用--
sDevIP:设备域名
vDevPort:设备域名映射端口号。
sUserName:设备用户名。
sPassword:设备密码。
lpDeviceInfo:HB_NET_DEVICEINFO类型的结构体,存放设备相关参数信息。
pfnCallback:设备断线回调,其中可以对设备进行重连操作。
6.4. 通过序列号添加设备
[[AccountManager sharedManager].ydtNetSdk
addDeviceBySnWithDeviceId:(NSString *)deviceId
deviceName:(NSString *)deviceName deviceUser:(NSString *)deviceUser devicePassword:(NSString *)devicePassword
channelCount:(int)channelCount completionHandler:^(YdtDeviceInfo *deviceInfo) {
说明:deviceId:设备ID,通过获取账户下的设备信息或者获取指定设备信息可得到该参数,该参数是只读的;
deviceName:设备名。
deviceUser:设备的用户名。
devicePassword:设备的密码。
channelCount:设备的通道数。
添加设备之前,建议先校验设备的连通性和设备用户名、密码的正确性。
6.5. 通过局域网IP添加设备
//首先登录设备调用登录接口,以便获取设备的相关信息,此类中需添加HBNetSDK.h头文件
[[AccountManager sharedManager].ydtNetSdk
addDeviceBySnWithDeviceId:(NSString *)deviceId
deviceName:(NSString *)deviceName deviceUser:(NSString *)deviceUser devicePassword:(NSString *)devicePassword
channelCount:(int)channelCount completionHandler:^(YdtDeviceInfo *deviceInfo) {
说明:获取设备信息失败,无法继续添加。
6.6. 通过域名添加设备
//首先登录设备调用登录接口,以便获取设备的序列号,此类中需添加HBNetSDK.h头文件
[[AccountManager sharedManager].ydtNetCtrl addDeviceByDomainWithDeviceSN:(NSString *)deviceSn
DeviceName:(NSString *)deviceName DeviceUser:(NSString *)deviceUser
DevicePassword:(NSString *)devicePassword
DeviceDomain:(NSString *)domain Port:(int)domainPort ChannelCount:(int)channelCount
Block:^(int result, HBYdtDeviceParam *device) {
说明:以上参数均可在由获取账户下设备或者是获取单独设备信息得到。
deviceDomainPort:域名的映射端口,1~65535。
使用的YdtNetSDK对象,必须跟登录帐户使用的是同一个。
获取设备信息失败,无法继续添加。
6.7. 设备删除
[[AccountManager sharedManager].ydtNetSdk deleteDeviceWithDeviceId:(NSString *)deviceId completionHandler:^(int result) {
//result ==0 删除成功,否则为错误码
7.设备管理
7.1. 调用流程
需在应用页面添加”HBNetSDK.h”头文件,之后调用设备登录接口。
7.2. 登录设备
HB_NET_Login("127.0.0.1", vveyeLocalPort, (char *)userName, (char *)password, &devInfo, deviceDisconnectCallback, (__bridge void *)self);
说明:设备添加方式有多种,VV为其中之一。
1.vveyeLocalPort:通过t2u_add_port_v3(vveyeID, NULL, "127.0.0.1", vveyeRemotePort, 0)做相应的映射获取。
2.vveyeID:通过[[AccountManager sharedManager].ydtNetSdk getSpecifiedDeviceWithoutLoginWithDeviceSn:(NSString *)deviceSn completionHandler:^(YdtDeviceInfo *deviceInfo) {
}];或[[AccountManager sharedManager].ydtNetSdk
getDevicesBelongsToAccountWithCompletionHandler:^(YdtDeviceInfo *deviceInfo) {
}];回调参数获取,详见Demo添加设备页。
3.vveyeRemortPort:同上获取方式。
4. username:同上获取方式。
5.passWord:同上获取方式。
设备的相关参数可从登陆接口的回调函数中获取。
7.3. 域名或IP登录
HB_NET_Login((char *)domain,
domainPort, (char *)userName,
(char *)password,
deviceDisconnectCallback, (__bridge void *)self);
说明:domain:域名的获取方式同vveyeID,需要进行UTF8转码。
domainPort:域名端口,默认为8101。
userName:设备用户名称。
password:设备密码,需要进行UTF8转码。
&devInfo: HB_NET_DEVICEINFO 类型的结构体,包含设备登录后获取到的相关参数。
deviceDisconnectCallback:设备断线回调,其中可以对设备进行重连操作。
7.4. 注销设备
HB_NET_Logout(LONG lUserID);
8.实时预览
8.1. 调用流程
8.2. 获取监控设备的实时预览数据
1.声明HB_NET_CLENTINFO结构体(该结构体设置预览开启时所需参数),并设置其相关参数,dwsize、lStreamType,lChannel,pfnCallback等;
hbNetCtrl.startPreview( channelIndex, streamType, previewCallback );
HB_NET_CLIENTINFO
info.pfnCallback=(PHB_NET_STREAMDATA_PROC)playStreamC
//设置预览配置参数
HB_NET_setStreamConfig(long lUserID, int nChannel, int streamType, int frameRate, int bitRate, int audio);
说明:lUserID由登录时返回值获得。
//开启预览
HB_NET_RealPlay(lUserID, &info);
2.在 playStreamCallback中做回调操作
// 打开解码
player = [HBPlaySDK openStream:data length:len];
//添加播放控件
[player AddViewport:self.viewport];
// 设置缓冲模式 均衡,用于预览
[player SetBufferMode:PLAY_BUFFER_MODE_BALANCED];
//注册缓冲状态
[player SetBufferStateAlmostChangeCallback:bufferStateAmostChangeCallback context:(__bridge void *)weakself];
[player SetBufferStateChangedCallback:bufferStateChangedCallback context:(__bridge void *)weakself];
[player SetPictureSizeChangedCallback:PictureSizeChangedCallback context:(__bridge void*)weakself];
[player Play];
//输出数据
[player InputData:data length:len type:type timestamp:llTimestamp];
说明:player 为解码对象 HBPlaySDK
8.3. 关闭预览并停止解码
//需先关闭网络数据接收,然后释放解码
HB_NET_StopRealPlay(lRealHandle);
//释放解码
说明:lRealHandle 设备预览句柄,此值为HB_NET_RealPlay()的返回值。
9.录像回放
9.1. 调用流程
9.2. 查询设备的录像文件
// 声明结构体 HB_NET_FILEFINDCOND findFileInfo ,并设置相关参数:
findFileInfo.dwFileType = HB_NET_REC_ALL;
findFileInfo.dwChannel = channelI
//录像通道
findFileInfo.struStartTime.dwYear = 2016;
//开始时间
findFileInfo.struStartTime.dwMonth = 5;
findFileInfo.struStartTime.dwDay = 5;
findFileInfo.struStartTime.dwHour = 0;
findFileInfo.struStartTime.dwMinute = 0;
findFileInfo.struStartTime.dwSecond = 0;
// 结束时间需要大于开始时间
findFileInfo.struStopTime.dwYear = 2016;&&&
//结束时间
findFileInfo.struStopTime.dwMonth = 5;
findFileInfo.struStopTime.dwDay = 5;
findFileInfo.struStopTime.dwHour = 23;
findFileInfo.struStopTime.dwMinute = 59;
findFileInfo.struStopTime.dwSecond = 59;
//查找录像文件
long lFindhandle = HB_NET_FindFile(lUserID, &findFileInfo);
注意:此处需要循环获取文件数据,根据lFindRet来选择关闭录像文件查询
lFindRet = HB_NET_FindNextFile(lFindhandle, &findData);
//结束查询录像文件
HB_NET_FindFileClose(LONG lFindHandle);
说明:struStartTime, struStopTime,:录像的开始时间和结束时间。
dwFileType :录像类型 此处为全部录像:0XFF
channelIndx:当前通道通道。
findData:返回录像数据对象,内附相关录像数据详细信息。
9.3. 回放获取指定通道的录像数据
1.先尝试vod方式
//声明结构体HB_NET_VODCOND
vodCond,对相关参数进行赋值,例:
memset(&vodCond, 0, sizeof(vodCond));
vodCond.dwSize = sizeof(HB_NET_VODCOND);
vodCond.dwChannel =
//当前通道
vodCond.dwType = HB_NET_REC_ALL;
//录像类型
vodCond.dwLoadMode=1;
vodCond.mode.byTime.struStartTime.dwYear
vodCond.mode.byTime.struStartTime.dwMonth
vodCond.mode.byTime.struStartTime.dwDay
vodCond.mode.byTime.struStartTime.dwHour
vodCond.mode.byTime.struStartTime.dwMinute
vodCond.mode.byTime.struStartTime.dwSecond
//结束时间最大为开始时间当天23:59:59
vodCond.mode.byTime.struStopTime.dwYear
vodCond.mode.byTime.struStopTime.dwMonth
vodCond.mode.byTime.struStopTime.dwDay
vodCond.mode.byTime.struStopTime.dwHour
vodCond.mode.byTime.struStopTime.dwMinute
vodCond.mode.byTime.struStopTime.dwSecond
vodCond.pContext=(__bridge void *)(weakself);
2. //设置数据回调
vodCond.pfnDataProc = (PHB_NET_STREAMDATA_PROC)playbackStreamC
//尝试vod模式进行回放,若不支持再使用HB_NET_PlayBack()
HB_NET_Vod(lUserID, &vodCond);
2.1 Vod模式成功时需使用请求数据
HB_NET_VodGetFrame(lPlaybackHandle, frameCount, 0);
2.2 vod失败,使用HB_NET_PlayBack()方式
//在 playStreamCallback中回调操作
//打开解码
player = [HBPlaySDK openStream:data length:len];
//添加播放控件
[player AddViewport:_viewport];
// 设置缓冲模式 均衡,用于预览
[player SetBufferMode:PLAY_BUFFER_MODE_BALANCED];
//注册缓冲状态
[player SetBufferStateAlmostChangeCallback:bufferStateAmostChangeCallback context:(__bridge void *)weakself];
[player SetBufferStateChangedCallback:bufferStateChangedCallback context:(__bridge void *)weakself];
[player SetPictureSizeChangedCallback:PictureSizeChangedCallback context:(__bridge void*)weakself];
[player Play];
//输出数据
[player InputData:data length:len type:type timestamp:llTimestamp];
说明:具体使用详参Demo 中Device.m调用。
(1)此处赋值的时间为样式赋值,需要开发者传入回放时间进行赋值。
(2)使用HB_NET_PlayBack( )进行回放,需要声明 HB_NET_PLAYBACKCOND playbackCond 结构体,并仿照 HB_NET_VODCOND vodCond 设置相关参数。
以下为参数说明:
player :解码对象 HBPlaySDK。
struStartTime:起始时间。
struStopTime:结束时间,注意:开始时间距结束时间最多一个自然天。
playbackStreamCallback : 设置数据回调。
lUserID:此参数为设备登录时返回值,全局通用。
frameCount:数据请求量。
&vodCond:vod方式时,HB_NET_VODCOND结构体。
playbackCond:使用HB_NET_PlayBack( )方式回放,所使用的HB_NET_PLAYBACKCOND 结构体。
data :回放数据。
len:回放数据长度。
关闭回放并停止解码
// vod模式进行回放,先关闭网络数据数据接收,再关解码
停止对HB_NET_VodGetFrame(lPlaybackHandle, frameCount, 0)的调用;
//根据回放模式关闭解码
HB_NET_StopPlayBack(lPlaybackHandle);
HB_NET_StopVod(lPlaybackHandle);
说明:lPlaybackHandle 设备回放句柄,通过此句柄对对应的设备进行操作。
10.1. 调用流程
绑定设备报警
[[AccountManager sharedManager].ydtNetSdk
bindDeviceAlarmWithDeviceSn:(NSString *)deviceSn
devicePassword:(NSString *)devicePassword
shareType:(DeviceShareType)shareType
bindFlag(AlarmBindFlag)bindFlag
completionHandler:^(int result)
说明:deviceSn
:设备序列号
devicePassword
:设备密码
shareType :设备分享类型 0-自有设备,1-分享给该用户的设备,2-公共设备
bindFlag :绑定标识,1-绑定,0-解绑,-1禁止设备报警上传。
10.3. 获取监控设备的报警信息。
//获取多条报警信息
[[AccountManager sharedManager].ydtNetSdk getMultiAlarmInfoWithDeviceSn:(NSString *)deviceSn
beginTime:(NSTimeInterval)beginTime
endTime:(NSTimeInterval)endTime startIndex:(int)startIndex count:(int)count competionHander:^(YdtAlarmInfo *alarmInfo) {
//获取单条报警
[[AccountManager sharedManager].ydtNetSdk getSingleAlarmInfoWithAlarmId:(NSString *)alarmId
competionHander:^(YdtAlarmInfo *alarmInfo) {
说明:传入起始时间和结束时间,获取该时间段内的报警信息,采用分段获取,传入起始位置和获取条数,一次获取完毕后,改变起始位置再次获取,依次循环;当获取的条数小于指定获取条数时获取完毕。
deviceSn :设备序列号
beginTime :报警起始时间
endTime :报警结束时间
startIndex :起始位置
count :循环一次获取的条数
alarmId:报警id,设备报警会推送给终端,(开发者需要使用推送服务)
10.1. 调用流程
11. 错误信息
使使用SDK过程中的异常情况下的提示信息,可通过以下接口获取:
(NSError *)mapYdtError:(int)
(NSError *)mapYdtError:(int)code description:(NSString *)
(NSError *)mapNetsdkError:(int)
hbydt.cn. All rights reserved. | 京ICP备号-1 | 京公网安备64号
登录您的账号}

我要回帖

更多关于 一点通理财 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信