iOS 中集成海康威视 摄像视频
本文原文地址 http://www.cnblogs.com/qianLL/p/6652104.html
一.要导入相关的库,注意 这里比较坑的是 要用和他一样的 如果开始的工程中用了AFN或者MJExtentsion 的话 自己最好删除了,不然包很多错误,直接把他的库导入进去即可
二,在Other Linker Flags 中要设置 -Objc
三,要初始化MSP的地址与端口才可以进行视频播放的相关组件
[[MCUVmsNetSDK shareInstance] configMspWithAddress:服务器地址 port:端口号];
VP_InitSDK();
四,iOS 9以上要设置 在info.plist文件中设置支持HTTP
五,只支持真机调试
六,在调用摄像头之前,要先登录自己账号,方法在下面
七,注意的是,bitcode 要设置为No,切记,库一定要和他用一样的
接口说明
MSP的IP端口配置
/**
* 初始化msp的IP与端口
*
* @param address msp的IP地址
* @param port msp的端口
*/
- (void)configMspWithAddress:(NSString *)address port:(NSString *)port; 登录接口
/**
* 登录接口
*
* @param servAddr [IN]服务器地址
* @param sessionID [IN]会话ID
* @param doorId [IN]门禁ID
* @param groupID [OUT]监控点详细信息
*/
- (void)loginMspWithUsername:(NSString *)username password:(NSString * )password success:(void (^)(id object))success failure:(void (^)( NSError *error))failure; 注销接口
/**
* 登出接口
*/
- (void)logoutMsp:(void (^)(id object))success failure:(void (^)(NSError *error))failure; 获取资源接口
/**
* 获取根节点
* @param sysType 获取类型 1:视频 2:门禁
* @param success 成功回调函数
* @param failure 失败回调函数
*/
- (void)requestRootNodeWithSysType:(NSInteger)sysType success:(void (^)( id object))success failure:(void (^)(NSError *error))failure; /**
* 获取资源
*
* @param sysType 资源类型 1:视频 2:门禁,
* @param nodeType 当前节点类型 1:控制中心 2:区域
* @param currentID 请求获取子资源的节点的ID
* @param numPerPage 每页获取数量
* @param curPage 当前第几页
* @param success 成功回调函数
* @param failure 失败回调函数
*/
- (void)requestResourceWithSysType:(NSInteger)sysType nodeType:(NSInteger)nodeType currentID:(NSString *)currentID numPerPage:(NSInteger)numPerPage curPage:(NSInteger)curPage success:(void (^)( id object))success failure:(void (^)(NSError *error))failure; 预览相关接口
/**
* 开始预览
*
* @param cameraSyscode 监控点syscode
* @param type 预览画质
* @param playView 预览view
*/
- (void)startRealPlay:(NSString *)cameraSyscode videoType:(VP_STREAM_TYPE)type playView:(UIView *)playView complete:(void(^)(BOOL finish, NSString *message))complete; /**
* 停止预览
*/
- (BOOL)stopRealPlay; /**
* 抓图
*/
- (BOOL)capture:(VPCaptureInfo *)captureInfo;
/**
* 开始录像
*
* @return 录像是否成功
*/
- (BOOL)startRecord:(VPRecordInfo *)recordInfo; /**
* 停止录像
*
* @return 停止录像是否成功
*/
- (BOOL)stopRecord; /**
* 打开声音
*
* @return 返回打开声音是否成功
*/
- (BOOL)openAudio; /**
* 关闭声音
*
* @return 关闭声音是否成功
*/
- (BOOL)turnoffAudio; /**
* 开始云台控制
*
* @param ptzCommond 云台命令
* @param param1 云台参数1:云台转动时转动速度(1-10)或者 预置点操作时预置点编号 或者 3d放大时起始点x坐标
*/
- (void)startPtzControl:(NSInteger)ptzCommond withParam1:(NSInteger)param1; - (void)stopPtzControl:(NSInteger)ptzCommond withParam1:(NSInteger)param1; 回放相关接口
/**
* 开始回放
*
* @param cameraSyscode 监控点syscode
* @param playView 回放view
*/
- (void)startPlayBack:(NSString *)cameraSyscode playView:(UIView *)playView date:(NSDate *)date; /**
* 更新当前播放的时间
*
* @param currentTime 当前时间
*/
- (void)updatePlayBackTime:(TIME_STRUCT)currentTime; /**
* pickerView更新播放时间和录像位置
*
* @param date 录像时间
* @param pos 录像位置
*/
- (void)pickerStartPlayBack:(NSDate *)date currentPos:(NSString *)pos; /**
* 停止回放
*/
- (BOOL)stopPlayBack; /**
* 获取全局osd时间
*
* @return 返回全局时间
*/
- (NSTimeInterval)getOsdTime; /**
* 抓图
*/
- (BOOL)capture:(VPCaptureInfo *)captureInfo; /**
* 暂停播放
*
*/
- (BOOL)pausePlayBack; /**
* 重启播放
*/
- (BOOL)resumePlayBack; /**
* 开始录像
*
* @return 录像是否成功
*/
- (BOOL)startRecord:(VPRecordInfo *)recordInfo; /**
* 停止录像
*
* @return 停止录像是否成功
*/
- (BOOL)stopRecord; /**
* 打开声音
*
* @return 返回打开声音是否成功
*/
- (BOOL)openAudio; /**
* 关闭声音
*
* @return 关闭声音是否成功
*/
- (BOOL)turnoffAudio; 实体类
监控点信息类MCUCameraInfo
#import <Foundation/Foundation.h> @interface MCUCameraInfo : NSObject @property (nonatomic, copy) NSString *sysCode;
@property (nonatomic, copy) NSString *cameraID;
@property (nonatomic, copy) NSString *cameraName;
@property (nonatomic, copy) NSString *userCapability; /**<用户权限 1代表实时预览,2代表录像回放,3代表云台控制 */
@property (nonatomic, copy) NSString *deviceID; /**< 对应的设备ID */
@property (nonatomic, copy) NSString *gbSysCode; /**< 级联的时候用gbSysCode组装播放的URL,用户不必关心,可调用MCUVmsNetSDK的getRealPlayURLWithStreamType:(VP_STREAM_TYPE)type cameraInfo:(MCUCameraInfo *)cameraInfo */
@property (nonatomic, copy) NSString *guid;
@property (nonatomic, assign) NSInteger type;
@property (nonatomic, copy) NSString *recordPos; /**< 录像保存的位置 */
@property (nonatomic, assign) NSInteger channelNo; /**< 通道号 */
@property (nonatomic, assign) NSInteger deviceNetID;
@property (nonatomic, assign) BOOL cascadeFlag; /**< 级联表示,0表示非级联,1表示级联 */
@property (nonatomic, assign) BOOL isOnline; /**< 是否在线*/ @end 设备信息类
#import <Foundation/Foundation.h> @interface MCUDeviceInfo : NSObject @property (nonatomic, copy) NSString *username; /**< 设备的用户名 */
@property (nonatomic, copy) NSString *password; /**< 设备的密码 */
@property (nonatomic, copy) NSString *deviceName; /**< 设备的名字 */
@property (nonatomic, copy) NSString *indexCode; @end 资源节点类
#import <Foundation/Foundation.h> typedef NS_ENUM(NSUInteger, ResourceNodeType) {
ResourceNodeTypeControlCenter = ,
ResourceNodeTypeRegion,
ResourceNodeTypeCamera
}; @interface MCUResourceNode : NSObject @property (nonatomic, copy) NSString *nodeID; /**< 节点ID , nodeType为3时,其相当于cameraID */
@property (nonatomic, copy) NSString *parentNodeID; /**< 父节点ID */
@property (nonatomic, copy) NSString *nodeName; /**< 节点名称 nodeType为3时,其相当于cameraName */
@property (nonatomic, copy) NSString *sysCode; /**< 监控点的sysCode,此处不为空 */
@property (nonatomic, copy) NSString *userCapability; /**< 监控点权限控制,@"1,2,4", 1代表有预览权限,2代表有录像回放权限,4代表有云台控制权限 */
@property (nonatomic, assign) ResourceNodeType nodeType; /**< nodeType:1对应平台里的控制中心,2代表平台里的区域, 3,对应监控点 */
@property (nonatomic, assign) BOOL cascadeFlag; /**< 监控点是否为级联,0非级联,1为级联 */
@property (nonatomic, assign) BOOL isOnline; /**< 监控点是否在线,0不在线,1在线 */ @end 错误码汇总
Status Description 说明
Need modify password 初始密码登录时需要修改密码
Need modify password 密码强度不符合平台要求修改密码
Need modify password 密码过期修改密码
Password error 密码错误
Session过期,请重新登录
Exception:具体问题
平台需要提示的错误描述
iOS 中集成海康威视 摄像视频的更多相关文章
- 如何在ios中集成微信登录功能
在ios中集成微信的登录功能有两种方法 1 用微信原生的api来做,这样做的好处就是轻量级,程序负重小,在Build Settings 中这样设置 然后设置 友盟的设置同上,但是要注意,加入你需要的所 ...
- iOS中集成ijkplayer视频直播框架
ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集成ijk ...
- 在Android和iOS中集成flutter
flutter可能是未来跨平台开发的又一技术框架,那么对于一个app,我们不可能完全用flutter来开发,那么就意味着我们需要在已有的Android和iOS代码中去集成flutter.目前这一技术还 ...
- iOS 中集成百度echarts3.0
突然项目中要用到图表,所以就用了百度的echarts,然后就是网上搜了一下,由于本人的JS不是很熟悉,但是研究了一下还是做出来了,其实也不是很难 最后做的效果大概如下图这种,由于界面上没调整,所以粗糙 ...
- iOS:集成ijkplayer视频直播
介绍: ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集 ...
- 视频云SDK iOS持续集成项目实践
1. 前言 2016年, 我们维护的 iOS推流播放融合SDK KSYLive_iOS 在github上发布了40多个版本, 平均两周发布一个新版本, 经历了最初痛苦的全手动版本构建和维护, 到后来慢 ...
- iOS中支付宝集成
iOS中支付宝集成 如今各种的App中都使用了三方支付的功能,现在将我在使用支付宝支付集成过程的心得分享一下,希望对大家都能有所帮助 要集成一个支付宝支付过程的环境,大致需要: 1>公司:先与支 ...
- iOS原生项目中集成React Native
1.本文的前提条件是,电脑上已经安装了CocoaPods,React Native相关环境. 2.使用Xcode新建一个工程.EmbedRNMeituan [图1] 3.使用CocoaPods安装Re ...
- react native 之 在现有的iOS工程中集成react native
在现有的iOS工程中集成react native, 或者说将react native引入到iOS 项目,是RN和iOS混合开发的必经之路 参考官网教程:https://reactnative.cn/d ...
随机推荐
- 【java】itoo项目实战之hibernate 懒载入优化性能
在做itoo 3.0 的时候,考评系统想要上线,就開始导入数据了,仅仅导入学生2万条数据,可是导入的速度特别的慢.这个慢的原因是由于导入的时候进行了过多的IO操作.可是导入成功之后,查询学生的速度更加 ...
- web 开发之js---ajax 中的两种返回状态 xmlhttp.status和 xmlhttp.readyState
(1)xmlhttp.status xmlHttp.status的值(HTTP状态表)0**:未被始化 1**:请求收到,继续处理 2**:操作成功收到,分析.接受 3**:完成此请求必须进一步处理 ...
- 开发指南专题二:JEECG微云高速开发平台JEECG框架初探
开发指南专题二:JEECG微云高速开发平台JEECG框架初探 2.JEECG框架初探 2.1演示系统 打开浏览器输入JEECG演示环境界址:http://demo.jeecg.org:8090/能够看 ...
- brctl和虚拟网桥
1 创建空的虚拟网桥 brctl addbr br0 这个时候可以认为该虚拟网桥有多个虚拟接口,但是没有实际的网卡接口和该虚拟网桥相连的. 2 将eth0网卡连接到br0 网卡只有一个接口,这个接口是 ...
- Oracle - 数据更新 - 事务
/* 事务 事务是为了控制数据异步访问所使用的一种技术 就类似于java中的锁机制 synchronized,只不过功能更加强大 事务不能进行嵌套,当我们开启一个事务的之后作的每一次dml语句都属于这 ...
- ubuntu LNMP环境下安装Redis,以及php的redis扩展
1.下载 sudo wget http://download.redis.io/releases/redis-4.0.9.tar.gz 2.解压 sudo tar zvxf redis-4.0.9.t ...
- HDU - 1150 Machine Schedule(最小点覆盖数)
1.有两台机器A和B以及N个需要运行的任务.A机器有n种不同的模式,B机器有m种不同的模式,而每个任务都恰好在一台机器上运行.如果它在机器A上运行,则机器A需要设置为模式xi,如果它在机器B上运行,则 ...
- CF上的3道小题(1)
CF上的3道小题 终于调完了啊.... T1:CF702E Analysis of Pathes in Functional Graph 题意:你获得了一个n个点有向图,每个点只有一条出边.第i个点的 ...
- AutoIT: 学习对GUI Sample上所有的资源进行操作
$handle= WinGetHandle("Sample GUI") ;,"SRE Example 3 Result", $handle) $ctrl= Co ...
- ssh 无密码互通
节点n1 n2 n3 互通 第一步:n1->n2互通 admin@n1 > ssh-keygen -d