本文原文地址  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. HDU 1160 FatMouse&#39;s Speed(DP)

    题意  输入n个老鼠的体重和速度   从里面找出最长的序列  是的重量递增时速度递减 简单的DP  令d[i]表示以第i个老鼠为所求序列最后一个时序列的长度  对与每一个老鼠i  遍历全部老鼠j  当 ...

  2. udhcp源码详解(四) 之租赁IP的管理

    Server端对于租赁出去的IP的管理是基于结构体dhcpOfferedAddr的,该结构体的定义是在leases.c文件里:(结构体的成员介绍说明见详解之数据结构) 1: struct dhcpOf ...

  3. HDFS集中式缓存管理(Centralized Cache Management)

    Hadoop从2.3.0版本号開始支持HDFS缓存机制,HDFS同意用户将一部分文件夹或文件缓存在HDFS其中.NameNode会通知拥有相应块的DataNodes将其缓存在DataNode的内存其中 ...

  4. Elasticsearch - 搜索类型与搜索位置

    一.搜索类型: Elasticsearch同意用户选择其所希望的处理查询的方式. 由于存在一些不同的情形,对其使用不同的搜索类型才是合适的.为了控制查询的运行方式,我们能够在请求中使用search_t ...

  5. spring依赖注入(反转控制)

    SPRING依赖注入机制(反转控制)解析 Spring能有效地组织J2EE应用各层的对象.不管是控制层的Action对象,还是业务层的 Service对象,还是持久层的DAO对象,都可在Spring的 ...

  6. 必备java参考资源列表

    现在开始正式介绍这些参考资源. Web 站点和开发人员 Web 门户 网络无疑改变了共享资源和出版的本质(对我也是一样:您正在网络上阅读这篇文章),因此,从每位 Java 开发人员都应该关注的关键 W ...

  7. browser user agent

    乐视X501 UC浏览器1080x1920x32Mozilla/5.0 (Linux; U; Android 5.0.2; zh-CN; Letv X501 Build/DBXCNOP55013041 ...

  8. mongo11---Access control is not enabled for the database

    今天使用MongoDB时遇到了一些问题 建立数据库连接时出现了warnings 出现这个警告的原因是新版本的MongDB为了让我们创建一个安全的数据库 必须要进行验证 后来在外网找到了答案 解决方案如 ...

  9. bzoj1465 bzoj1045: [HAOI2008] 糖果传递&&bzoj3293: [Cqoi2011]分金币

    一道神奇的题..看到做法是排序我的心是绝望的.. 首先我们可以先求出每个小朋友应该得到的糖果数,就是平均值,然后ave-a[i]就代表要从其他小朋友那得到多少个糖果(如果是负数就是要送出糖果)然后求前 ...

  10. YTU 2958: 代码填充--雨昕学画画

    2958: 代码填充--雨昕学画画 时间限制: 1 Sec  内存限制: 128 MB 提交: 156  解决: 102 题目描述 雨昕开始学画水彩画,老师给雨昕一个形状(Shape)类,雨昕在Sha ...