iOS 中整合海康威視 攝像視頻,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 = 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 平台需要提示的錯誤描述