本文原文地址  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 中集成海康威视 摄像视频的更多相关文章

  1. 如何在ios中集成微信登录功能

    在ios中集成微信的登录功能有两种方法 1 用微信原生的api来做,这样做的好处就是轻量级,程序负重小,在Build Settings 中这样设置 然后设置 友盟的设置同上,但是要注意,加入你需要的所 ...

  2. iOS中集成ijkplayer视频直播框架

    ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集成ijk ...

  3. 在Android和iOS中集成flutter

    flutter可能是未来跨平台开发的又一技术框架,那么对于一个app,我们不可能完全用flutter来开发,那么就意味着我们需要在已有的Android和iOS代码中去集成flutter.目前这一技术还 ...

  4. iOS 中集成百度echarts3.0

    突然项目中要用到图表,所以就用了百度的echarts,然后就是网上搜了一下,由于本人的JS不是很熟悉,但是研究了一下还是做出来了,其实也不是很难 最后做的效果大概如下图这种,由于界面上没调整,所以粗糙 ...

  5. iOS:集成ijkplayer视频直播

    介绍: ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集 ...

  6. 视频云SDK iOS持续集成项目实践

    1. 前言 2016年, 我们维护的 iOS推流播放融合SDK KSYLive_iOS 在github上发布了40多个版本, 平均两周发布一个新版本, 经历了最初痛苦的全手动版本构建和维护, 到后来慢 ...

  7. iOS中支付宝集成

    iOS中支付宝集成 如今各种的App中都使用了三方支付的功能,现在将我在使用支付宝支付集成过程的心得分享一下,希望对大家都能有所帮助 要集成一个支付宝支付过程的环境,大致需要: 1>公司:先与支 ...

  8. iOS原生项目中集成React Native

    1.本文的前提条件是,电脑上已经安装了CocoaPods,React Native相关环境. 2.使用Xcode新建一个工程.EmbedRNMeituan [图1] 3.使用CocoaPods安装Re ...

  9. react native 之 在现有的iOS工程中集成react native

    在现有的iOS工程中集成react native, 或者说将react native引入到iOS 项目,是RN和iOS混合开发的必经之路 参考官网教程:https://reactnative.cn/d ...

随机推荐

  1. android findVIewById()在线生成工具

    今天突然发现一个好工具,能够依据你输入的XML布局文件,自己主动生成findViewById的代码.还支持android annotation的注解方式.真是太棒了.由于我正是使用androidann ...

  2. Linux(Ubuntu14.04)下Google Chrome / Chromium标题栏乱码问题

    注:我使用的Linux发行版是Ubuntu 14.04,不同Linux发行版可能会有不同. 最近在使用Chromium的时候tab的标题栏中文显示乱码,在地址栏输入中文是同样时乱码,就像下图: 看起来 ...

  3. 通过fsharp 使用Enterprise Library Unity 3 - 三种拦截模式的探索

    这篇就三种拦截模式进行一下探索. 特性总结   类型 特点 其它 InterfaceInterceptor Innstance 仅单接口 类内部函数互相引用无法引起拦截行为 TransparentPr ...

  4. handsontable整理

    hansontable简介 hansontable是一个在线类似Excel的表格编辑器,支持丰富的展现和交互,有多样的单元格类型供配置. 核心是由原生JavaScript构建,充分模块化,支持自定义b ...

  5. 初识JVM虚拟机

    前言: Java语言里负责解释执行字节码文件的是Java虚拟机,即JVM——Java Virtual Machine(Java虚拟机). 执行Java程序的两个步骤: 由Java语言编写的程序需要进过 ...

  6. linux WEB服务器***

    Apache sudo apt-get install apache2 PHP sudo apt-get install php5 sudo apt-get install php5-gd     / ...

  7. 【黑金教程笔记之005】【建模篇】【Lab 04 消抖模块之二】—笔记

    实验四和实验三的区别在于输出.实验三是检测到由高到低的电平变化时就拉高输出,检测到由低到高的电平变化时就拉低输出.而实验四检测到由高到低的电平变化时产生一个100ms的高脉冲.当检测到由低到高的电平变 ...

  8. 洛谷 P3356 火星探险问题 【最大费用最大流】

    输出方案好麻烦啊 拆点,石头的连(i,i',1,1)(i,i',inf,0)表示可以取一次价值1,空地直接连(i,i',inf,0),对于能走到的两个格子(不包括障碍),连接(i',j,inf,0), ...

  9. 我的周记6——"不破楼兰誓不还“

    周6 2019-06-13  天气:雨 这张照片是我那天中午回家的时候拍的,下着中雨.这是谁的孩子,又是谁的妈妈.看到这样的场景心里还是蛮有触动的, 因为我现在是离家千里的孩子,思念着故乡也想念着亲人 ...

  10. Poj 2947 widget factory (高斯消元解同模方程)

    题目连接: http://poj.org/problem?id=2947 题目大意: 有n种类型的零件,m个工人,每个零件的加工时间是[3,9],每个工人在一个特定的时间段内可以生产k个零件(可以相同 ...