本文原文地址 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 = 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 說明 202 Need modify password 初始密碼登錄時需要修改密碼 203 Need modify password 密碼強度不符合平台要求修改密碼 204 Need modify password 密碼過期修改密碼 205 Password error 密碼錯誤 205 Session過期,請重新登錄 230 Exception:具體問題 231 平台需要提示的錯誤描述