iOS-中集成海康威视-摄像视频

本文详细介绍了一款iOS视频监控系统的开发流程和技术要点,包括如何配置监控系统的IP地址与端口、实现视频预览和回放功能、进行云台控制等关键步骤。此外,还提供了登录、注销、获取资源等API接口说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.要导入相关的库,注意 这里比较坑的是 要用和他一样的 如果开始的工程中用了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 = 1,
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:具体问题
平台需要提示的错误描述
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值