版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录TOC\o"1-5"\h\z\o"CurrentDocument"千眼一平台androidSDK调用文档 2\o"CurrentDocument"一、androidSDK导入 21、集成前准备 2\o"CurrentDocument"2、下载SDK 23、SDK目录讲解 24、配置工程 2\o"CurrentDocument"二、androidSDK基础功能 21、SDK方法介绍 2\o"CurrentDocument"2、初始化SDK 2\o"CurrentDocument"3、登录 34、获取缩略图 55、设备上下线、断开连接和报警事件 56、视频观看功能 6\o"CurrentDocument"7、IPC列表功能 8\o"CurrentDocument"8、获取设备能力 12三、视频操控功能 13\o"CurrentDocument"1、获取画质: 13\o"CurrentDocument"2、设置画质: 14\o"CurrentDocument"3、获取布防: 144、设置布防: 155、云台控制: 16\o"CurrentDocument"6、翻转设置: 177、对讲功能: 188、回放功能: 19千眼一平台androidSDK调用文档一、androidSDK导入1、集成前准备到拾联科技官网注册并创建应用,获取app应用的唯一性key(auth)值2、下载SDK到拾联科技官网下载千眼一平台androidSDK,如果您已经下载好了SDK,下面开始学习SDK的集成使用吧!3、SDK目录讲解从官网上下载下来的包,解压后内容如下:due□libsexamples在这里主要介绍几个文件夹内容:①doc文件夹:SDK相关API文档②libs文件夹:千眼一平台实时视频功能的SDK包和so库③examples文件夹:QySdkMindDemo(为开发者更深入理解SDK而提供的一个demo)4、配置工程在自行开发的应用中,集成千眼一平台SDK需要把libs文件夹下的qysdk_v2.0.1.jar和armeabi目录、armeabi-v7a目录、x86目录导入到你的项目libs文件夹底下。jar名字后面的V2.0.1可能会跟你下载的不一致,这是版本号,以实际为准。如果集成过2.0.1之前sdk的开发者,建议更新新版本,新版本有很多的优化,具体请看更新日志。二、androidSDK基础功能1、SDK方法介绍在调用SDK里面的方法时,如果方法对应的参数里面有callback回调,直接调用2、初始化SDK建议在application的oncreate()方法中做初始化,通过QYSDK调用InitSDK(intlevel)方法,实现SDK的初始化工作。参数:level表示logcat日志级别数值。0:不打印日志,1:错误日志,2:警告日志,3:信息日志,4:调试日志,其它数值的设置都为不打印日志。publicclassMindApplicationextendsAppliestion{@OverridepublicvoidonCreate{){super.onCreate{);/**初始化SDK调用工nitSDK方法初始化QYSDK,方法参数为一个int型数值,代表Logcmt级别数,范围为0-40:不打E|1日志1:错误日志士:警告日志3:信息日志4:调试日志*/QYSDK.;}}3、登录用户在成功登录App后,要求实现SDK的登录(1)创建QYSession对象开发者可在登录界面的oncreate方法中进行QYSession对象的创建,该对象用来实现SDK的登录功能,参数:Context上下文环境注:本SDK的很多功能都需QYSession对象来调用priblicclassQyLqginActivityextendsActivityimplenientsOnClickListener{publicstaticQYSessionsession;©OverrideprotectedvoidonCreate(BundlesavedlnstanceState){super.onCreate(savedlnstanceState);setcontentview(R.layout.ty_login);创建QYSessic1nL对象调用QYSDK^jCEeateSessi口n(context)方法参数为一个上下文环境Context*/session二QYSDK.CreateSesslon(getApplicationcontext(});//创建session会话(2)设置服务器和端口号通过QYSession对象的SetServer(Stringip,intport)方法进行服务器和端口号的设置。参数:1、ip服务器的域名或地址,2、port端口号。返回结果:返回一个int型数值结果ret,该值大于等于0时表示设置成功,小于0时表
示设置失败。publicclassQyLoginActivityextendsActivityimplementsOnClickListener{publicstaticQYSessionsession;//QYSession7t^privateintretstate;//设差服务器端口号结果@OverrideprotectedvoidonCreate(BundlesavedinstanceState){super.onCreate(savedlnstanceState);setcontentview(R.layout・qy_activity_login);/**创建QYSession对象调用QYSDK的CreateSession(context)方法参数为一个上下文环境/session=QYSDK.CreateSession(getApplicationcontext());//6'J^session^iS设置服务器地址、端口号通过QYSession对象,调用Setserver(Stringip,intport)方法进行设费参数一 一一ip:域名或者工P地址port:服务器端口号(^retState=session.SetServer("wholeally.netn,39100);y/连接服务器大于或等于0为成功否贝U为失败(3)SDK登录连接服务器成功后,通过QYSession对象调用ViewerLogin(Stringappid,Stringauth,OnViewerLogincallback)方法进行登录。参数:1、appid目前统一为wholeally,由本司(拾联科技)提供,2、auth为应用的唯一key,在注册应用时生成,用户通过后端调用/KK登录地址四/接口获取2戈卜(目前SDKpublicstaticStrideLOGINUfiL=rrapp/login?接口获取2戈卜(目前SDK里没有相关的接口获取auth,只能通过服务端获取),;3、callback为请求结果回调函数。publicvoidloginSDK(){if(retState>=0){//retState为QYSession设置月艮务器的返回结果值session会话登录参数二第一个:己目前默认为wholsajLlY第二个:auth,应用的唯一key,在注册应用时生成第三个:callback回调国颗/session.ViewerLogin(r,wholeallyT'fr,czFYScb5pAu+Ze7rXhGh/9uPwdYuglYJ5j/EurY5Vo6hgori6dNOOxl+uOi+vJthVHdfLfwH6VY=,,znewOnViewerLogin(){@Overridepublicvoidon(intret){if(ret>=0}{fhcwToast("登录成功”);}else{showToast("登录失败:"+String.valueOf(ret));}}});}else{showToast("服务器连接失败:"+String.va2ueOr(retState));4、获取缩略图组织架构获取设备通道的缩略图,通过QYSession对象调用GetDeviceCapture(longchannellD,StringsavePath,OnGetDeviceCapturecallback)方法获取缩略图并保存。参数:1、channelID为要获取缩略图的设备通道id,2、savePath为缩略图保存位置(例如:SD卡路径+channelID+.png),3、callback为请求结果回调函数。获取缩略图并保存@paramchannelID要获取缩略图的设备逋道工D@parampath缩略图保存位置/publicvoidsaveThumbnail(longchannelID,Stringpath){QyLoginActivity.session.GetDeviceCapture(channelID,path,newOnGetDeviceCapture(){@Overridepublicvoidon(intret){if(ret>=0){System.Mt.println("缩略图获取井保存成功”);}else{System.out.printin("缩略图获取井保存失败”);)}});)15、设备上下线、断开连接和报警事件通过QYSession对象调用SetEventDelegate(QYSessionDelegatedelegate)方法设置事件通知回调,可以获得设备的上下线和报警事件通知。参数:delegate为事件通知回调接口publicvoidinitEventDelegate(){QyLoginActivity.session.SetEventDelegate(newQYSessionDelegate(){©OverridepublicvoidonAlajzm(QYA1ajzraListalarmlnf□){//TODOAuto-generatedmethodstubSystem.out.printin("===L也主U的报警iG息:Fr+alarnilnfo.getChaimellD(}+n Fr4-a.larnilnfo.getContent());*事件来源的谖备•status:0下线上线.publicvoidonDeviceStatus(longuid,intstatus){//TODOAuto-generatedmethodstub//System,out.printIn(rr=uid:"+n "+uid+n--n+status);}^OverridepublicvoidonDisConnect(QYDisconnectReasonreason){//TODOAuto-generated,methodstub//QYDisconnectReason枚举类switah(reason}{caseUnknovn://未知源类break;caseInitiative://主动退出|break;casePassiw〃此事件目前没用break;default:break;}}}6、视频观看功能视频观看功能包括三个部分,创建房间,连接房间,获取观看事件回调,可在同一个方法中实现这三部分。(1)创建观看房间通过QYSession对象调用CreateView(longchannellD,OnCreateViewcallback)方法创建观看房间。参数:1、channelID,要观看的设备通道号,2、callback请求结果回调函数。返回结果:1、ret:ret>=0表示创建成功,ret<0表示创建失败;2、QYView对象,该对象可用来设置画布,连接观看房间,设置观看事件回调。QcQc“调用创建观看视频方法*青/publicvoidqyViewWatchVideo(){if(null!=QyLQginActivity.session){QyLoginActivity■session..CreateView(Long.va.lueOf(nlD0000297001T,)rnewOnCreateView(){@Overridepublicvoidcm(intretfQYViewview){//QYVis强对象保存在全局变里中,云台控制时可调用qyViewWatch.=view;if(ret>=0]{showT口ast("创建房间成功;}else{showT口ast("创建房间失败”);}else{showToast("QYSassion==rLujLjL");}}(2)连接观看房间,并将视频画面显示在画布上创建房间成功后,通过返回的的QYView对象调用SetCanvas(SurfaceViewview)方法来设置画布。并调用StartConnect(finalOnStartConnectcallback)方法来连接观看房间。参数:1、SurfaceView对象,2、callback请求回调函数publicvoidqyViewWatchVideo(){if(null!=QyLoginActivity.session){/太太*第一个参数:通道号第二个参数:观看视频回调函数ret大于或等于0为成功否则为失败QyLoginActivity.session.CreateView(Long.va2ue0f(n10000029700ln),newOnCreateView(){@Overridepublicvoidon(intret,QYViewview){if(ret>=0)view.S_^tCanvas(surface_video2vie^s);//传入画布显示视频监控画面StartConnect(newOnStartConnectJ){//连接监控视频回调函数/©Overridepublicvoidon(intret){ \/ if(ret>=0){ \showToa5t连接观看成功”);}else{\ showToast("连接观看失败"+String.v<21ueOf(ret));}else{showToast("创建观看失败"+String.valueOf(ret));I 一i});}else{showToast(nQYSession==null,f);(3)获取观看事件回调}通过返回的的QYView对象调用SetEventDelegate(QYViewDelegatedelegate)方法,实现观看事件回调,观看事件包括有:连接断开、声量变化、回放时间戳、视频大小变化、录像事件。参数:观看事件回调接口publicvoidqyViewWatchVideo(){if(null!=QyLoginActivity.session){QyLoginActivity.session.CreateView(10119.匕1口2"("10000029700寸),newOnCreateView(){@Overridepublicvoidon(intret,QYViewview){view.SetEventDelegate(newQYViewDelegate(){//当前监控视频事件回调函数(如:surfaceVie砥高)@Override;接断开publicvoidonDisConnect(QYDisconnectReasonreason){switch(reason){caseUnknown://未知原类break;caseInitia.tive:.//主动退出break;casePassive://被踢下线break;))©Override//录像事件publicvoidonRecordStatus(QYRecordStatusstatus){switch(status){caseStart://开始break;caseEnd://结束break;caseWriteError://写入失女也break;©Override//回放时间戳publicvoidonRep1ayTimeChange(longtm){©Override//视版大小改变(surf己c&Vi巳记画布宽高)publicvoidonVideoSizeChange(intwidth,intheight){)©Override//对讲时音里变化publicvoidQrLVolumeChange(doublevqlumeValue){});}else{showToast(f,QYSession==rLullf,);})7、IPC列表功能获取完IPC列表后,可以将思维盒底下的各个通道与IPC列表进行IP绑定,还可以解除现有的通道绑定,也可以一键解绑该思维盒下的所有通道。(1)获取IPC列表首先通过QYSession对象的GetMind()方法获得QYMind对象,通过QYMind对象调用MindGetIpcList(longdevicelD,OnMindGetIpcListcallback)方法获取IPC列表。参数:1、deviceID思维盒的id;2、callback请求结果回调。返回结果:1、ret>=0:请求成功;ret<0请求失败;2、存储QYIPCInfo对象的list列表,QYIPCInfo对象,属性有摄像头编号、ip地址、绑定状态(0:未绑定1:已绑定(只有获取ipc列表才有用))。*获取工口C列表*/publicvoidgetIPCList(){QYMind对象获取工卫C列表参数:第一个:deviceID思维盒的id第二个:callback请求结果回调/QyLoginActivity・session.GetMind().MindGetIpcList(Long.valueOf(n100000297000M),newQYMind.OnMindGetIpcList(){@Overridepublicvoidon(intret,ArrayList<QYIPCInfo>list){/*青飞返回结果说明:i:et>=。:请求.成功;ret<二:请求失败QYIPCInfolist列表QYIFC工nf。时象,属性有据像头编号、ip地址、绑定状态0:未绑定1:已绑定(只有获取ipc列表是才有用)*/if(ret>=0}{for(inti=0;i<list.size();i++){System.out.printin.(list.get(i).getSubDevId()+list.get(i).getlp()+list.get(i).getState());)}else{showToast("获取工PC列表失败,通道未能匹断”);))});}(2)绑定IPC列表首先通过QYSession对象的GetMind()方法获得QYMind对象,通过QYMind对象调用MindIpcBind(longdevicelD,QYIPCInfoinfo,Stringaccout,Stringpassword,OnMindIpcBindcallback)方法进行IPC绑定。参数:1、deviceID通道id;2、QYIPCInfoQYIPCInfo对象,开发者自己实例化并设置相应属性;3、accout用户名,正常请求时可为null,用户鉴权时需要填写具体的用户名;4、pwd密码,正常请求时可为null,用户鉴权时需要填写具体的密码;5、callback请求结果回调。*通道绑定工PC列表*/publicvoidbindlpc(){QYMind对象将通道与工工C列表绑定参数:第一个:devicelD通道id第二个:QYIPCInfoQY工PC工n:Eo对象第三个:accout用户名,正常请求时可为millf第四个:pwd密码,正常清求时可为null第五个:callback请求结果回调///QY工PC工n:Eo对象的构建,具体的ip,state,subDmv工d根据实际情况而定QYIPCInfoqyipclnfo=newQYIPCInfo();qyipclnfo・setlp("192.168・0・1”);qyipclnfo・setstate(1);qyipclnfo・setSubDevid(,,100000297001r,);rqyipclnforQyLoginActivity.session.GetMind().MindlpcBind(Long.valueOf(r,100000297001r,)null,nullznewQYMindrqyipclnfor@Overridepublicvoidon(intret){if(ret>=0){showToast("绑定成功}else{showToast("绑定失败;})!);)(3)解除IPC绑定首先通过QYSession对象的GetMind()方法获得QYMind对象,通过QYMind对象调用MindIpcUBind(longdeviceID,intmode,ArrayList<QYIPCInfo>info,OnMindIpcUBindcallback)方法解除单个通道设备的IPC绑定。参数:1、deviceID通道id;2、mode=1:一键解绑,mode=0解绑指定的ipc;3、存储QYIPCInfo对象的list列表,用户自己创建;4、callback请求结果回调。*解除工口C绑定*/publicvoid,rmBin.dZpc(){/*文QYMinci对象将通道与工口C列表解绑参数:第一个:devicelD通道上日第二个:Mode=1:一键解绑;Mods=0解绑指定的ipc第三个:QY1口Clnfc1对象的工ist列表第四个:callback请求结果回调///声明并实例化一个:List2VrrayLz_st<QYZPCZnfo>QYZPCList=newArrayList<QYZPCZnfo>();//构建要解除通道的QY工口匚In土。对象信息,具体ip,subDsv工日谩置根据实际情况QYZPCZnfoLpcListZnfo=newQYZPCZnfo();IpcListZnfo.setZp(M127.0.0.1T,);IpcListZnfo.setSuhDevZd(M100000297001T,);ipcListZnfo.setstate(0);//将QY1口CInf。对象加久工istQYZPCList.add(ipcListZnfq);//请求解绑QyLogLnActLvity.session.GetMind().MindZpcUBind(Long.valueCf(M100000297001T,)f0,QYZPCList,newQYMind.OiiMirLdZpcUBind(){@Overridepublicvoidon{intret){if(ret>=0]{showHaast("解除成功");}else{mhowToamt解—;}}});}(4)一键解绑首先通过QYSession对象的GetMind()方法获得QYMind对象,通过QYMind对象调用MindIpcUBind(longdevicelD,intmode,ArrayList<QYIPCInfo>info,OnMindIpcUBindcallback)方法一键解除所有通道设备绑定。参数:1、deviceID通道id;2、mode=1:一键解绑,mode=0解绑指定的ipc;3、存储QYIPCInfo对象的list列表,用户自己构建;4、callback请求结果回调。publicvoidunBindAllIpc()■{/**QYMind对象将通道与工PC列表解绑参数:第一个:deviceID通道id第二个:Mode=L—键解绑;Moda=。解绑指定的ipc第三个:QY工口CHnfo对象的工1st列表第四个:callback请求结果回调///声明并实例化li/tArrayList<QYIPCInfo>QYIPCList=newArrayList<QYIPCInfo>();//要解除的通道数大小,具体值为要解除的通道数实际值 一intsize=10;//构建要解除通道的QY工DC工nfo对象信息,,具体ip,subDav工d谩贵根据实际情况,并将QY工DC工nf□对象加入listfor(in七i=0;i<size;i++){QYIPCInfQipcListlnfo=newQVIPCInfo();ipcListlnf0,setlp(T,127.0.01");ipcListInfo.setSubDevid(T,100000297001T,);ipcListlnfo.setState(0);QYIPCList・add(ipcListlnfq);}//请求解绑QyLoginActivity.s&sslon.GetMind().MindlpcUBind(Long.valueOjf(0100000297001T,),1,QYIPCList,newQYMind.OnMindIpcUBind(){©Overridepublicvoidon(intret){if(ret>=0}{showToast("解除成功;}else{showToast(r’—―”);});8、获取设备能力首先通过QYSession对象的GetSesionEx()获取QYSession的拓展接口,然后通过拓展接口调用GetChanelAbility(longchannellD,OnGetChanelAbilitycallback)方法获取设备的各项能力。参数:1、channelID设备id;2、callback回调函数。返回结果:1、ret>=0:请求成功;ret<0请求失败;2、QYChannelAbility对象,包含设备的各个能力属性参数:参数:1、channellD为视频通道id,2、callback为请求结果回调函数。publicvoidgetDeviceAbility(){/**勺拓展接口对象去获取设备能力参数:第一个:channelID设备id第二个:cm工工back回调函数/QyLoginActivity.session.GetSesionEx().GetChanelAbility(Long.va2ue(?r(r,100000297001r,)rnewOnGetChanelAbility(){@Overridepublicvoidon(intretfQYChanne1Abi1ityability){/***三巳七>=0:请求成功,三台七《口:请求失败*QYChn象,包含设瞽的各个能力属性|if(ret>=0){System.out,println(r,;二画质二::・'+ability.getVenc(}+";=翻转=:"+ability.getFlipO4-1]二对讲=:"+ability.getTalk()4-"『二云台二:"+ability.getPtz()+"?=变筐=:"+ability.getFocns()+"?=变倍=:"+ability,getZoom()4-":二光圈=:"+ability.getApertnre()+";=回故=:"+ability.getReplay()4-错误码=:"+ability.getErrorNo(}+":=布防=:"+ability.getWarnPlan()4-";=录像计划=:"+ability.getRecPlan()+";=视频=:"+ability.getVideo()+";=音频=:r,+ability.getAudio());}else{showToast("获取通道能力失败:T,+String. (ret});});注:设备能力privateintvideo;//视频0:无1有privateint//语音0:无1有privateintvenc;画质设置0:无1有privateintflip;“朝转口:无1有privateinttalk;//对讲口:无1有privateintptz;//云台口:无1有privateintfocus;//变焦口:无1有privateintzoom;//变倍口:无1有privateintaperture;//光圈口:无1有privateintreplay;//回放口:无1有privateintrecPZLmn;录像计戈i]0:无工有privateintwarnPlan;//报警计划。:无1有privateinterrorNo;,/错误码口:无1有三、视频操控功能1、获取画质:通过QYSession对象调用GetVideoQuality(longchannellD,OnGetVideoQualitycallback)方法获取画质信息。回调结果,1、ret大于等于0表示获取成功,小于0表示获取失败,2、整型的cur表示当前视频通道的画质模式,3、list表示当前视频通道的可选画质集合。List里面的值的范围为0-4(0:普清,1:标清,2:高清,3:超清)。/**获取画质*7publicvoidgetOnaLity(}]//获取画质信息if(null!=QyLoginActivity.session){QyLoginActivity.session.GetVideoQuality(Long,valuBOf(01000002970010),newOnGetVideoQuality(){©Overridepublicvoidon(intret,intcur.ArrayList<Integer>list){ret〉=0请求成功,rat<0请求失败cur当前视频画质模苴list:画质模式的隼含值的范围为。一4(0:普清,1:标清,2:高清,3:超清)/if(ret>=0){for(inti=0;i<list.size();i+4-){System.□口七.pisirLtln(画质模式:0+list.get(i));)}else{showToast("画质获取失败");2、设置画质:通过QYSession对象调用SetVideoQuality(longchannellD,intquality,OnSetVideoQualitycallback)方法进行画质设置。参数:1、channelID为视频通道id,2、quality为要设置的画质值,3、callback为请求结果回调函数。publicvoidsetQuality(){/青青参数第一个:视频通道id第二个:要谩置的画质值(0-4之间的整型值)第三个回调函数/QyLoginActivity.session.SetVideoQnality(Long.vslueOf(T,100000297001°}r1,newOnSetVideoQuality(){©Overridepublicvoidon(initret){if(ret>=0}{showToast("画质设置成功");}else{showToast画质设置失败”);3、获取布防:通过QYSession对象调用GetAlarmConfig(longchannelID,inttype,OnGetAlarmConfigcallback)方法获取设备通道的布防信息。参数:1、channellD为视频通道id,2、type为报警类型(0:移动侦测1:遮盖报警)手机端全部选0,3、callback请求结果回调函数。/**布防状态值:0--未布防,1--布防*/privateirrtqyAlarmState;publicvoidgetDefenseStatues(){*参数第一个:视频通道上三第二个;type值一—0:移动侦刎工:遮盖报警第三个:回调函数*/QyLoginActivity.session.GetAlarmConfig(Long.va工ueOf("100000297001”),0,newOnGetAlarmConfig(){@Overridepublicvoidon(intret,QYAlarmConfigqyAlarm){//将布防报警断置信息存储在全局变里,后面设置布防需要用到这个对象qyAlarmObj=qyAlarm;if(ret>=0){//返回的QYAlarmConrEigj?寸象获取状态值,0一—未布防,工—一布防qyAlarmState=qyAlarm.getEnable();}else{showToast("获取布防状态失畋”);}}));4、设置布防:通过QYSession对象调用SetAlarmConfig(longchannelID,inttype,QYAlarmConfigconfig,OnSetAlarmConfigcallback)方法来设置视频通道布防状态。参数:1、channelID为视频通道id,2、type为报警类型(0:移动侦测1:遮盖报警)手机端全部选0,3、config为报警配置信息对象,可以从获取布防的结果返回值获得,也可以自己构造,config通过调用setEnable(intstatues)来改变布防状态,4、callback为请求结果回调函数。回位操作等,回位操作等,3、callback请求结果回调函数。/**布防报警配强信息对象*/privateQYAlarmConfigqyAlarmObj;publicvoidsetDefenseStatues(){//报警配置信息对象,通过获取布防状态的返回值获得qyAlarmObj.setEnable(0)撒防// qyAlarinObj.setEnable(1);///报警配贵信息对象,自己构建// QYAlarmConfigqyAlarmObj=newQYAlarmConfig();// qyAlarmObj.setEnable(0);/**参数第一个:视频通道id第二个:±YP回直一一0:移动侦测1:遮盖报警(android都设置为口)第三个:报警限置信息对象,此对象可以通过设置Enable值来改变布昉第四个:回调国颔/QyLoginActivity.session.SetAlarmConfig(Long.valueOf(n100000297001")r0,qyAlarmObjznewOnSetAlarmConfig(){©Overridepublicvoidon(intret){if(ret>=0){showToast,设置布防状态成功");}else{showToast("设置布防状态失败”);}5、云台控制:在进行视频观看时,可通过创建观看房间返回的QYView对象对摄像头进行云台控制,QYView对象在上文的创建观看房间中已赋值给全局变量qyViewWatch。*调用创建观看视频方法publicvoidqyViewWatchVideo(){if(null!=QyLoginActivity.session){QyLoginActivity.session..CreateView(Long■va:2ueOf(010000029700111)7newOnCreateView(){
@Override
publicvoidon(intretfQYViewview){人耍仄汽回象保存在全屡里史二云台控制时可调用C]qyViewWatch=view;二)
二由铝廿 -showT口mst("创建房间成功”);}else{创建居间失败");}else{showToast(T,QYSession==nullT,);QYView对象qyViewWatch调用CtrlPTZ(finalintduration,finalintactionfinalOnCtrlPTZcallback)方法进行云台控制。参数:1、duration转速,目前统一设置为0,2、action动作类型,如向上、向下、变倍、/**创建观看视频返回的QYVtEM*/privateQYVlewqyViewWatch;publicvoidcloundCtrl(){**参数*第一个:*第二个:*第三个:*/转速,手机端统一设置为0三台控制的动作类型,如向上,向下,变倍等操作回调函蜀if(null!=qyViewWatch]] _ 不同帝■求设置不同动作qyViewWatch.CtrLPTZ(0,C5YView.ACTION_JiOVE_UP^>妾里newOnCtrLPTZ{]厂©Overridepublicvoidon(intret){if(ret>=0}{showToast("云台操作成功;}else{showToast("云台操作失败”+Sti:ing.valueOf(ret));注:action动作类型//Qjei'W_lYPEpublicstaticfinalintACTIONZOOMZJV=0;//变倍—放大public导七己七:LcfinalintACTION_ZOOM_OUT=1;//变倍—缩小public导七己七:LcfinalintACTION_IRIS_IN=2;//光圈一放大publicstaticfinalintACTION_IRIS_OUT二3;//光圈—缩小public号七a七:LcfinalintACTIQN_FOCUSi_NEAR=4;//调焦—近piiblicstaticfinalintACTION_FOCUSi_FAR=5;//调建一远public与七a七:LcfinalintACTION_MOVE_UP=6;//循头移动一上public导七己七:LcfinalintACTION_MOVE_DONN=7;//循头移动一下public导七己七:LcfinalintACTION_MOVE_LEFT=8;//循头移动一左publicstaticfinalintACTION_MOVE_RIGHT=5;//横头移动一右publicstaticfinalintACTION_MOVE_LEFTUP=10;//靠头移动一上左piiblicstaticfinalintACTION_MOVE_RIGHTUP1=11;//造头移动一上右public与七己七:LcfinalintACTION_MOVE_LEFTDOWN=1277道头移动一下左public导七己七:LcfinalintACTION_MOVE_RIGHTDOWN=13;7循头移动一下右priblicstaticfinalintACTION_STOP=14;//僖止当前操作publicstaticfinalintACTION_SET_SPEED=15;//设定操作速度spee日速度值百分比(0—63)publicstaticfinalintACTION_MOVE_CENTER=16;//满头移动一回位6、翻转设置:通过QYSession对象调用SetVideoOrientation(longchannellD,intmode,OnSetVideoOrientationcallback)方法进行视频画面的翻转设置,参数:1、channelID为视频通道id,2、mode为要设置的模式(0:水平1:垂直),3、callback为请求结果回调函数。*设置翻转*/publicvoidsetReversal()-[y*a参数第一个:视频通道的士日第二个:要设置的模式—-o:水平工:垂直第三个:回调函数/QyLoginActivity.session.SetVideoOrientatlon{Long.. "100000297001T,),0,newOnSetVideoOrlerLtatlon{){@Overridepublicvoidon(intret){if(ret>=Cl){showToast("翻转成功”);}else{showToast("翻转失败");})});)7、对讲功能:对讲功能需要创建对讲房间,然后连接对讲房间后才能实现通过QYSession对象调用CreateTalkHandle(longchannellD,OnCreateViewcallback)方法,创建对讲房间。参数:1、channelID为视频通道id,2、callback为请求结果回调函数。返回结果:1、ret大于等于0表示获取成功,小于0表示获取失败;2、QYView对象。用来调用连接对讲房间。对讲房间创建成功后,需要通过返回的QYView对象调用StartConnect(finalOnStartConnectcallback)方法连接对讲房间,才能开始对讲。参数:callback为请求结果回调函数。创建对讲房间会/privateQYViewqyViewTalk;publicvoidcreateTalkRoom(){if(null!=QyLoginAct-ivity.session){*第一个参数:通道旨*第二个参数;回调函数工目七大于等于。为成功否则为失败QyLoginActivity.session.CreateTalkHandle(Long.va2ue(9r(,,100000297001r,),newOnCreateView(){@Overridepublicvoidon(intret,QYViewview){qyViewTa1k=view;//将创建对讲房间后的QYVie.寸象哦值给全局变里qyViewTalk|if(ret>=0}{if(null!=qyViewTalk){//创建成功完还要进行连接对讲房间回调函数ret大于等于0为成功否则为失败qyViewTalk.StartConnect(newOnStartConnect(){©Overridepublicvoidon(intret){if(ret>=0){showTomst连接对讲成功;}else(showToast("连接对讲失败"+String・valueOflret));});}else{showToast(,,g®^i#qyViewTalk==null,');)}else{showToast("创建对讲失败“+String・va2ueor(ret));}}});8、回放功能:步骤:先获取天概要索引;后创建回放观看房间;获取24小时索引;设置观看起始时间,开始观看。(1)获取天概要索引数据通过QYSession对象调用GetStoreFileListDayIndex(longchannellD,intyear,intmonth,inttype,OnGetStoreFileListDaylndexcallback)查询天概要索引数据。参数:1、channelID为视频通道id,2、year要查询的年份,3、month要查询的月份,4、type查询类型,0从设备获取,1从云存获取2:从本地,(目前都是0),5、callback为请求结果回调函数。返回结果:回调函数返回结果的QYDaysIndex对象存储着当月有哪几天有回放数据的信息,可通过QYDaysIndex.getDays()方法得到当月有哪几天具有回放记录。*获取天概要索弓I数据publicvoidgetDaylndexData(){if(mill!=QyLoginActivity.session){/**参数第一个:channelID视频通道id第二个:year年第三个:month月第四个:type0从设备获取,1从云存获取(目前都是S第五个:回调困数*/QyLoginActivity.session.GetStoreFileListDaylndex(Long.v^IueOf(T,1000000297001T,)f2015fllf0rnewOnGetStoreFileListDayIndex(){@Overridepublicvoidon(intretzQYDaysIndexqyDayIndexs){if(ret>=0}{//[yDaylndexE获取当月的有回放数据的天数组Day[]days=qyDaylndexs.getDays();}else{showT0己st获期天列表数据失败"+String..v3IueOT(ret));}else{showToast(T,session^]rLiillff,);(2)创建并连接回放房间通过QYSession对象调用CreateRePlayHandle(longchannellD,intmode,OnCreateViewcallback)方法创建并连接回放房间。参数:1、channellD为视频通道id,2、mode为回放类型0:设备端1:云存2:本地,3、callback为请求结果回调函数。返回结果:1、ret大于等于0表示创建成功,小于0表示创建失败;2、QYView对象,用来调用连接回放房间,可存储于全局变量,本文存储与qyApplyWatch。回放房间创建成功后,用返回的QYView对象调用StartConnect(finalOnStartConnectcallback)连接回放房间。参数:callback为连接请求结果回调函数。创建回故则看视睡QYView对象的全局变量"/privateQYViewqvApplvWatch.;J.J/…创建并连接回被房间*/publicvoidcreateReplyRoom(){*参数★第一个:channellD视频通道id*第二个:mode回放类型。:设备端L云存2:本地*第三个:callback请求结果回调函数*/QyLoginActivity.session.CreateRePlayHandle(Long.va.luBOf(01000000297001T,},0,newQYSessiQn.OnCreateView(){©Overridepublicvoidon(intretfQYViewview){U创建回放房间成功后,将返回的QYYie通4象喷值与全局变里gyApipiZLyWatuliqyApplyWatch=view;if(ret>=0]{//创建回放房间成功后,QYYi守用同用StartCdimeut方法连接回放房间view.StartCoimect(newOnStartConnect(){@Overridepublicvoidon{intret){if(ret>=0){showToast("连接期看房间成功“);}else-[showToast("连接期看房间失败,无法获取回的数据”);}}!);}else{showToast{”申请进入回故房间失败”)j})});)(3)获取24小时索引数据通过创建回放房间返回的QYView对象qyApplyWatch调用GetStoreFileIndex(finalQYDaysIndex.Dayday,finalOnGetStoreFileIndexcallback)方法查询24小时索引数据。参数:1、day对象,构建一个Day对象,day设置要查询的年月天;2、callback,请求结果回调函数。返回结果:1、ret--大于等于0.表示请求成功,小于0表示请求失败;2、QYTimeIndex对象,调用该对象的getTimes()获得时间块TimeBucket的集合列表,TimeBucket对象通过getStart()和getEnd()获取回放的开始和结束时间戳。//T工meBucket集合列表,TimeBucket对象可用十派取回放视频的开始和结束时间privateArrayList<TimeBucket>tbList=newArrayList<QYTimeIndex.TimeBucket>();//日己遍寸象privateDayday=newDay();/***获取24小时索引数据publicvoidget24hoursIndexData(){参数:第一个:Day对象第二个:callback回调函数/day.setYear(2015);//设置年份day.setMonth(12);//设置月份,day.setDay(1);//i殳送I9—天if(null!=qyZMpplyWatch){qyApp1yWatch.GetStoreFileIndex(day,newOnGetStoreFilelndex(){@Overridepublicvoidon(intret,QYTimeIndexqyTimeIndex){/*QYTime工ndax对象:24小时索引实体类qyTimeIndex.getTimes()获取时间块1TimeBucket的集合列表TimeBucket集合列表的每个TimeBucket对象的getStart()^cgetEnd()获取开始和结束时间*/tbList=qyTimeIndex.getTimes();if(ret>=0){for(inti=0;i<tbList.size();i++){System,out.printin(r,startTime:r'+tbList.get(i).getStart());System,out.printin(r,endTime:"+tbList.get(i).getEnd());}showHoast获即24小时索引数据成功『,),;}else{£hcwTcl演st(”获取24小时索弓|数据失败,,),;});}(4)观看回放通过创建回放房间返回的QYView对象qyApplyWatch调用CtrlReplayTime(finallongtime,finalintctrl,finalOnCtrlReplayTimecallback)方法请求开始播放回放视频。参数:1、time开始时间,可由24小时索引获得,时间戳格式;2、ctrl控制模式,0停止1播放;3、callback请求结果回调。//播放视频的privateSnrfaceviewsurfaceView;/文**观看回故并设置观看事件回调*/publicvoidwatchReply(){if(mill!=qyApplyWatch){//传入画布显示视频监控画面qyApplyWatch.SetCanvas(surfaceView);//设置开始僧故时间/**文清求期看回放参数:第一个:time开始时间,可由24小时索弓|获得,时间戳格式第二个:Ctrl控制模式,0僖止1播放第三个:callback请求结果回调/qyApplyWatch.CtrlReplayTime(Long.va1ueOf(T,1445860□45f,),17newOnCtriReplayTime(){©Overridepublicvoidon(intret){if(ret>=0){showToast("观看成功”);}else{showToast("则看失败");));在观看回放的同时可以通过创建回放房间返回的QYView对象qyApplyWatch设置观看回放的回调事件,获得视频播放过程中的音量变化、每一帧时间戳、录像事件、连接断开事件、视频大小变化,可参照前文的视频观看回调事件。/音音文设置回於加看事件回调*可参照视频加看的事件回调*/publicvoidsetCaLLback{if{null!=qyApp1yWatch.){qyApplyWatch.SetEventDelegate(newQYViewDelega.te(){©Overridepublicvoido:nVolumeChange(doubleargO){//音里变化}©OverridepublicvoidonRep1ayTimeChange(finallangtime){//视频数据每一例的时间戳}&OverridepublicvoidonRecordStatus(QYRecordStatusargO){//录像事件}©OverridepublicvoidonDisConjiect(QYDiscoimectReasciTiargO)■[//连接断开事件}©OverridepublicvoidonVidecSizeChange(intwidth.,intheight,intkeyframe){//视频大小变化}});)19、手动开关录像时长:通过QYSession对象调用SetRecordSwitchTime(longchannellD,intenable,inttimelen,finalOnSetRecordSwitchTimecallback)方法获取开关录像。参数:1、channellD为视频通道id,2、enable开关录像1.打开;0.关闭,3、timelen为录像时长单位为分钟,3、callback为请求结果回调函数。QyLoginActivity.session.SetRecordSwitchTinie(Long.vaiueOfr(chaimelNaiae)flf5fnewCnSetRecordSwitchTinie(){@Overridepublicvoidon(intret){//TODOAuto-generatedmethodstubSystem,out.printin(Fr==retl=:n+ret};QyLoginActivity.session.SetRecordSwitchTinie(Long.valLzeOffchaiinelNaiuie}rQf5fnewOnSetRecordSwitchTinie(}{@Cverridepublicvoidon(intret){//TODOAuto-generatedmethodstubSystem,out.printIn(Fr===retl=:"+ret);}10、查询通道录像状态:通过QYSession对象调用 QueryRecordStatus(long channellD,finalOnQueryRecordStatuscallback)方法获取通道录像状态。参数:1、channellD为视频通道id,2、callback为请求结果回调函数。QyLoginActivity.session.QueryRecordStatus(Long.va1ueOf(channeINairie}fnewOnQueryRecordStatus(){@Overridepublicvoidon(intret,intrecordStatus){//TODOAuto-generatedmethodstubSystem,out.prlntln(rr=re12=:F,+ret+n,;;;=rec.ordStatus=:rr+recordStatus};}});ret为查询录像状态:0:为成功;其它为失败recordStatus为返回的通道录像状态:1为正在录像中;0为未进行录像.11、设定通道设备录像计划:通过QYSession对象调用 SetCloudOrDevRecordPlan(longchannelID,QYSetChannelRecordPan qySetRecordPlan,finalOnSetChannelDevRecordPlancallback)方法设定通道设备录像计划。参数:1、channelID为视频通道id,2、qySetRecordPlan为计划模板对象,3、callback为请求结果回调函数。QYSetChannelRecordPanqySetRecordPlan=newQYSetChannelRecordPan();qySetRecordPlan.setChannellD(Long.valueOf(channelName));qySetRecordPlan.setCloud(0);qySetRecordPlan.setCurindex(1);qySetRecordPlan.setCurstream(50);qySetsRecordPlan.setEnable(1);gySetRecordPlan.setRecS'Crearnsent(5);for(inti«0;i<7;i++)<qySetRecordPlan.gerDays()[i].setPlanTimeCount(2);for(intj=0:j<qySetRecordPlan.getDays()[i].getPlanTimeCount();j++){qySetRecordPlan.getDays()[i].getTimes()[j].setStart(n2:15");qySetRecordPlan.getDays()[i].getTimes()[j].setEnd("22:15n);}}QyLoginActivity.session.SetCloudOrDevRecordPlan(Long.valueOf(channelName),qySetRecordPlan,newOnSetChannelDevRecordPlan(){©Overridepublicvoidon(intret)回//TODOAuto-generatedmethodstubSystem,out.printin(n=ret2=:n+rec);12、查询通道云存录像计划状态:通过QYSession对象调用QueryChannelCloudRecordStatus(longchannelID,intcloud,finalOnQueryChannelCloudRecordStatuscallback)方法查询通道云存录像计划状态。参数:1、channelID为视频通道id,2、cloud1为云存,0为设备3、callback为请求结果
回调函数(回调回来的对象包含设备/云存录像计划相关信息)。QyLoginAccivity.session.QueryChannelCloudRecordS'Ca'Cus(Long.valueOf(channelName)f0,newOnQueryChannelCloudRecordS'Da,Cus(){@Overridepublicvoidon(intret,QYSetChannelRecordPanqyRecordPlan){//TODOAuto-generatedmethodstubSystem,out.println(n=ret2=:n+rer);for(inti=0;i<7;i++){for(intj=0;j<qyRecordPlan.getDays()[i].getPlanTimeCount();j++)(System,out.println(n=s,car'C=:n+qyRecordPlan.getDays()[i].gecTimes()[j].getStart()+";;end=:n+qyRecordPlan.getDays()[i].getTimes()[j].getEnd());}})===startTagTextSystem.out=start=:0:15;;end=:2:45System,,out=stiart=:0:15;;end=:2:45System.out=start=:4:24;;end=:6:45System.,out==sta,rt=:9:18;;end=:13:3System.,out=start=:14:9;;end=:16:15System,,out=start=:16:48;;end=:24:013、查询设备运行状态(设备信息):通过QYSession对象调用QueryDevRunStatusInfo(longchannellD,finalOnQueryDevRunStatusInfocallback)方法查询设备运行状态(设备信息)。参数:1、channellD为视频通道id,2、callback为请求结果回调函数(回调回来的对象里包含设备的运行状态信息)。caseR.id.button^:System.out.println"+rec+”;;;dst^+devRunlnfo.getDstArera()+";;arera==:"+devRunInfo.getTimeZone;cityName,.QyLoginActivity.session.QueryDevRunScacusInfo(Long.System.out.println"+rec+”;;;dst^+devRunlnfo.getDstArera()+";;arera==:"+devRunInfo.getTimeZone;cityName,.if(null!=devRunInfo.getDevCityZone()){QyLoginActi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院dip年终总结(2篇)
- 学校教学质量提升自评报告
- 2026年森林防火瞭望员新员工岗位专业知识笔试题目及答案
- 社区生鲜冷柜除霜消杀记录台账指南(2025版)
- 文创市集摊位布置与商品陈列规范
- 石材加工粉尘收集治理指南(2026版)
- 拖拉机操作维护保养指南
- 少儿托管班学生接送签到交接制度
- 市政道路工程施工组织设计
- 事业单位江苏省事业单位社会保障服务中心笔试专项刷题题库附参考答案
- 2026年廉政知识专题测试题及答案
- 城乡教育公平之困与破局:现状、成因与路径探索
- 2026-2027学年人美版(新版)初中美术九年级上册(全册)教学设计(附目录p89)
- 2026年机关事业单位工勤人员计算机操作员高级工考试试题及答案
- 大连船舶重工集团笔试题目及答案
- (正式版)DB11∕T 1733-2020 《绿地保育式生物防治技术规程》
- 2026年中小学教师师德师风知识考试试题及答案
- T∕CSIA 022-2025企业体验式安全教育基地建设规范
- 2026浙江国检检测技术股份有限公司第一轮招聘员工拟录用对象笔试历年常考点试题专练附带答案详解
- GB/T 5124.1-2026硬质合金化学分析方法第1部分:总碳量的测定重量法和气体容量法
- 华为运输包装设计规范(内容系统全面)
评论
0/150
提交评论