.gitignore
@@ -75,7 +75,7 @@ *.ilk *.meta *.obj *.pch # *.pch *.pdb *.pgc *.pgd Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Base.lproj/AddDevice.storyboard
@@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17506" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" colorMatched="YES" initialViewController="1Qq-y9-5Vr"> <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="19162" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" colorMatched="YES" initialViewController="1Qq-y9-5Vr"> <device id="retina4_7" orientation="portrait" appearance="light"/> <dependencies> <deployment identifier="iOS"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17505"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19144"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <scenes> @@ -684,24 +684,40 @@ <nil key="highlightedColor"/> </label> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Q0X-wy-A5B"> <rect key="frame" x="47.5" y="362" width="311.5" height="40"/> <rect key="frame" x="47.5" y="362" width="311.5" height="100"/> <attributedString key="attributedText"> <fragment content="è¿å"> <attributes> <font key="NSFont" size="14" name=".PingFangSC-Regular"/> <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" minimumLineHeight="20" tighteningFactorForTruncation="0.0"/> <color key="NSColor" name="textColor" catalog="System" colorSpace="catalog"/> <font key="NSFont" size="14" name="PingFangSC-Regular"/> <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" minimumLineHeight="20" tighteningFactorForTruncation="0.0" allowsDefaultTighteningForTruncation="NO"/> </attributes> </fragment> <fragment content="APP"> <attributes> <font key="NSFont" metaFont="system" size="14"/> <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" minimumLineHeight="20" tighteningFactorForTruncation="0.0"/> <color key="NSColor" name="textColor" catalog="System" colorSpace="catalog"/> <font key="NSFont" size="14" name="HelveticaNeue"/> <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" minimumLineHeight="20" tighteningFactorForTruncation="0.0" allowsDefaultTighteningForTruncation="NO"/> </attributes> </fragment> <fragment content="ï¼çå¾ ä¸è®¾å¤è¿æ¥ï¼æååèªå¨è¿å ¥ä¸ä¸æ¥æä½ã"> <fragment content="ï¼çå¾ ä¸è®¾å¤è¿æ¥ï¼æååèªå¨è¿å ¥ä¸ä¸æ¥æä½ãï¼æ³¨æï¼å¦æè®¾å¤WIFIåç§°ä¸æ¯âEZVIZâåç¼çï¼è¯·å¤å¶å¯ç åæ ¹æ®æ°çåç¼ååï¼æå¨ä¿®æ¹å¯ç çåç¼å¹¶è¿æ¥å³å¯ãä¾å¦â"> <attributes> <font key="NSFont" size="14" name=".PingFangSC-Regular"/> <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" minimumLineHeight="20" tighteningFactorForTruncation="0.0"/> <color key="NSColor" name="textColor" catalog="System" colorSpace="catalog"/> <font key="NSFont" size="14" name="PingFangSC-Regular"/> <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" minimumLineHeight="20" tighteningFactorForTruncation="0.0" allowsDefaultTighteningForTruncation="NO"/> </attributes> </fragment> <fragment content="SoftAP_XXXXXXX"> <attributes> <font key="NSFont" size="13" name="HelveticaNeue"/> <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" minimumLineHeight="20" tighteningFactorForTruncation="0.0" allowsDefaultTighteningForTruncation="NO"/> </attributes> </fragment> <fragment content="âï¼"> <attributes> <color key="NSColor" name="textColor" catalog="System" colorSpace="catalog"/> <font key="NSFont" size="14" name="PingFangSC-Regular"/> <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" minimumLineHeight="20" tighteningFactorForTruncation="0.0" allowsDefaultTighteningForTruncation="NO"/> </attributes> </fragment> </attributedString> Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/PrefixHeader.pch
New file @@ -0,0 +1,51 @@ // // PrefixHeader.pch // EZOpenSDKDemo // // Created by linyong on 16/10/26. // Copyright © 2016å¹´ Ezviz. All rights reserved. // #ifndef PrefixHeader_pch #define PrefixHeader_pch // Include any system framework and library headers here that should be included in all compilation units. // You will also need to set the Prefix Header build setting of one or more of your targets to reference this file. #if 0 #define EZVIZ_GLOBAL_DEMO #else #define EZVIZ_OPEN_DEMO #endif #define DEMO_ONLINE //çº¿ä¸æå¡å¨ //#import "Macros.h" //#import "UIView+EZExtension.h" #import "UIView+Toast.h" //#import "JXTAlertController.h" //#import "NSDate+DateTools.h" #import "Masonry.h" #import "DDKit.h" #import "EZOpenSDK.h" #import "EZGlobalSDK.h" #import "GlobalKit.h" #import "EZHttpUtil.h" #import "EZSDK.h" //#ifdef EZVIZ_GLOBAL_DEMO // //#define EZOPENSDK [EZGlobalSDK class] // //#else // //#define EZOPENSDK [EZOpenSDK class] // //#endif #endif /* PrefixHeader_pch */ Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZAPWiFiConfigViewController.m
@@ -244,8 +244,13 @@ { NSString *ssid = [self currentSsid]; if (ssid && [ssid isEqualToString:self.devicWifiName]) { // if (ssid && [ssid isEqualToString:self.devicWifiName]) // { // return YES; // } //2021-10-19 夿æ¡ä»¶ï¼æ¹ä¸ºåªå¹é åé¢åºåå·å段 if(ssid && [ssid hasSuffix:[GlobalKit shareKit].deviceSerialNo]){//å符串æ«å°¾æåºåå·å符 return YES; } Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZAddByQRCodeViewController.m
@@ -234,6 +234,7 @@ - (void)checkQRCode:(NSString *)strQRcode { strQRcode = [strQRcode stringByReplacingOccurrencesOfString:@"\r\n" withString:@"\r"];//2021-10-19 è§£å³é¨åç«ç¼è®¾å¤å±å¹æ¾ç¤ºçäºç»´ç ï¼åæ°ä¹é´åºç°ç©ºè¡å¯¼è´åå²åéåæ®µé®é¢ NSArray *arrString = [strQRcode componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]; if(arrString.count >=3) Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZDeviceTableViewController.m
@@ -390,9 +390,9 @@ } - (void) go2VideoTalk:(EZDeviceInfo *)deviceInfo { EZVideoTalkViewcontroller *vc = [EZVideoTalkViewcontroller videoTalkVC]; vc.deviceInfo = deviceInfo; [self.navigationController pushViewController:vc animated:YES]; // EZVideoTalkViewcontroller *vc = [EZVideoTalkViewcontroller videoTalkVC]; // vc.deviceInfo = deviceInfo; // [self.navigationController pushViewController:vc animated:YES]; } - (IBAction)go2MultiPlay:(id)sender { Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/VideoTalk/EZVideoTalkViewcontroller.h
@@ -1,20 +1,20 @@ //// //// EZVideoTalkViewcontroller.h //// EZBAVDemo //// //// Created by kanhaiping on 2018/6/26. //// Copyright © 2018年 hikvision. All rights reserved. //// // // EZVideoTalkViewcontroller.h // EZBAVDemo //#import <UIKit/UIKit.h> // // Created by kanhaiping on 2018/6/26. // Copyright © 2018年 hikvision. All rights reserved. //@class EZDeviceInfo; // #import <UIKit/UIKit.h> @class EZDeviceInfo; @interface EZVideoTalkViewcontroller : UIViewController @property(nonatomic, strong) EZDeviceInfo *deviceInfo; + (EZVideoTalkViewcontroller *) videoTalkVC; @end //@interface EZVideoTalkViewcontroller : UIViewController // //@property(nonatomic, strong) EZDeviceInfo *deviceInfo; // //+ (EZVideoTalkViewcontroller *) videoTalkVC; // //@end // Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/VideoTalk/EZVideoTalkViewcontroller.mm
@@ -1,221 +1,221 @@ //// //// EZVideoTalkViewcontroller.m //// EZBAVDemo //// //// Created by kanhaiping on 2018/6/26. //// Copyright © 2018å¹´ hikvision. All rights reserved. //// // // EZVideoTalkViewcontroller.m // EZBAVDemo //#import "EZVideoTalkViewcontroller.h" //#import "EZVideoTalkSDK.h" //#import "EZVideoTalkParam.h" //#import "UIView+Toast.h" //#import <AVFoundation/AVFoundation.h> //#import "EZOpenSDK.h" //#import "EZDeviceInfo.h" //#import "GlobalKit.h" //#import "EzvizWatchServerInfo.h" //#import "EZTokenKit.h" // // Created by kanhaiping on 2018/6/26. // Copyright © 2018å¹´ hikvision. All rights reserved. //@interface EZVideoTalkViewcontroller ()<EZVideoTalkSDKDelegate> //@property (nonatomic, assign) BOOL bEverOpenSound; //@property (nonatomic, strong) EZVideoTalkSDK *client; // #import "EZVideoTalkViewcontroller.h" #import "EZVideoTalkSDK.h" #import "EZVideoTalkParam.h" #import "UIView+Toast.h" #import <AVFoundation/AVFoundation.h> #import "EZOpenSDK.h" #import "EZDeviceInfo.h" #import "GlobalKit.h" #import "EzvizWatchServerInfo.h" #import "EZTokenKit.h" @interface EZVideoTalkViewcontroller ()<EZVideoTalkSDKDelegate> @property (nonatomic, assign) BOOL bEverOpenSound; @property (nonatomic, strong) EZVideoTalkSDK *client; @property (weak, nonatomic) IBOutlet UIView *localView; @property (weak, nonatomic) IBOutlet UIView *remoteView; @property (weak, nonatomic) IBOutlet UITextField *roomIDTextField; @property (nonatomic, strong) EzvizWatchServerInfo *watchServerInfo; @end @implementation EZVideoTalkViewcontroller + (EZVideoTalkViewcontroller *) videoTalkVC { EZVideoTalkViewcontroller *vc = [[NSBundle mainBundle] loadNibNamed:@"EZVideoTalkViewcontroller" owner:nil options:nil].firstObject; return vc; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)]; if (self.view.gestureRecognizers.count <= 0) { [self.view addGestureRecognizer:gesture]; } self.title = @"Video Talk"; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(stopTalk) name:UIApplicationDidEnterBackgroundNotification object:nil]; [self getWatchInfo]; } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; [[NSNotificationCenter defaultCenter] removeObserver:self]; if (self.client != nil) { [self stopTalk]; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #pragma mark Actions - (IBAction)createRoomAction:(id)sender { [self startTalkWithRoomID:0]; } - (IBAction)enterRoomAction:(id)sender { if (self.roomIDTextField.text.length <= 0 || [self.roomIDTextField.text integerValue] <= 0) { [self showMessage:@"请è¾å ¥æ£ç¡®çæ¿é´å·"]; return; } [self startTalkWithRoomID:(int32_t)[self.roomIDTextField.text integerValue]]; [self showMessage:@"å å ¥æ¿é´"]; } - (IBAction)leaveRoomAction:(id)sender { [self stopTalk]; [self showMessage:@"å·²ç¦»å¼æ¿é´"]; } - (void)tapAction:(id)sender { [self.roomIDTextField resignFirstResponder]; } #pragma mark Helper - (void)showMessage:(NSString *)message { [self.view makeToast:message duration:2.0 position:CSToastPositionCenter]; } #pragma mark BAV API - (void)getWatchInfo { __weak typeof(self) weakSelf = self; [EZOpenSDK requestGetWatchServerInfo:self.deviceInfo.deviceSerial completion:^(id watchServerInfo, NSError *error) { weakSelf.watchServerInfo = watchServerInfo; }]; } - (void)startTalkWithRoomID:(int32_t)roomID { if (self.client != nil) { [self.client stop]; self.client = nil; } EZVideoTalkParam *param = [EZVideoTalkParam new]; param.iCltRole = roomID > 0 ? 1 : 0; param.iCltType = 1; param.iOtherCltType = 1; // param.iReason = 101; param.iStsPort = self.watchServerInfo.port; param.iRoomId = roomID > 0 ? roomID : 0; param.szOterId = self.deviceInfo.deviceSerial; param.szSelfId = @"1234567891"; param.szAuthToken = [EZTokenKit sharedKit].token; param.szStsAddr = self.watchServerInfo.domain; [EZVideoTalkSDK setDebugVideoLog:YES]; [EZVideoTalkSDK setDebugLogEnable:YES withLogCallback:^(NSString *logStr) { NSLog(@"%@", logStr); }]; _client = [[EZVideoTalkSDK alloc] initWithParam:param localWindow:self.localView remoteWindow:self.remoteView]; _client.delegate = self; // [_client startWithType:EZVideoTalkCaptureVideo | EZVideoTalkCaptureAudio]; [_client startWithType:EZVideoTalkCaptureAudio]; } - (void)stopTalk { [self.client stop]; self.client = nil; } #pragma mark EZVideoTalkSDKDelegate - (void)videoTalk:(EZVideoTalkSDK *)client didReceivedError:(int32_t)errorCode { NSLog(@"%s recived errorcode:%d", __func__, errorCode); dispatch_async(dispatch_get_main_queue(), ^{ [self showMessage:[NSString stringWithFormat:@"BAVClient Error:%d",errorCode]]; }); [self stopTalk]; } - (void)videoTalk:(EZVideoTalkSDK *)client didReceivedMessage:(EZVideoTalkMessageType)messageCode msg:(NSString *)msg { NSLog(@"%s recived messagecode:%lu ,msg:%@", __func__, (unsigned long)messageCode, msg); dispatch_async(dispatch_get_main_queue(), ^{ if (messageCode == EZVideoTalkMessageRoomCreated) { [self showMessage:[NSString stringWithFormat:@"å·²å建æ¿é´:%d", self.client.roomID]]; self.roomIDTextField.text = [NSString stringWithFormat:@"%d", self.client.roomID]; } else if (messageCode == EZVideoTalkMessageStartInputData) { [self showMessage:[NSString stringWithFormat:@"å¼å§æ¨æµ"]]; } }); } - (void)videoTalk:(EZVideoTalkSDK *)client didReceivedBavClientLogMsg:(NSString *)msg { NSLog(@"%s recived msg:%@", __func__, msg); } - (void)videoTalk:(EZVideoTalkSDK *)client playDelayTime:(int32_t)delayTime { NSLog(@"%s delayTime:%d", __func__, delayTime); dispatch_async(dispatch_get_main_queue(), ^{ [self showMessage:[NSString stringWithFormat:@"ææ¾å¡é¡¿-delayTime:%d", delayTime]]; }); } - (void)videoTalk:(EZVideoTalkSDK *)client playDelayTimeStatistics:(double)delayTimeStat { NSLog(@"%s delayTimeStat:%f", __func__, delayTimeStat); } - (void)videoTalk:(EZVideoTalkSDK *)client didDisplayWidth:(int32_t)width height:(int32_t)height { NSLog(@"%s", __func__); if (!self.bEverOpenSound) { self.bEverOpenSound = YES; [self.client openSound:YES]; } } @end //@property (weak, nonatomic) IBOutlet UIView *localView; //@property (weak, nonatomic) IBOutlet UIView *remoteView; //@property (weak, nonatomic) IBOutlet UITextField *roomIDTextField; // //@property (nonatomic, strong) EzvizWatchServerInfo *watchServerInfo; // //@end // //@implementation EZVideoTalkViewcontroller // //+ (EZVideoTalkViewcontroller *) videoTalkVC { // // EZVideoTalkViewcontroller *vc = [[NSBundle mainBundle] loadNibNamed:@"EZVideoTalkViewcontroller" owner:nil options:nil].firstObject; // return vc; //} // //- (void)viewDidLoad { // [super viewDidLoad]; // // Do any additional setup after loading the view, typically from a nib. // UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)]; // if (self.view.gestureRecognizers.count <= 0) { // [self.view addGestureRecognizer:gesture]; // } // // self.title = @"Video Talk"; //} // //- (void)viewWillAppear:(BOOL)animated { // [super viewWillAppear:animated]; // // [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(stopTalk) name:UIApplicationDidEnterBackgroundNotification object:nil]; // [self getWatchInfo]; //} // //- (void)viewWillDisappear:(BOOL)animated { // [super viewWillDisappear:animated]; // // [[NSNotificationCenter defaultCenter] removeObserver:self]; // // if (self.client != nil) { // [self stopTalk]; // } //} // //- (void)didReceiveMemoryWarning { // [super didReceiveMemoryWarning]; // // Dispose of any resources that can be recreated. //} // // //#pragma mark Actions // //- (IBAction)createRoomAction:(id)sender { // // [self startTalkWithRoomID:0]; //} // //- (IBAction)enterRoomAction:(id)sender { // // if (self.roomIDTextField.text.length <= 0 || [self.roomIDTextField.text integerValue] <= 0) { // [self showMessage:@"请è¾å ¥æ£ç¡®çæ¿é´å·"]; // return; // } // // [self startTalkWithRoomID:(int32_t)[self.roomIDTextField.text integerValue]]; // // [self showMessage:@"å å ¥æ¿é´"]; //} // //- (IBAction)leaveRoomAction:(id)sender { // // [self stopTalk]; // // [self showMessage:@"å·²ç¦»å¼æ¿é´"]; //} // //- (void)tapAction:(id)sender { // // [self.roomIDTextField resignFirstResponder]; //} // //#pragma mark Helper // //- (void)showMessage:(NSString *)message //{ // [self.view makeToast:message duration:2.0 position:CSToastPositionCenter]; //} // //#pragma mark BAV API // //- (void)getWatchInfo { // // __weak typeof(self) weakSelf = self; // [EZOpenSDK requestGetWatchServerInfo:self.deviceInfo.deviceSerial completion:^(id watchServerInfo, NSError *error) { // // weakSelf.watchServerInfo = watchServerInfo; // }]; //} // //- (void)startTalkWithRoomID:(int32_t)roomID //{ // if (self.client != nil) { // [self.client stop]; // self.client = nil; // } // // EZVideoTalkParam *param = [EZVideoTalkParam new]; // param.iCltRole = roomID > 0 ? 1 : 0; // param.iCltType = 1; // param.iOtherCltType = 1; //// param.iReason = 101; // param.iStsPort = self.watchServerInfo.port; // param.iRoomId = roomID > 0 ? roomID : 0; // param.szOterId = self.deviceInfo.deviceSerial; // param.szSelfId = @"1234567891"; // param.szAuthToken = [EZTokenKit sharedKit].token; // param.szStsAddr = self.watchServerInfo.domain; // // [EZVideoTalkSDK setDebugVideoLog:YES]; // [EZVideoTalkSDK setDebugLogEnable:YES withLogCallback:^(NSString *logStr) { // NSLog(@"%@", logStr); // }]; // // _client = [[EZVideoTalkSDK alloc] initWithParam:param localWindow:self.localView remoteWindow:self.remoteView]; // _client.delegate = self; // // // [_client startWithType:EZVideoTalkCaptureVideo | EZVideoTalkCaptureAudio]; // [_client startWithType:EZVideoTalkCaptureAudio]; //} // //- (void)stopTalk //{ // [self.client stop]; // self.client = nil; //} // //#pragma mark EZVideoTalkSDKDelegate // //- (void)videoTalk:(EZVideoTalkSDK *)client didReceivedError:(int32_t)errorCode //{ // NSLog(@"%s recived errorcode:%d", __func__, errorCode); // // dispatch_async(dispatch_get_main_queue(), ^{ // [self showMessage:[NSString stringWithFormat:@"BAVClient Error:%d",errorCode]]; // }); // // [self stopTalk]; //} // //- (void)videoTalk:(EZVideoTalkSDK *)client didReceivedMessage:(EZVideoTalkMessageType)messageCode msg:(NSString *)msg //{ // NSLog(@"%s recived messagecode:%lu ,msg:%@", __func__, (unsigned long)messageCode, msg); // // dispatch_async(dispatch_get_main_queue(), ^{ // // if (messageCode == EZVideoTalkMessageRoomCreated) { // // [self showMessage:[NSString stringWithFormat:@"å·²å建æ¿é´:%d", self.client.roomID]]; // self.roomIDTextField.text = [NSString stringWithFormat:@"%d", self.client.roomID]; // } // else if (messageCode == EZVideoTalkMessageStartInputData) { // // [self showMessage:[NSString stringWithFormat:@"å¼å§æ¨æµ"]]; // } // }); //} // //- (void)videoTalk:(EZVideoTalkSDK *)client didReceivedBavClientLogMsg:(NSString *)msg { // // NSLog(@"%s recived msg:%@", __func__, msg); //} // //- (void)videoTalk:(EZVideoTalkSDK *)client playDelayTime:(int32_t)delayTime { // // NSLog(@"%s delayTime:%d", __func__, delayTime); // // dispatch_async(dispatch_get_main_queue(), ^{ // [self showMessage:[NSString stringWithFormat:@"ææ¾å¡é¡¿-delayTime:%d", delayTime]]; // }); //} // //- (void)videoTalk:(EZVideoTalkSDK *)client playDelayTimeStatistics:(double)delayTimeStat { // // NSLog(@"%s delayTimeStat:%f", __func__, delayTimeStat); //} // //- (void)videoTalk:(EZVideoTalkSDK *)client didDisplayWidth:(int32_t)width height:(int32_t)height { // // NSLog(@"%s", __func__); // if (!self.bEverOpenSound) { // self.bEverOpenSound = YES; // [self.client openSound:YES]; // } //} // // // //@end Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/ViewController.m
@@ -84,10 +84,10 @@ // // // [[EZSDK sharedInstance] setRequestHttpsHostAndPlatform:@"https://china-gateway.hdlcontrol.com" platform:1 homeId:@"1409421094585028610"]; [[EZSDK sharedInstance] setHDlAccessToken:@"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJiZTVmYzRhZjQwODA0Y2Y0OTA5OTk5YTcyYWIwNTVjYSIsImNvbXBhbnlJZCI6IjAiLCJyb2xlIjoiIiwiaGVhZGVyUHJlZml4IjoiQmVhcmVyICIsInRlbmFudElkIjoiMjAiLCJ1c2VyVHlwZSI6IlVTRVJfQyIsInRva2VuVHlwZSI6ImFjY2Vzc190b2tlbiIsInVzZXJOYW1lIjoi5ZiJ5LmQIiwib3BlbkFwcGxpY2F0aW9uSWQiOiIwIiwidXNlcklkIjoiMTM1NzEzODQzNDgyODMzMzA1OCIsImV4cCI6MTYyNjg1MjY5NSwibmJmIjoxNjI2ODQ1NDk1fQ.ZjLGpFDfEXhViUEVqYY5UggMorgqAmj38rHXfHSp1pX008Lk0_KH9lz3R05iCfLign74LSYdTd4OfVkyDYb2pt_bIjZr3w0kZdbun8v4Ofu4bFrFFdI4qACPbc7GjXFI2tC_0A_uvekTB6nCRm3lW-GWAvTocR6UWsA_UGsMDIM" refreshToken:@"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJjNDQ1M2EyMDE0MzU0MWRlYWRmOTgyYjQ3YmEyYjU0YiIsImNvbXBhbnlJZCI6IjAiLCJoZWFkZXJQcmVmaXgiOiJCZWFyZXIgIiwidGVuYW50SWQiOiIyMCIsInRva2VuVHlwZSI6InJlZnJlc2hfdG9rZW4iLCJvcGVuQXBwbGljYXRpb25JZCI6IjAiLCJ1c2VySWQiOiIxMzU3MTM4NDM0ODI4MzMzMDU4IiwiZXhwIjoxNjI3NDUwNDEzLCJuYmYiOjE2MjY4NDU2MTN9.TN9-Y72sesOx-qL6V6BHdbLIqeM26OepFe0uHRIMSXKncRzU9NwknYgREli6k0GDe3965aQD7IeQh-jJTPOxS39VqGjzfuH_E-yfx2wt2aHPbDVZAOBalInSSOGHsJEnw-kEh5BIFDDvq-6tysHemQvxkR3zK5S9XKimwxeCZOg"]; [[EZSDK sharedInstance] setHDlAccessToken:@"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJmNDE3MGQyZjIxZWI0NjMyYWU5ZmUxOTM5NDJmOTNmYiIsImNvbXBhbnlJZCI6IjAiLCJyb2xlIjoiIiwiaGVhZGVyUHJlZml4IjoiQmVhcmVyICIsInRlbmFudElkIjoiMjAiLCJ1c2VyVHlwZSI6IlVTRVJfQyIsInRva2VuVHlwZSI6ImFjY2Vzc190b2tlbiIsInVzZXJOYW1lIjoi5ZiJ5LmQIiwib3BlbkFwcGxpY2F0aW9uSWQiOiIwIiwidXNlcklkIjoiMTM1NzEzODQzNDgyODMzMzA1OCIsImV4cCI6MTYzNDAyNzAxOSwibmJmIjoxNjM0MDE5ODE5fQ.Bn4bTXJq-o4Ch05rM81UdjR_EO4ybEpGwzt19as16UaoQVR9i2OGgoT7r4jVjC204o1APLC3JvrPq-eJKXieh7VBP6n5s-2BwGHTdV4W2cKdiMC5ciVeHFopmkw7cd3JNkxgGiXykQqxMnIl3keNXu5VXjo4XCOw3cYOuXhg_ZA" refreshToken:@"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiIxMWIyNDFjY2U2MDE0YTM2YmIyMTdjZGFhZGY0NzlhMCIsImNvbXBhbnlJZCI6IjAiLCJoZWFkZXJQcmVmaXgiOiJCZWFyZXIgIiwidGVuYW50SWQiOiIyMCIsInRva2VuVHlwZSI6InJlZnJlc2hfdG9rZW4iLCJvcGVuQXBwbGljYXRpb25JZCI6IjAiLCJ1c2VySWQiOiIxMzU3MTM4NDM0ODI4MzMzMDU4IiwiZXhwIjoxNjM0NjI0NjE5LCJuYmYiOjE2MzQwMTk4MTl9.GL9idS-BWGVbZG8RdmwM1sATKJr9FC6Z4x64xZoZf0E421iL_IkGy2iflLWToTmeLqMzBJ-bjN34yCgban-7M4dY5HuEMvWbxgP5sAiXTuS9z1UDkbry8gvs6zrcVUreb9H5ciroNJOh20yoCzfnfXZVl9M7w5acCkl9UmdtX0c"]; [[EZSDK sharedInstance] setRequestHttpsHostAndPlatform:@"https://china-gateway.hdlcontrol.com" platform:1 homeId:@"1417299149361909761"]; [[EZSDK sharedInstance] setRequestHttpsHostAndPlatform:@"https://china-gateway.hdlcontrol.com" platform:1 homeId:@"1357564319439441921"]; } @@ -97,8 +97,7 @@ return; // [[GlobalKit shareKit] setAccessToken:@"ra.a5bfkhhx7ycscsj41if7l0cf9ytfhv5q-9keuxvphmn-1fvjt6p-jugtyy8sr"]; [[EZSDK sharedInstance] setHDlAccessToken:@"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiI2Zjk1ZTEwZWIwNjA0ZjNiYTdmNTc0ZGUyM2QxYmNmZiIsImNvbXBhbnlJZCI6IjAiLCJyb2xlIjoiIiwiaGVhZGVyUHJlZml4IjoiQmVhcmVyICIsInVzZXJBY2NvdW50Ijoid3hyIiwidGVuYW50SWQiOiIyMCIsInVzZXJUeXBlIjoiVVNFUl9DIiwidG9rZW5UeXBlIjoiYWNjZXNzX3Rva2VuIiwidXNlck5hbWUiOiJrYWVkZSIsIm9wZW5BcHBsaWNhdGlvbklkIjoiMCIsInVzZXJJZCI6IjEzOTIwMzU1NjgyMDQ0MjMxNjkiLCJleHAiOjE2MjU3MTY3NjAsIm5iZiI6MTYyNTcwOTU2MH0.C6w0mb0YiNhqQfLPscXiNVh_DOsbza_fubUbn_T-W04L3R7egi7-Gv_iifdfvh4XTU10rEdVl6FLXKxt3JJvo2x_sjBQLkWRQINMVl1qLOz9cMew79_aykXOwl8mdroYs9SKBd90qyM2lZaA91sD4H0HMVVyc_D2TEcG4XJzSBM" refreshToken:@"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiI1M2FlMzg3NDhmNjU0MzE1OTM0MTQ0OWQyYmQ0NjE0NiIsImNvbXBhbnlJZCI6IjAiLCJoZWFkZXJQcmVmaXgiOiJCZWFyZXIgIiwidGVuYW50SWQiOiIyMCIsInRva2VuVHlwZSI6InJlZnJlc2hfdG9rZW4iLCJvcGVuQXBwbGljYXRpb25JZCI6IjAiLCJ1c2VySWQiOiIxMzkyMDM1NTY4MjA0NDIzMTY5IiwiZXhwIjoxNjI2MzE0MzYwLCJuYmYiOjE2MjU3MDk1NjB9.AZlG8jO8lFDcj5dfoY0rZsDfglGdeyLuSImzMw1enHWfAacjkIof0vXQ_qJG9Q-6qxyXXbPu_xrd0DhkGNFeHJ4WFL0iiYgDP51sJuUdKrQklUCSC6T7ZjIW0GSVmvOW4GCw0s6L51bVT_rkdrusVD4rDnOtJwWqXTUfyNanmlk"]; [[EZSDK sharedInstance] setHDlAccessToken:@"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJmNDE3MGQyZjIxZWI0NjMyYWU5ZmUxOTM5NDJmOTNmYiIsImNvbXBhbnlJZCI6IjAiLCJyb2xlIjoiIiwiaGVhZGVyUHJlZml4IjoiQmVhcmVyICIsInRlbmFudElkIjoiMjAiLCJ1c2VyVHlwZSI6IlVTRVJfQyIsInRva2VuVHlwZSI6ImFjY2Vzc190b2tlbiIsInVzZXJOYW1lIjoi5ZiJ5LmQIiwib3BlbkFwcGxpY2F0aW9uSWQiOiIwIiwidXNlcklkIjoiMTM1NzEzODQzNDgyODMzMzA1OCIsImV4cCI6MTYzNDAyNzAxOSwibmJmIjoxNjM0MDE5ODE5fQ.Bn4bTXJq-o4Ch05rM81UdjR_EO4ybEpGwzt19as16UaoQVR9i2OGgoT7r4jVjC204o1APLC3JvrPq-eJKXieh7VBP6n5s-2BwGHTdV4W2cKdiMC5ciVeHFopmkw7cd3JNkxgGiXykQqxMnIl3keNXu5VXjo4XCOw3cYOuXhg_ZA" refreshToken:@"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiIxMWIyNDFjY2U2MDE0YTM2YmIyMTdjZGFhZGY0NzlhMCIsImNvbXBhbnlJZCI6IjAiLCJoZWFkZXJQcmVmaXgiOiJCZWFyZXIgIiwidGVuYW50SWQiOiIyMCIsInRva2VuVHlwZSI6InJlZnJlc2hfdG9rZW4iLCJvcGVuQXBwbGljYXRpb25JZCI6IjAiLCJ1c2VySWQiOiIxMzU3MTM4NDM0ODI4MzMzMDU4IiwiZXhwIjoxNjM0NjI0NjE5LCJuYmYiOjE2MzQwMTk4MTl9.GL9idS-BWGVbZG8RdmwM1sATKJr9FC6Z4x64xZoZf0E421iL_IkGy2iflLWToTmeLqMzBJ-bjN34yCgban-7M4dY5HuEMvWbxgP5sAiXTuS9z1UDkbry8gvs6zrcVUreb9H5ciroNJOh20yoCzfnfXZVl9M7w5acCkl9UmdtX0c"]; [[EZSDK sharedInstance] setRequestHttpsHostAndPlatform:@"https://test-gz.hdlcontrol.com" platform:1 homeId:@"1396717478877241345"]; Demo/EZOpensdk_iOS_4.15.1_build20201104/DynamicSDK/EZOpenSDKFramework.framework/EZOpenSDKFrameworkBinary files differ
Demo/EZOpensdk_iOS_4.15.1_build20201104/DynamicSDK/EZOpenSDKFramework.framework/Headers/EZAlarmInfo.h
@@ -26,7 +26,19 @@ /// åè¦ç±»å @property (nonatomic) NSInteger alarmType; /// æ¯å¦å å¯ @property (nonatomic) BOOL isEncrypt; //@property (nonatomic) BOOL isEncrypt; /// åè¦å¾çå å¯ä¿¡æ¯ crypt 0-ä¸ç¡®å® 1-设å¤å å¯ 2-å¹³å°å å¯ /// 妿æ¯2ï¼è¡¨ææ¯å¹³å°å å¯çå¾çï¼è¯·ä½¿ç¨ä¸é¢çchecksumä½ä¸ºè§£å¯ç§é¥è§£å¯å¾ç /// 妿æ¯1ï¼è¡¨ææ¯è®¾å¤å å¯çå¾çï¼è¯·ä½¿ç¨è®¾å¤çéªè¯ç ä½ä¸ºè§£å¯ç§é¥è§£å¯å¾ç /// 妿æ¯0ï¼è¡¨ææªç¥çå å¯ä¿¡æ¯ï¼è¯·éè¿ä¸é¢æ¥è¦å¾çURLï¼alarmPicUrlï¼ä¸ç isEncrypted åæ®µï¼å¤æå¾çæ¯ 0ï¼æªå å¯ 1ï¼è®¾å¤å å¯ /// æ¥è¦å¾ççURL示ä¾ï¼ /// https://whpic.ys7.com:8009/HIK_1447836214_458BEBDAE4AB6a6f_525400286893421023815?isEncrypted=1&isCloudStored=0 /// https://www.ys7.com:9090/api/cloud?method=download&fid=5ed92258-8e0f-11e5-8000-c19249a52dcf&deviceSerialNo=504242549&isEncrypted=0&isCloudStored=1 @property (nonatomic) NSInteger crypt; /// åè¦å¾çå¹³å°å 坿¶çå¯é¥ @property (nonatomic, copy) NSString *checksum; /// æ¯å¦å·²è¯» @property (nonatomic) BOOL isRead; /// åå¨ç±»åï¼0-æ åå¨ï¼1-è¤ç³ï¼2-ç¾åº¦ï¼4-sdå¡åå¨ï¼5-è¤ç³åsdå¡ï¼6-ç¾åº¦åsdå¡ Demo/EZOpensdk_iOS_4.15.1_build20201104/DynamicSDK/EZOpenSDKFramework.framework/Headers/EZConstants.h
@@ -143,9 +143,9 @@ /* WiFié 置设å¤ç¶æ */ typedef NS_ENUM(NSInteger, EZWifiConfigStatus) { DEVICE_WIFI_CONNECTING = 1, //è®¾å¤æ£å¨è¿æ¥WiFi DEVICE_WIFI_CONNECTED = 2, //设å¤è¿æ¥WiFiæå DEVICE_WIFI_CONNECTED = 2, //设å¤è¿æ¥WiFiæå (å·²åºå¼ v4.16.0) DEVICE_PLATFORM_REGISTED = 3, //è®¾å¤æ³¨å平尿å DEVICE_ACCOUNT_BINDED = 4 //设å¤å·²ç»ç»å®è´¦æ· DEVICE_ACCOUNT_BINDED = 4 //设å¤å·²ç»ç»å®è´¦æ· (å·²åºå¼ v4.16.0) }; /* 设å¤ptzå½ä»¤ */ Demo/EZOpensdk_iOS_4.15.1_build20201104/DynamicSDK/EZOpenSDKFramework.framework/Headers/EZDeviceInfo.h
@@ -35,7 +35,7 @@ @property (nonatomic) BOOL isEncrypt; /// 设å¤ç¶æï¼1-å¨çº¿ï¼2-ä¸å¨çº¿ @property (nonatomic) NSInteger status; /// æ¯å¦æ¯æå¯¹è®² 0-䏿¯æå¯¹è®²ï¼1-æ¯æå ¨å工对讲ï¼3-æ¯æåå工对讲 /// æ¯å¦æ¯æå¯¹è®² 0-䏿¯æå¯¹è®²ï¼1-æ¯æå ¨å工对讲ï¼3-æ¯æåå工对讲ï¼4-åæ¶æ¯æå ¨åå·¥åååå·¥ @property (nonatomic) NSInteger isSupportTalk; /// æ¯å¦æ¯æäºå°æ§å¶ @property (nonatomic) BOOL isSupportPTZ; @@ -47,6 +47,8 @@ @property (nonatomic) BOOL isSupportMirrorCenter; /// æ¯å¦æ¯æå£°æ³¢é ç½ @property (nonatomic) BOOL isSupportSoundWave; /// æ¯å¦æ¯æåæ°åæ¾ @property (nonatomic) BOOL isSupportPlaybackRate; /// 设å¤å¤§ç±» @property (nonatomic,copy) NSString *category; /// æ·»å æ¶é´ Demo/EZOpensdk_iOS_4.15.1_build20201104/DynamicSDK/EZOpenSDKFramework.framework/Headers/EZGlobalSDK.h
@@ -248,6 +248,12 @@ + (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode; /// åè¦å¾çè§£å¯æ¹æ³ /// @param data éè¦è§£å¯çæ°æ® /// @param verifyCode 设å¤éªè¯ç æ å¹³å°è¿åçchecksum /// @param type 1:设å¤å å¯ï¼2ï¼å¹³å°å å¯ + (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode encryptType:(NSInteger)type; #pragma mark - V3.2 æ°å¢å æ¥å£ /** Demo/EZOpensdk_iOS_4.15.1_build20201104/DynamicSDK/EZOpenSDKFramework.framework/Headers/EZOpenSDK.h
@@ -231,7 +231,12 @@ */ + (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode; /// @since 4.16.8 /// åè¦å¾çè§£å¯æ¹æ³ /// @param data éè¦è§£å¯çæ°æ® /// @param verifyCode 设å¤éªè¯ç æ å¹³å°è¿åçchecksum /// @param type 1:设å¤å å¯ï¼2ï¼å¹³å°å å¯ + (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode encryptType:(NSInteger)type; #pragma mark - V3.2 æ°å¢å æ¥å£ /** @@ -814,4 +819,22 @@ platFormId:(NSString *)platFormId completion:(void (^)(id records, NSError *error))completion; #pragma mark - v4.16 夿¹é³è§é¢ /// å建ä¼è®®ä¿¡æ¯ /// @param password èªå®ä¹å¯ç /// @param customId å¼åè èªå®ä¹ç¨æ·ID /// @param limit éå¶æå¤§äººæ° æå¤§100 /// @param completion operation + (void)requestCallingMeetingInfo:(NSString *)password customId:(NSInteger)customId limit:(NSInteger)limit completion:(void (^)(int32_t roomId, NSString *vtmAddress ,NSString *clientid ,NSInteger customId,NSString *controlServerAddress, NSError *error))completion; /// å å ¥æ¹è·åä¼è®®ä¿¡æ¯ /// @param roomId æ¿é´å· /// @param customId å¼åè èªå®ä¹ç¨æ·ID /// @param completion operation + (void)requestCalledMeetingInfo:(NSString *)roomId customId:(NSInteger)customId completion:(void (^)(int32_t roomId, NSString *vtmAddress,NSString *clientid ,NSInteger customId, NSString *controlServerAddress,NSError *error))completion; @end Demo/EZOpensdk_iOS_4.15.1_build20201104/DynamicSDK/EZOpenSDKFramework.framework/Headers/EZOpenSDKFramework.h
@@ -30,5 +30,5 @@ #include <EZOpenSDKFramework/EZStorageInfo.h> #include <EZOpenSDKFramework/EZUserInfo.h> #include <EZOpenSDKFramework/EZVideoQualityInfo.h> #include <EZOpenSDKFramework/EZVideoTransformer.h> Demo/EZOpensdk_iOS_4.15.1_build20201104/DynamicSDK/EZOpenSDKFramework.framework/Headers/EZPlayer.h
@@ -95,6 +95,19 @@ */ - (void)player:(EZPlayer *)player didReceivedDisplayHeight:(NSInteger)height displayWidth:(NSInteger)width; /** ææ¾è¿ç¨ä¸ åè°è§£ç æ°æ® éè¦ï¼è¯¥åè°ä¼æ¯è¾é¢ç¹(ä¸ç§è¥å¹²æ¬¡)ï¼åæ¶ç´æ¥ç±ææ¾åºçº¿ç¨åè°ä¸æ¥ï¼è¯·å¿å¨æ¹æ³ä¸åèæ¶æä½ éè¦ï¼åè°çæ°æ®çå åæ¯ç±ææ¾åºå é¨åé 并管ççï¼å¨ä½¿ç¨æ¶ï¼è¯·åæ¥å¤çåè°çdataï¼å¦é弿¥å¤çï¼è¯·æ·è´è¯¥æ°æ® @param player ææ¾å¨å¯¹è±¡ @param data ææ¾åºè§£ç åºçæ°æ® @param width è§é¢å®½åº¦ @param height è§é¢é«åº¦ */ - (void)player:(EZPlayer *)player didDecodedData:(NSData *)data width:(NSInteger)width height:(NSInteger)height; @end /// æ¤ç±»ä¸ºè¤ç³ææ¾å¨ç±» @@ -241,6 +254,13 @@ - (BOOL)startVoiceTalk; /** * å¼å§TTS对讲ï¼å¼æ¥æ¥å£ï¼è¿åå¼åªæ¯è¡¨ç¤ºæä½æåï¼ä¸ä»£è¡¨ææ¾æå * é对äºNVRå¯¹è®²ä½¿ç¨ * @return YES/NO */ - (BOOL)startVoiceTalkNeedVoiceChannel:(BOOL)needVoiceChannel; /** * å¼å§Qos对讲ï¼å¼æ¥æ¥å£ï¼è¿åå¼åªæ¯è¡¨ç¤ºæä½æåï¼ä¸ä»£è¡¨ææ¾æå * * @return YES/NO Demo/EZOpensdk_iOS_4.15.1_build20201104/DynamicSDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkParam.h
File was deleted Demo/EZOpensdk_iOS_4.15.1_build20201104/DynamicSDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkSDK.h
@@ -7,112 +7,89 @@ // #import <UIKit/UIKit.h> #import "EZVideoTalkParam.h" #import "EZBAVParam.h" NS_ASSUME_NONNULL_BEGIN typedef enum : NSUInteger { EZVideoTalkMessageUnkown, EZVideoTalkMessageRoomCreated, //å建æ¿é´æå EZVideoTalkMessagePeerEnteredRoom, //ç®åæªä½¿ç¨ï¼ç¨äºå¤æ¹ EZVideoTalkMessagePeerLeaveRoom, //ç®åæªä½¿ç¨ï¼ç¨äºå¤æ¹ EZVideoTalkMessageStartInputData //龿¥å»ºç«æåï¼å¼å§æ¨æµ } EZVideoTalkMessageType; typedef NS_OPTIONS(NSUInteger, EZVideoTalkCaptureType) { EZVideoTalkCaptureNone = 1 << 0, EZVideoTalkCaptureVideo = 1 << 1, EZVideoTalkCaptureAudio = 1 << 2, }; @class EZVideoTalkSDK; @class EZVideoTalkSDK, EZMediaSessionVideoParam, EZVideoTalkView, EZBAVParam, EZConferenceParam; @protocol EZVideoTalkSDKDelegate<NSObject> - (void)videoTalk:(EZVideoTalkSDK *)client didReceivedError:(int32_t)errorCode; - (void)videoTalk:(id)client didReceivedError:(int32_t)errorCode; /** åè°æ¶æ¯ @param client client @param messageCode æ¶æ¯ç @param msg éä¼ æ¶æ¯ @param messageCode æ¶æ¯ç åè§EZBAVMessage @param msg éä¼ æ¶æ¯ï¼ 妿æ¯EZVideoTalkMessagePeerEnteredRoomåEZVideoTalkMessagePeerLeaveRoomæ¶æ¯ï¼msgæ¯{@"clientID":@(9527),@"clientName":@"å¼ ä¸"} å¦ææ¶æ¯æ¯ EZVideoTalkMessageTransferData msgæ¯ msgæ¯{@"content":@"å®é çéä¼ æ¶æ¯"} */ - (void)videoTalk:(EZVideoTalkSDK *)client didReceivedMessage:(EZVideoTalkMessageType)messageType msg:(NSString*)msg; /** åè°æ¶æ¯ bavclient logåè° @param client client @param msg éä¼ æ¶æ¯ */ - (void)videoTalk:(EZVideoTalkSDK *)client didReceivedBavClientLogMsg:(NSString*)msg; /** æ¾ç¤ºåè°ï¼é¦æ¬¡ç»é¢åºæ¥ä»¥ååç»ç»é¢å°ºå¯¸åçååæ¶åè° @param client client @param width ç»é¢å®½åº¦ @param height ç»é¢é«åº¦ */ - (void)videoTalk:(EZVideoTalkSDK *)clientt didDisplayWidth:(int32_t)width height:(int32_t)height; /** ææ¾å¡é¡¿ @param client client @param delayTime å¡é¡¿æ¶é´ */ - (void)videoTalk:(EZVideoTalkSDK *)client playDelayTime:(int32_t)delayTime; /** ææ¾å¡é¡¿ç»è®¡ @param client client @param delayTimeStat å¡é¡¿æ¶é´ */ - (void)videoTalk:(EZVideoTalkSDK *)client playDelayTimeStatistics:(double)delayTimeStat; - (void)videoTalk:(id)client didReceivedMessage:(int32_t)messageCode msg:(id)msg; @end @interface EZVideoTalkSDK : NSObject @property (nonatomic, assign, readonly) int32_t roomID; @property (nonatomic, weak) id<EZVideoTalkSDKDelegate> delegate; #pragma mark - SDK /** SDKåå§å @param param å¿ å¡« é ç½®åæ° @param localWin æ¬å°çªå£ @param remoteWin è¿ç«¯çªå£ @return è¿åå¼ */ - (instancetype)initWithParam:(EZVideoTalkParam *)param localWindow:(UIView *)localWin remoteWindow:(UIView *)remoteWin; /// å å ¥çæ¿é´å· - (int32_t)roomID; /** å¼å§ååé³è§é¢å¯¹è®²ï¼èæ¶æ¥å£ï¼é»è®¤ EZVideoTalkCaptureVideo | EZVideoTalkCaptureAudio åæ¶å¼å¯ 对讲æ¶ï¼å¼ºå¶éç¨æ¬å£°å¨ææ¾å£°é³ï¼é»è®¤ä¸ºYES */ - (void)start; @property (nonatomic, assign) BOOL forceToSpeaker; /** å¼å§ååé³è§é¢å¯¹è®²ï¼èæ¶æ¥å£ */ - (void)startWithType:(EZVideoTalkCaptureType)type; /** 忢ååé³è§é¢å¯¹è®² */ - (void)stop; /// åå§åè§é¢éè¯SDK对象 /// @param videoParam è§é¢éè¯ä¸è§é¢çåæ° - (instancetype)initWithVideoParam:(EZMediaSessionVideoParam *)videoParam; /// å¼å¯å£°é³ï¼æ¥æ¶å°EZVideoTalkMessageStartInputDataæ¶æ¯åè°ç¨ /// @param open å¼å ³ç¶æ - (int32_t) openSound:(BOOL)open; /// 设置æ¬å°çé¢è§çªå£ /// @param localWin çªå£window - (void)setLocalWindow:(EZVideoTalkView *)localWin; /// æ¬å°æå头å¼å¯/å ³éæ¥å£ /// @param enable æ¯å¦å¼å¯æå头 - (NSInteger)enableVideoCapture:(BOOL)enable; /// æ¬å°éº¦å é£å¼å¯/å ³éæ¥å£ /// @param enable æ¯å¦å¼å¯éº¦å é£ - (NSInteger)enableAudioCatpure:(BOOL)enable; /// æ¯å¦å¼å¯å±å¹å ±äº« /// @param enable æ¯å¦å¼å¯ - (NSInteger)enableScreenShare:(BOOL)enable withName:(NSString *)name; /// åèµ·ååé³è§é¢å¯¹è®²ï¼èæ¶æ¥å£ï¼æåè¿å noErrï¼å¤±è´¥è¿åé误ç /// @param param EZBAVParam - (int32_t)startWithParam:(EZBAVParam *)param; /// 设置è¿ç¨çªå£ï¼.å¦æè®¾ç½®é空对象viewï¼å¿ é¡»å¨ä¸»çº¿ç¨è°ç¨ï¼å¦ææ¯è®¾ç½®ænilï¼å¯ä»¥ä¸å¨ä¸»çº¿ç¨è°ç¨ï¼ /// @param window ææ¾çªå£ - (int32_t)setRemoteWindow:(UIView *)window; /// 忢ååé³è§é¢å¯¹è®²ï¼æåè¿å noErrï¼å¤±è´¥è¿åé误ç - (int32_t)stop; /// åæ¢å¯¹è®²æ¶ä½¿ç¨çæå头ï¼é»è®¤éç¨åç½® 忥æ¥å£ /// @param backCameraSelected YES:éæ©åç½®ï¼NO:éæ©åç½® - (int32_t)switchCamera:(BOOL)backCameraSelected; /// å¼å ³è¿ç¨å£°é³ï¼é»è®¤å¼ /// @param open å¼å¯ - (int32_t)enableRemoteSound:(BOOL)open; #pragma mark - æ¥å¿è°è¯ /** @@ -139,4 +116,142 @@ @end @interface EZConfOpenSDK : NSObject @property (nonatomic, weak) id<EZVideoTalkSDKDelegate> delegate; /// å å ¥çæ¿é´å· - (int32_t)roomID; /// èªå·±çclientID - (int32_t)clientID; /** 对讲æ¶ï¼å¼ºå¶éç¨æ¬å£°å¨ææ¾å£°é³ï¼é»è®¤ä¸ºYES */ @property (nonatomic, assign) BOOL forceToSpeaker; /// åå§åè§é¢éè¯SDK对象 /// @param videoParam è§é¢éè¯ä¸è§é¢çåæ° - (instancetype)initWithVideoParam:(EZMediaSessionVideoParam *)videoParam; /// å å ¥ä¼è®®ï¼æ°æ¥å£ï¼ /// @param roomId æ¿é´å· /// @param password å¯ç /// @param customId èªå®ä¹çcustomid - (void)enterRoom:(int32_t)roomId withPassword:(NSString *)password withCustomId:(NSString *)customId; /// éåºä¼è®® - (int32_t)leaveRoom; /// è§£æ£ä¼è®®ï¼è§£æ£åï¼å ¶ä»ä¸ä¼è 伿¶å°ä¼è®®è¢«è§£æ£æ¶æ¯ - (void)dissolveRoom; /// æ¬å°æå头å¼å¯/å ³éæ¥å£. /// @param enable æ¯å¦å¼å¯æå头 - (NSInteger)enableVideoCapture:(BOOL)enable; /// æ¬å°éº¦å é£å¼å¯/å ³éæ¥å£ /// @param enable æ¯å¦å¼å¯éº¦å é£ /// @param block 主线ç¨åè°ç»æ - (void)enableAudioCatpure:(BOOL)enable withResultBlock:(EZAudioOpenResultBlock)block; /// æ¯å¦å¼å¯è¾ æµï¼è¾ æµåè¾¨çæ´ä½ãç çæ´å° /// @param enable æ¯å¦å¼å¯ - (NSInteger)enableThumbnailCatpure:(BOOL)enable; /// æ¯å¦å¼å¯å±å¹å ±äº« /// @param enable æ¯å¦å¼å¯ /// @param name å¯éçå享çåç§° /// @param block 主线ç¨åè°ç»æ - (void)enableScreenShare:(BOOL)enable andName:(NSString *)name withResultBlock:(EZScreenShareResultBlock)block; /// 设置æ¬å°çé¢è§çªå£ /// @param localWin çªå£window - (void)setLocalWindow:(EZVideoTalkView *)localWin; /// 设置è¿ç¨çªå£ï¼1.å¿ é¡»å¨æ¿å°è¿ç«¯å®¢æ·ç«¯å å ¥çæ¶æ¯å设置ï¼2.å¦æè®¾ç½®é空对象viewï¼å¿ é¡»å¨ä¸»çº¿ç¨è°ç¨ /// @param window ææ¾çªå£ /// @param clientID å å ¥ç客æ·ç«¯çID /// @param streamType 1è§é¢ 2é³é¢ 4å°æµ - (int32_t)setRemoteWindow:(UIView *)window ofClient:(int32_t)clientID withStream:(NSInteger)streamType; /// 设置è§çå±å¹å ±äº«ççªå£ /// @param window çªå£ - (int32_t)setWindowForScreenShare:(UIView *)window; /// åæ¢å¯¹è®²æ¶ä½¿ç¨çæå头ï¼é»è®¤éç¨åç½® 忥æ¥å£ /// @param backCameraSelected YES:éæ©åç½®ï¼NO:éæ©åç½® - (int32_t)switchCamera:(BOOL)backCameraSelected; #pragma mark - å½å¶ç¸å ³æ¥å£ /// å¼å§æ¿é´è§é¢ä¼è®®å½å¶ /// @param roomId æ¿é´å· /// @param customId å¼åè èªå®ä¹ç¨æ·ID /// @param recUsers éè¦å½å¶çæ¿é´åä¸è id /// @param projectId äºåå¨é¡¹ç®ID /// @param fileId äºå卿件å /// @param completion operation + (void)requestStartRecordRoomId:(NSString *)roomId customId:(NSInteger)customId recUsers:(NSArray *)recUsers projectId:(NSString *)projectId fileId:(NSString *)fileId completion:(void (^)(bool success, NSError *error))completion; /// 忢æ¿é´è§é¢ä¼è®®å½å¶ /// @param roomId æ¿é´å· /// @param customId å¼åè èªå®ä¹ç¨æ·ID /// @param completion operation + (void)requestStopRecordRoomId:(NSString *)roomId customId:(NSInteger)customId completion:(void (^)(bool success, NSError *error))completion; /// è·åæä»¶ä¸è½½å°å /// @param projectId 项ç®ID /// @param fileId æä»¶ID /// @param completion operation + (void)requestGetRecordFileProjectId:(NSString *)projectId fileId:(NSString *)fileId completion:(void (^)(id responseObject, NSError *error))completion; /// æ°å»ºé¡¹ç®æ¥å£ /// @param projectId 项ç®ID /// @param projectName 项ç®åç§° /// @param expireDays 项ç®åå¨å¯¹è±¡è¿æå¤©æ° é»è®¤æ°¸ä¸è¿æ /// @param completion operation + (void)requestCreateProjectId:(NSString *)projectId projectName:(NSString *)projectName expireDays:(NSInteger )expireDays completion:(void (^)(bool success, NSError *error))completion; #pragma mark - 4.16.3 æ°ç伿§æ¥å£ /// é¢è®¢ä¼è®®æ¥å£ /// @param customId 主æäººç¨æ·idï¼å¼åè èªå®ä¹çç¨æ·idï¼ /// @param password æ¿é´å¯ç ï¼è¥ä¸ä¼ æä¸ºç©ºå认为æ¿é´å ¬å¼ãæ å¯ç ï¼ /// @param limit æ¿é´äººæ°éå¶ï¼<100ï¼ä¸ä¼ åé»è®¤100ï¼ /// @param beginTime æ¯«ç§æ¶é´æ³ï¼ä¼è®®é¢è®¡å¼å§æ¶é´ï¼>=å½åæ¶é´ï¼ /// @param endTime æ¯«ç§æ¶é´æ³ï¼ä¼è®®é¢è®¡ç»ææ¶é´ï¼>beginTimeä¸<ä¸å¤©åçæ¶é´æ³ï¼ /// @param completion completion + (NSURLSessionDataTask *)orderMeetingWithCustomId:(NSString *)customId password:(NSString *)password limit:(NSInteger)limit beginTime:(long)beginTime endTime:(long)endTime completion:(void (^)(int32_t roomId, NSInteger limit, NSError *error))completion; @end NS_ASSUME_NONNULL_END Demo/EZOpensdk_iOS_4.15.1_build20201104/DynamicSDK/EZOpenSDKFramework.framework/Info.plistBinary files differ
Demo/EZOpensdk_iOS_4.15.1_build20201104/README(¼¯³É±Ø¶Á).txt
New file @@ -0,0 +1,30 @@ ############## Chinese ############## ### ç®å½ - EZOpenDynamicSDKï¼å¨æåºSDKã - EZOpenSDK:éæåºSDKï¼ä¸è¬å¼åè ä½¿ç¨æ¤SDKå³å¯ã - EZOpenSDKDemoï¼ç¤ºä¾ä»£ç å·¥ç¨ï¼æå¼å·¥ç¨åè®°å¾å°EZOpenSDKæå ¥å¯¹åºä½ç½®ã - README.textï¼éæå¿ è¯»ææ¡£ï¼ä¸äºè¯´æå注æäºé¡¹ã - ReleaseNotes.textï¼åå¸è¯´æã ### 注æäºé¡¹ 1.å¦ä½¿ç¨æµ·å¤çæ¬Demoï¼è¯·å°PrefixHeader.pchæä»¶ä¸å®å®ä¹è®¾ç½®ä¸º1ã 2.请å¡å¿ æç §å®ç½çéææ¥éª¤æ¥éæãå¾å¤å¼åè åé¦éæç¼è¯ä¸éè¿æè ç¨åºå´©æºï¼é½æ¯å 为æªçææ¡£æè 䏿æ¥éª¤æä½å¯¼è´çã 3.éæSDKæ¶ï¼è¯·ç¡®ä¿com.hri.hpc.mobile.ios.player.metallibåopensslåº èµæºæä»¶å·²ç»å å ¥å°ä½ ç XCode 项ç®å·¥ç¨ä¸ï¼å¦åä¼å¯¼è´ç¨åºå´©æºã(opensslçæ¬å·ä¸º1.1.1ï¼å¦æé¡¹ç®ä¸æå ¶ä»çæ¬çopensslæè å ¶ä»ä¸æ¹SDKä¸å ç½®äºå ¶ä»çæ¬çopensslï¼å¯è½ä¼å¨ä½¿ç¨æäºåè½çæ¶å导è´ç¨åºå´©æºï¼è¯·å好opensslåºçéé ï¼æè è°¨æ å级EZOpenSDKã卿åºä¸å·²ç»å ç½®opensslã) 4.ä¼å åç §EZOpenSDKDemoä¸çåè½ä»£ç ï¼å®ç½ä¸çä»£ç æ´æ°å¯è½æå»¶è¿æç¼ºå¤±ã ############## English ############## ### Catalogue - EZOpenDynamicSDK:Dynamic SDK. - EZOpenSDK:Static library, general developers can use this SDK. - EZOpenSDKDemo:Sample code project. After opening the project, remember to drag the EZOpenSDK to the corresponding location. - README.text:Integration required document, some descriptions and precautions. - ReleaseNotes.text:Release notes. ### Descriptions and precautions 1.If you are using an overseas version demo, please set the macro definition in the PrefixHeader.pch file to 1. 2.Please follow the integration steps on the official website. Many developers reported that the integration compilation failed or the program crashed because they did not read the document or did not follow the steps. 3.When integrating the SDK, please ensure that the com.hri.hpc.mobile.ios.player.metallib and OpenSSL library resource file has been added to your Xcode project,, otherwise the program will crash.(The OpenSSL version number is 1.1.1. If there are other versions of OpenSSL in the project or other versions of OpenSSL are built in other third-party SDKs, the program may crash when using some functions. Please adapt the OpenSSL library or carefully upgrade the ezopensdk. OpenSSL is already built in the dynamic library.) 4.The function code in ezopensdkdemo is preferred. The code update in the official website may be delayed or missing. Demo/EZOpensdk_iOS_4.15.1_build20201104/ReleaseNotes.txt
@@ -1,3 +1,32 @@ EZOpenSDK V4.16.8.1 build20211012 for iOS æ´æ°å å®¹ï¼ 1.æ§è½ä¼å EZOpenSDK V4.16.8 build20210823 for iOS æ´æ°å å®¹ï¼ 1.æ¯æå¯¹äºç«¯å 坿¥è¦å¾ççè§£å¯ 2.æ¯æå¤äººä¼è®®ï¼åçï¼ï¼å¾ è¿ä¸æ¥è¡¥å ¨åè½åä¼åæ¥å£ 3.ä¿®å¤é¨åå´©æºé®é¢ 4.ä¿®å¤é¨å设å¤SDå¡å½åæ æ³åæ¾é®é¢ EZOpenSDK V4.16.6 build20210610 for iOS æ´æ°å å®¹ï¼ 1.é¢è§/åæ¾æ¯æå ¨é¾è·¯å å¯ï¼æ´å®å ¨ 2.ä¿®å¤å é¨bugs. EZOpenSDK V4.16.1 build20210330 for iOS æ´æ°å å®¹ï¼ 1.æ¯æNVRå¯¹è®²ï¼ 2.æ¯æè¾¹ç¼è®¾å¤ææ¾ï¼ 3.å ¼å®¹æ°å½æ 设å¤ï¼ EZOpenSDK V4.16.0 build20210128 for iOS æ´æ°å å®¹ï¼ 1.æ¯æä¸æ¹é³è§é¢éè¯ï¼ 2.ä¼åé ç½æµç¨ï¼ 3. ä¿®å¤é¢è§å¶ç°å´©æºé®é¢ EZOpenSDK V4.15.0 build20201019 for iOS æ´æ°å å®¹ï¼ 1.æ¯æQos对讲; @@ -162,4 +191,4 @@ 13.ä¿®æ¹è®¾ç½®å¸æ¤é²æ¥å£setDefenceåç§°ï¼åæ¶ä½¿å ¶å ¼å®¹IPCåéIPC设å¤ç叿¤é²åè½ï¼ 14.ä¿®æ¹éè¦validateCodeåæ°ç¸å ³çæ¥å£å æ¬ï¼addDeviceãdecryptDataãsetDeviceEncryptStatusçï¼ä¿®æ¹validateCodeå称为verifyCodeï¼å¾çè§é¢å è§£å¯æ¥å£ï¼setDeviceEncryptStatusï¼ä½¿ç¨è®¾å¤éªè¯ç æ¿ä»£çä¿¡éªè¯ç ï¼è§£å³çä¿¡éªè¯ç åé太é¢ç¹çé®é¢; 15.æåEZOpenSDKç常éå®ä¹ä¸ºEZConstantsç±»æä»¶ï¼æ´å å®åEZErrorCodeçä¿¡æ¯ï¼ 16.EZAlarmä¸çchannelNoåæ®µæ¹æcameraNoï¼ä½ç»ä¸ã 16.EZAlarmä¸çchannelNoåæ®µæ¹æcameraNoï¼ä½ç»ä¸ã Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/com.hri.hpc.mobile.ios.player.metallibBinary files differ
Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/EZConstants.h
@@ -143,9 +143,9 @@ /* WiFié 置设å¤ç¶æ */ typedef NS_ENUM(NSInteger, EZWifiConfigStatus) { DEVICE_WIFI_CONNECTING = 1, //è®¾å¤æ£å¨è¿æ¥WiFi DEVICE_WIFI_CONNECTED = 2, //设å¤è¿æ¥WiFiæå DEVICE_WIFI_CONNECTED = 2, //设å¤è¿æ¥WiFiæå (å·²åºå¼ v4.16.0) DEVICE_PLATFORM_REGISTED = 3, //è®¾å¤æ³¨å平尿å DEVICE_ACCOUNT_BINDED = 4 //设å¤å·²ç»ç»å®è´¦æ· DEVICE_ACCOUNT_BINDED = 4 //设å¤å·²ç»ç»å®è´¦æ· (å·²åºå¼ v4.16.0) }; /* 设å¤ptzå½ä»¤ */ Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/EZGlobalSDK.h
@@ -248,6 +248,12 @@ + (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode; /// åè¦å¾çè§£å¯æ¹æ³ /// @param data éè¦è§£å¯çæ°æ® /// @param verifyCode 设å¤éªè¯ç æ å¹³å°è¿åçchecksum /// @param type 1:设å¤å å¯ï¼2ï¼å¹³å°å å¯ + (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode encryptType:(NSInteger)type; #pragma mark - V3.2 æ°å¢å æ¥å£ /** Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/EZOpenSDK.h
@@ -231,7 +231,12 @@ */ + (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode; /// @since 4.16.8 /// åè¦å¾çè§£å¯æ¹æ³ /// @param data éè¦è§£å¯çæ°æ® /// @param verifyCode 设å¤éªè¯ç æ å¹³å°è¿åçchecksum /// @param type 1:设å¤å å¯ï¼2ï¼å¹³å°å å¯ + (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode encryptType:(NSInteger)type; #pragma mark - V3.2 æ°å¢å æ¥å£ /** @@ -814,4 +819,22 @@ platFormId:(NSString *)platFormId completion:(void (^)(id records, NSError *error))completion; #pragma mark - v4.16 夿¹é³è§é¢ /// å建ä¼è®®ä¿¡æ¯ /// @param password èªå®ä¹å¯ç /// @param customId å¼åè èªå®ä¹ç¨æ·ID /// @param limit éå¶æå¤§äººæ° æå¤§100 /// @param completion operation + (void)requestCallingMeetingInfo:(NSString *)password customId:(NSInteger)customId limit:(NSInteger)limit completion:(void (^)(int32_t roomId, NSString *vtmAddress ,NSString *clientid ,NSInteger customId,NSString *controlServerAddress, NSError *error))completion; /// å å ¥æ¹è·åä¼è®®ä¿¡æ¯ /// @param roomId æ¿é´å· /// @param customId å¼åè èªå®ä¹ç¨æ·ID /// @param completion operation + (void)requestCalledMeetingInfo:(NSString *)roomId customId:(NSInteger)customId completion:(void (^)(int32_t roomId, NSString *vtmAddress,NSString *clientid ,NSInteger customId, NSString *controlServerAddress,NSError *error))completion; @end Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/EZPlayer.h
@@ -95,6 +95,19 @@ */ - (void)player:(EZPlayer *)player didReceivedDisplayHeight:(NSInteger)height displayWidth:(NSInteger)width; /** ææ¾è¿ç¨ä¸ åè°è§£ç æ°æ® éè¦ï¼è¯¥åè°ä¼æ¯è¾é¢ç¹(ä¸ç§è¥å¹²æ¬¡)ï¼åæ¶ç´æ¥ç±ææ¾åºçº¿ç¨åè°ä¸æ¥ï¼è¯·å¿å¨æ¹æ³ä¸åèæ¶æä½ éè¦ï¼åè°çæ°æ®çå åæ¯ç±ææ¾åºå é¨åé 并管ççï¼å¨ä½¿ç¨æ¶ï¼è¯·åæ¥å¤çåè°çdataï¼å¦é弿¥å¤çï¼è¯·æ·è´è¯¥æ°æ® @param player ææ¾å¨å¯¹è±¡ @param data ææ¾åºè§£ç åºçæ°æ® @param width è§é¢å®½åº¦ @param height è§é¢é«åº¦ */ - (void)player:(EZPlayer *)player didDecodedData:(NSData *)data width:(NSInteger)width height:(NSInteger)height; @end /// æ¤ç±»ä¸ºè¤ç³ææ¾å¨ç±» @@ -241,6 +254,13 @@ - (BOOL)startVoiceTalk; /** * å¼å§TTS对讲ï¼å¼æ¥æ¥å£ï¼è¿åå¼åªæ¯è¡¨ç¤ºæä½æåï¼ä¸ä»£è¡¨ææ¾æå * é对äºNVRå¯¹è®²ä½¿ç¨ * @return YES/NO */ - (BOOL)startVoiceTalkNeedVoiceChannel:(BOOL)needVoiceChannel; /** * å¼å§Qos对讲ï¼å¼æ¥æ¥å£ï¼è¿åå¼åªæ¯è¡¨ç¤ºæä½æåï¼ä¸ä»£è¡¨ææ¾æå * * @return YES/NO Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/modules/EZAlarmInfo.h
@@ -26,7 +26,19 @@ /// åè¦ç±»å @property (nonatomic) NSInteger alarmType; /// æ¯å¦å å¯ @property (nonatomic) BOOL isEncrypt; //@property (nonatomic) BOOL isEncrypt; /// åè¦å¾çå å¯ä¿¡æ¯ crypt 0-ä¸ç¡®å® 1-设å¤å å¯ 2-å¹³å°å å¯ /// 妿æ¯2ï¼è¡¨ææ¯å¹³å°å å¯çå¾çï¼è¯·ä½¿ç¨ä¸é¢çchecksumä½ä¸ºè§£å¯ç§é¥è§£å¯å¾ç /// 妿æ¯1ï¼è¡¨ææ¯è®¾å¤å å¯çå¾çï¼è¯·ä½¿ç¨è®¾å¤çéªè¯ç ä½ä¸ºè§£å¯ç§é¥è§£å¯å¾ç /// 妿æ¯0ï¼è¡¨ææªç¥çå å¯ä¿¡æ¯ï¼è¯·éè¿ä¸é¢æ¥è¦å¾çURLï¼alarmPicUrlï¼ä¸ç isEncrypted åæ®µï¼å¤æå¾çæ¯ 0ï¼æªå å¯ 1ï¼è®¾å¤å å¯ /// æ¥è¦å¾ççURL示ä¾ï¼ /// https://whpic.ys7.com:8009/HIK_1447836214_458BEBDAE4AB6a6f_525400286893421023815?isEncrypted=1&isCloudStored=0 /// https://www.ys7.com:9090/api/cloud?method=download&fid=5ed92258-8e0f-11e5-8000-c19249a52dcf&deviceSerialNo=504242549&isEncrypted=0&isCloudStored=1 @property (nonatomic) NSInteger crypt; /// åè¦å¾çå¹³å°å 坿¶çå¯é¥ @property (nonatomic, copy) NSString *checksum; /// æ¯å¦å·²è¯» @property (nonatomic) BOOL isRead; /// åå¨ç±»åï¼0-æ åå¨ï¼1-è¤ç³ï¼2-ç¾åº¦ï¼4-sdå¡åå¨ï¼5-è¤ç³åsdå¡ï¼6-ç¾åº¦åsdå¡ Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/modules/EZDeviceInfo.h
@@ -35,7 +35,7 @@ @property (nonatomic) BOOL isEncrypt; /// 设å¤ç¶æï¼1-å¨çº¿ï¼2-ä¸å¨çº¿ @property (nonatomic) NSInteger status; /// æ¯å¦æ¯æå¯¹è®² 0-䏿¯æå¯¹è®²ï¼1-æ¯æå ¨å工对讲ï¼3-æ¯æåå工对讲 /// æ¯å¦æ¯æå¯¹è®² 0-䏿¯æå¯¹è®²ï¼1-æ¯æå ¨å工对讲ï¼3-æ¯æåå工对讲ï¼4-åæ¶æ¯æå ¨åå·¥åååå·¥ @property (nonatomic) NSInteger isSupportTalk; /// æ¯å¦æ¯æäºå°æ§å¶ @property (nonatomic) BOOL isSupportPTZ; @@ -47,6 +47,8 @@ @property (nonatomic) BOOL isSupportMirrorCenter; /// æ¯å¦æ¯æå£°æ³¢é ç½ @property (nonatomic) BOOL isSupportSoundWave; /// æ¯å¦æ¯æåæ°åæ¾ @property (nonatomic) BOOL isSupportPlaybackRate; /// 设å¤å¤§ç±» @property (nonatomic,copy) NSString *category; /// æ·»å æ¶é´ Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/modules/EZVideoTalk/EZBAVParam.h
New file @@ -0,0 +1,143 @@ // // EZBAVParam.h // EZBAVClient // // Created by kanhaiping on 2018/6/27. // Copyright © 2018å¹´ hikvision. All rights reserved. // #import <Foundation/Foundation.h> /* typedef struct SBavDevInfo { YS_INT8 m_szDevSerial[STREAM_DEV_SERIAL_LEN + 1]; //å¿ å¡« 设å¤åºåå· YS_UINT32 m_sChannel; //å¿ å¡« ééå· YS_INT16 m_sDevStreamType; //å¿ å¡« 设å¤ä¸»åç ç±»å YS_INT8 m_szAuthToken[STREAM_TOKEN_LEN + 1]; //å¿ å¡« 认è¯token }SBavDevInfo; */ @interface EZBAVDevInfo : NSObject @property (nonatomic, strong) NSString *serial; /**< å¿ å¡« 设å¤åºåå· */ @property (nonatomic, assign) int32_t m_iChannel;//å¿ å¡« ééå· @property (nonatomic, assign) int32_t m_iDevStreamType;//å¿ å¡« 设å¤ä¸»åç ç±»å @property (nonatomic, strong) NSString *m_szAuthToken; /**< å¿ å¡« 认è¯token */ @end /* typedef struct { YS_UINT32 m_iRoomId; //å¿ å¡« éè¦å å ¥æ¿é´å· YS_UINT32 m_uClientId; //å¿ å¡« å å ¥æ¹clientId YS_INT8 m_szCustomId[CUSTOMID_LEN + 1]; //éæ© å å ¥æ¹èªå®ä¹Id YS_INT8 m_szPassword[STREAM_TOKEN_LEN + 1]; //å¿ å¡« æ¿é´å¯ç YS_UINT8 m_iCltType; //å¿ å¡« 客æ·ç«¯ç±»å YS_UINT16 m_iStsPort; //å¿ å¡« 转åæå¡ç«¯å£ YS_INT8 m_szStsAddr[CLIENT_STREAM_SVR_ADDR_LEN + 1]; //å¿ å¡« 转åæå¡å°å YS_UINT16 m_iVcPort; //å¿ å¡« 伿§æå¡ç«¯å£ YS_INT8 m_szVcAddr[CLIENT_STREAM_SVR_ADDR_LEN + 1]; //å¿ å¡« 伿§æå¡å°å YS_INT8 m_szFilePath[FLIEPATH + 1]; //éæ© åæä»¶çè·¯å¾ YS_INT8 m_szExtensionParas[CLIENT_STREAM_EXTENSION_LEN + 1]; //éæ© æ©å±åæ®µä¿¡æ¯ }EZConferenceParam; */ @interface EZConferenceParam : NSObject @property (nonatomic, assign) int32_t m_iRoomId; /**<å¿ å¡« éè¦å å ¥æ¿é´å· */ @property (nonatomic, assign) int32_t m_uClientId; /**< å¿ å¡« å å ¥æ¹clientId */ @property (nonatomic, strong) NSString *m_szCustomId; /**< éæ© å å ¥æ¹èªå®ä¹Id */ @property (nonatomic, strong) NSString *m_szPassword; /**< éæ© æ¿é´å¯ç */ @property (nonatomic, assign) int32_t m_iCltType; /**< å¿ å¡« 客æ·ç«¯ç±»å */ @property (nonatomic, strong) NSString *m_szVcAddr;//å¿ å¡« è§é¢ä¼è®®å¿ å¡« 伿§æå¡å°å @property (nonatomic, assign) int32_t m_iVcPort;//å¿ å¡« è§é¢ä¼è®®å¿ å¡« 伿§æå¡ç«¯kå£ @property (nonatomic, strong) NSString *m_szStsAddr; /**< å¿ å¡« 转åæå¡å°å */ @property (nonatomic, assign) int32_t m_iStsPort; /**< å¿ å¡« 转åæå¡ç«¯å£ */ @property (nonatomic, strong) NSString *m_szExtensionParas; /**< éæ© æ©å±åæ®µä¿¡æ¯ */ @end @interface EZBAVParam : NSObject @property (nonatomic, assign) int32_t m_iCltRole; /**< å¿ å¡« 0 åèµ· 1 æ¥å å起端填å0 æ¥å端填å1 æç»ä¸º2 */ @property (nonatomic, assign) int32_t m_iStreamType;/**< å¿ é 0 é³è§é¢ 1 对讲 2 ä¼è®®*/ //@property (nonatomic, assign) int32_t m_szIsNpq;/**< éæ© 0 ä¸èµ°NPQï¼èµ°TCP 1 æ¯NPQï¼èµ°UDP */ @property (nonatomic, assign) int32_t m_iCltType; /**< å¿ å¡« 客æ·ç«¯ç±»å */ @property (nonatomic, strong) NSString *m_szVcAddr;//å¿ å¡« è§é¢ä¼è®®å¿ å¡« 伿§æå¡å°å @property (nonatomic, assign) int32_t m_iVcPort;//å¿ å¡« è§é¢ä¼è®®å¿ å¡« 伿§æå¡ç«¯kå£ @property (nonatomic, strong) NSString *m_szStsAddr; /**< å¿ å¡« 转åæå¡å°å */ @property (nonatomic, assign) int32_t m_iStsPort; /**< å¿ å¡« 转åæå¡ç«¯å£ */ @property (nonatomic, assign) int32_t m_iRoomId; /**< éæ© éè¦å å ¥æ¿é´å·ï¼åªææ¥å端éè¦å¡«å */ @property (nonatomic, assign) int32_t m_iClientId; //éå¡« åèµ·orå å ¥è çid @property (nonatomic, strong) NSString *m_szSelfId; /**< å¿ å¡« æ è¯Id */ @property (nonatomic, assign) int32_t m_iReason; /**< éæ© åå ææ¥æ¥å¬101 æ 人æ¥å¬102 */ //@property (nonatomic, assign) int32_t m_iMaxBitrate;/**< å¿ å¡« ç çååèå´çæå¤§å¼ */ // //@property (nonatomic, assign) int32_t m_iMinBitrate;/**< å¿ å¡« ç çååèå´çæå°å¼ */ //@property (nonatomic, assign) int32_t m_iType;/**< éæ© åèBAV_QOS_TYPE */ // //@property (nonatomic, assign) int32_t m_iVideo;/**< éæ© æ¯å¦å¼å¯è§é¢Qos 1 å¼å¯ 0 ä¸å¼å¯ */ // //@property (nonatomic, assign) int32_t m_iAudio;/**< éæ© æ¯å¦å¼å¯é³é¢Qos 1 å¼å¯ 0 ä¸å¼å¯ */ @property (nonatomic, assign) int32_t m_iAuthType; /**< å¿ å¡« è®¤è¯æ¹å¼ */ @property (nonatomic, strong) NSString *m_szAuthToken; /**< å¿ å¡« 认è¯token */ @property (nonatomic, assign) int32_t m_iOtherCltType; /**< éæ© åªæå¯¹ç«¯æ¯æè¡¨ç«¯éå¡«å */ @property (nonatomic, strong) NSString *m_szOterId; /**< éæ© åªæå¯¹ç«¯æ¯æè¡¨ç«¯éå¡«å */ @property (nonatomic, assign) int32_t m_iChannel;//éå¡« 䏿¹é³è§é¢æ¶ï¼IPC设å¤éè¦å¡«å @property (nonatomic, assign) int32_t m_iDevStreamType;//éå¡« 设å¤ä¸»åç æµ @property (nonatomic, strong) NSString *m_szExtensionParas; /**< éæ© æ©å±åæ®µä¿¡æ¯ */ @end /// ä¸ä¼è ä¿¡æ¯ @interface EZBAVParticipantsInfo : NSObject @property (nonatomic, assign) uint32_t m_uRoomId; @property (nonatomic, assign) uint32_t m_uClientId; @property (nonatomic, strong) NSString *m_sCustomId; @property (nonatomic, strong) NSString *m_szUserName; @property (nonatomic, assign) int8_t audioState;// 声é³å¯ç¨ç¶æ 0-å ³é 1-å¯ç¨ @property (nonatomic, assign) int8_t videoState;// è§é¢å¯ç¨ç¶æ 0-å ³é 1-ä¸»æµ 5-䏻念 @property (nonatomic, assign) int8_t shareState;// å±å¹å ±äº«å¯ç¨ç¶æ 0-å ³é 1-å¯ç¨ @property (nonatomic, assign) int8_t netState;//ç½ç»ç¶æ @end @interface EZBAVParticipantVolume : NSObject @property (nonatomic, assign) uint32_t m_uClientId; @property (nonatomic, assign) uint8_t m_sVolume; //é³é强度0-10 10为æå¼º 0为æå¼± @end extern int32_t const EZBAVMessageRoomCreated; extern int32_t const EZBAVMessagePeerEnteredRoom; extern int32_t const EZBAVMessagePeerLeaveRoom; extern int32_t const EZBAVMessageStartInputData; //extern int32_t const EZBAVMessageOtherDisconnect; extern int32_t const EZBAVMessageTransferData; //extern int32_t const EZBAVMessageClientInfo;//å ¶ä»ä¸ä¼å®¢æ·ç«¯ä¿¡æ¯ extern int32_t const EZBAVMessageClientVolume;//å ¶ä»ä¸ä¼å®¢æ·ç«¯é³é extern int32_t const EZBAVMessageClientAudioAvailable; extern int32_t const EZBAVMessageClientVideoAvailable; extern int32_t const EZBAVMessageNetworkQuality; extern int32_t const EZBAVMessageClientShareAvailable; extern int32_t const EZBAVMessageJoinRoomOK; extern int32_t const EZBAVMessageForcedQuit; extern int32_t const EZBAVForcedQuitReasonRepeatJoin;//å·²å¨å ¶ä»å°æ¹å å ¥æ¿é´ extern int32_t const EZBAVForcedQuitReasonMovedOut;//被管çåç§»åºæ¿é´ extern int32_t const EZBAVForcedQuitReasonRoomDissolved;//æ¿é´è§£æ£ typedef void(^EZAudioOpenResultBlock)(NSInteger ret); typedef void(^EZScreenShareResultBlock)(NSInteger ret); Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/modules/EZVideoTalk/EZConferenceClient.h
New file @@ -0,0 +1,201 @@ // // EZBAVClient.h // EZBAVClient // // Created by kanhaiping on 2018/6/26. // Copyright © 2018å¹´ hikvision. All rights reserved. // #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> #import "EZBAVParam.h" #import "EZMediaSessionDefines.h" #import "EZVideoTalkView.h" @class EZConferenceClient; @class EZMediaSessionVideoParam; @protocol EZConferenceClientDelegate<NSObject> /// é误åè° /// @param client client /// @param errorCode åºéçé误ç - (void)bavClient:(EZConferenceClient *)client didReceivedError:(int32_t)errorCode; /** åè°æ¶æ¯ @param client client @param messageCode æ¶æ¯ç åè§EZBAVMessage @param msg éå ä¿¡æ¯ï¼ 妿æ¯EZBAVMessagePeerEnteredRoomï¼msgæ¯EZBAVParticipantsInfo对象ï¼ä½æ¯åªæm_uClientIdãm_szUserNameåæ®µææ 妿æ¯EZBAVMessagePeerLeaveRoomæ¶æ¯ï¼msgæ¯EZBAVParticipantsInfo对象ï¼ä½æ¯åªæm_uClientIdåæ®µææ 妿æ¯EZBAVMessageClientVolumeæ¶æ¯ï¼msgæ¯EZBAVParticipantVolume对象 å¦ææ¶æ¯æ¯ EZBAVMessageTransferData msgæ¯ msgæ¯å符串 @"å®é çéä¼ æ¶æ¯" å¦ææ¶æ¯æ¯EZBAVMessageClientAudioAvailableï¼msgæ¯EZBAVParticipantsInfo对象ï¼ä½æ¯åªæm_uClientIdåaudioStateåæ®µææ å¦ææ¶æ¯æ¯EZBAVMessageClientVideoAvailable ï¼msgæ¯EZBAVParticipantsInfo对象ï¼ä½æ¯åªæm_uClientIdåvideoStateåæ®µææ å¦ææ¶æ¯æ¯EZBAVMessageNetworkQuality ï¼msgæ¯EZBAVParticipantsInfo对象ï¼ä½æ¯åªæm_uClientIdånetStateåæ®µææ å¦ææ¶æ¯æ¯EZBAVMessageJoinRoomOK ï¼msgæ¯nil å¦ææ¶æ¯æ¯EZBAVMessageForcedQuit ï¼msgæ¯NSNumberï¼æ¯å¦@(EZBAVForcedQuitReasonMovedOut) */ - (void)bavClient:(EZConferenceClient *)client didReceivedMessage:(int32_t)messageCode msg:(id)msg; @optional ///** // åè°æ¶æ¯ bavclient logåè° // // @param client client // @param msg éä¼ æ¶æ¯ // */ //- (void)bavClient:(EZVideoTalk *)client didReceivedBavClientLogMsg:(NSString*)msg; /** æ¾ç¤ºåè°ï¼é¦æ¬¡ç»é¢åºæ¥ä»¥ååç»ç»é¢å°ºå¯¸åçååæ¶åè° @param client client @param width ç»é¢å®½åº¦ @param height ç»é¢é«åº¦ */ - (void)bavClient:(EZConferenceClient *)client didDisplayWidth:(int32_t)width height:(int32_t)height ofRemoteClient:(int)clientID; /** ææ¾å¡é¡¿ @param client client @param delayTime å¡é¡¿æ¶é´ */ - (void)bavClient:(EZConferenceClient *)client playDelayTime:(int32_t)delayTime ofRemoteClient:(int)clientID; /** ææ¾å¡é¡¿ç»è®¡ @param client client @param delayTimeStat å¡é¡¿æ¶é´ */ - (void)bavClient:(EZConferenceClient *)client playDelayTimeStatistics:(double)delayTimeStat ofRemoteClient:(int)clientID; @end @interface EZConferenceClient : NSObject @property (nonatomic, weak) id<EZConferenceClientDelegate> delegate; @property (nonatomic, assign, readonly) int32_t roomID; @property (nonatomic, assign, readonly) int32_t clientID; /** 对讲æ¶ï¼å¼ºå¶éç¨æ¬å£°å¨ææ¾å£°é³ï¼é»è®¤ä¸ºYES */ @property (nonatomic, assign) BOOL forceToSpeaker; /// åå§åè§é¢éè¯SDK对象 /// @param videoParam è§é¢éè¯ä¸è§é¢çåæ° - (instancetype)initWithVideoParam:(EZMediaSessionVideoParam *)videoParam; /// å å ¥ä¼è®®ï¼æ°æ¥å£ï¼ /// @param param åæ° - (int32_t)enterRoom:(EZConferenceParam *)param; /// éåºä¼è®® - (int32_t)leaveRoom; /// è§£æ£ä¼è®®ï¼è§£æ£åï¼å ¶ä»ä¸ä¼è 伿¶å°ä¼è®®è¢«è§£æ£æ¶æ¯ - (void)dissolveRoom; /// æ¬å°æå头å¼å¯/å ³éæ¥å£ /// @param enable æ¯å¦å¼å¯æå头 - (NSInteger)enableVideoCapture:(BOOL)enable; /// æ¬å°éº¦å é£å¼å¯/å ³éæ¥å£ /// @param enable æ¯å¦å¼å¯éº¦å é£ /// @param block 主线ç¨åè°ç»æ - (void)enableAudioCatpure:(BOOL)enable withResultBlock:(EZAudioOpenResultBlock)block; /// æ¯å¦å¼å¯è¾ æµï¼è¾ æµåè¾¨çæ´ä½ãç çæ´å° /// @param enable æ¯å¦å¼å¯ - (NSInteger)enableThumbnailCatpure:(BOOL)enable; /// æ¯å¦å¼å¯å±å¹å ±äº« /// @param enable æ¯å¦å¼å¯ /// @param block 主线ç¨åè°ç»æ - (void)enableScreenShare:(BOOL)enable andName:(NSString *)name withResultBlock:(EZScreenShareResultBlock)block; /// 设置æ¬å°çé¢è§çªå£ /// @param localWin çªå£window - (void)setLocalWindow:(EZVideoTalkView *)localWin; /// 订é ä¼åºä¸çæä¸ªç¨æ·çé³è§é¢æµ /// @param clientIDs ä¼åºä¸çç¨æ· /// @param type 1è§é¢ 2é³é¢ 4é³è§é¢ /// @param subOrUnsub YES:订é NO:åæ¶è®¢é //- (int32_t)subscribeStreamOfClients:(NSArray *)clientIDs withStreamType:(NSInteger)type subscribe:(BOOL)subOrUnsub; /// 设置è¿ç¨çªå£ï¼1.å¿ é¡»å¨æ¿å°è¿ç«¯å®¢æ·ç«¯å å ¥çæ¶æ¯å设置ï¼2.å¦æè®¾ç½®é空对象viewï¼å¿ é¡»å¨ä¸»çº¿ç¨è°ç¨ï¼å¦ææ¯è®¾ç½®ænilï¼å¯ä»¥ä¸å¨ä¸»çº¿ç¨è°ç¨ï¼ /// @param window ææ¾çªå£ /// @param clientID å å ¥ç客æ·ç«¯çID /// @param streamType 1è§é¢ 2é³é¢ 4å°æµ - (int32_t)setRemoteWindow:(UIView *)window ofClient:(int32_t)clientID withStream:(NSInteger)streamType; /// 设置è§çå±å¹å ±äº«ççªå£ /// @param window çªå£ - (int32_t)setWindowForScreenShare:(UIView *)window; /// é请设å¤å å ¥ä¼è®® /// @param dev 设å¤ä¿¡æ¯ - (int32_t)inviteDev:(EZBAVDevInfo *)dev; #pragma éå æ¥å£ /// å¼å ³ä¼è®®ä¸æä¸ªä¸ä¼è ç声é³ï¼é»è®¤å¼ /// @param open YES:å¼ï¼NO:å ³ - (int32_t)soundCtrl:(BOOL)open forClient:(int32_t)clientID; /// åæ¢å¯¹è®²æ¶ä½¿ç¨çæå头ï¼é»è®¤éç¨åç½® 忥æ¥å£ /// @param backCameraSelected YES:éæ©åç½®ï¼NO:éæ©åç½® - (int32_t)switchCamera:(BOOL)backCameraSelected; /// 弿¥è·åæ¬å°æå¾ /// @param block æå¾æååè°ï¼å¤±è´¥image为nil //- (void)localScreenShotWithBlock:(void (^)(UIImage *image))block; /// è·åè¿ç«¯æå¾ /// @param quality å缩质é 0 ~ 100 //- (UIImage *)remoteScreenShotWithQuality:(int)quality; /// æ¬å°å½å¶ /// @param path åå ¥çæ²çè·¯å¾ - (BOOL)startLocalVideoRecordWithPath:(NSString *)path; /// 忢æ¬å°å½å¶ - (BOOL)stopLocalVideoRecord; /// å¼å§è¿ç«¯å½å¶ mp4 /// @param path åå ¥çæ²çè·¯å¾ - (BOOL)startRemoteVideoRecordWithPath:(NSString *)path forClient:(int32_t)clientID; /// 忢è¿ç«¯å½å¶ - (BOOL)stopRemoteVideoRecordForClient:(int32_t)clientID; /// åééä¼ æ¶æ¯æ¥å£ï¼åæ¥æ¥å£ï¼å¯è½èæ¶ /// @param msg æ¶æ¯å å®¹ï¼æ¯å¦jsonæ°æ® - (int)sendTransferMsg:(NSString *)msg; @end Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/modules/EZVideoTalk/EZMediaSession.h
New file @@ -0,0 +1,43 @@ // // EZMediaSession.h // H264 Encode and Decode // // Created by kanhaiping on 2018/6/21. // Copyright © 2018å¹´ AJB. All rights reserved. // #import <Foundation/Foundation.h> #import "EZMediaSessionDefines.h" @class UIImage; @class EZMediaSession; @class EZMediaSessionVideoParam; @protocol EZMediaSessionDelegate <NSObject> - (void)mediaSession:(EZMediaSession *)session didReceivedEncodedData:(NSData *)mediaData pts:(int64_t)ptsInMS type:(EZMediaCaptureSessionType)type; - (void)mediaSession:(EZMediaSession *)session didReceivedError:(NSInteger)error; @end @interface EZMediaSession : NSObject @property (nonatomic, weak) id displayLayer;//å¯éçé¢è§è§å¾ï¼è¯·ä¼ å ¥AVSampleBufferDisplayLayer @property (nonatomic, assign, readonly) BOOL isAudioEnabled; - (instancetype)initWithVideoParam:(EZMediaSessionVideoParam *)videoParam delegate:(id<EZMediaSessionDelegate>)delegate; - (NSInteger)enableVideoCapture:(BOOL)enable; - (NSInteger)enableAudioCatpure:(BOOL)enable; - (NSInteger)enableThumbnailCatpure:(BOOL)enable; - (NSInteger)enableScreenShareCapture:(BOOL)enable; - (void)selectBackCamera:(BOOL)backCameraSelected; - (NSInteger)startEncoding; - (NSInteger)setMaxBPS:(int)maxBPS; - (void)forceNextKeyFrame; - (NSInteger)stop; - (void)localScreenShotWithBlock:(void (^)(UIImage *image))block; - (BOOL) startLocalRecord:(NSString*)path; - (BOOL) stopLocalRecord; @end Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/modules/EZVideoTalk/EZMediaSessionDefines.h
New file @@ -0,0 +1,95 @@ // // EZMediaSessionDefines.h // H264 Encode and Decode // // Created by kanhaiping on 2018/6/22. // Copyright © 2018å¹´ AJB. All rights reserved. // #import <Foundation/Foundation.h> #define EZMediaSessionEncodeResolutionRatioHigh 1 //å辨ç 1ï¼480*480 0ï¼320*320 #define EZMediaSessionDstVideoFPS (15) #define EZMediaSessionDstVideoMaxKeyFrameInterval (300)//åä½ç§ #define EZMediaSessionSmallStreamWidth (320) #define EZMediaSessionSmallStreamHeight (320) #define EZMediaSessionDstVideoAverageBitRate480x480 (4 * 128 * 1024)//åä½ bps //averageBPS #define EZMediaSessionDstVideoDataRateLimits480x480 (6 * 128 * 1024)//åä½ bps //maxBPS #define EZMediaSessionDstVideoAverageBitRate320x320 (4 * 128 * 1024 * 5 / 8)//åä½ bps //averageBPS #define EZMediaSessionDstVideoDataRateLimits320x320 (6 * 128 * 1024 * 5 / 8)//åä½ bps //maxBPS typedef NS_OPTIONS(NSUInteger, EZMediaCaptureSessionType) { EZMediaSessionCaptureNone = 1 << 0, EZMediaSessionCaptureVideoType = 1 << 1, EZMediaSessionCaptureAudioType = 1 << 2, EZMediaSessionCaptureThumbnailType = 1 << 3, EZMediaSessionCaptureShareScreenType = 1 << 4, }; typedef NS_ENUM(NSUInteger, EZMediaSessionErrorBase) { EZMediaSessionErrorUnknowError = 9000, EZMediaSessionErrorNotReadyToSendData, EZMediaSessionErrorCallSeqError, EZMediaSessionErrorDuplicated, EZMediaSessionErrorBaseAudioCapture = 10000, EZMediaSessionErrorBaseVideoCapture = 20000, EZMediaSessionErrorBaseAudioEncode = 30000, EZMediaSessionErrorBaseVideoEncode = 40000, EZMediaSessionErrorBaseStreamClient = 50000, EZMediaSessionErrorBasePlayer = 60000, }; typedef NS_ENUM(NSUInteger, EZAudioRecorderError) { EZAudioRecorderErrorUnknown = EZMediaSessionErrorBaseAudioCapture, EZAudioRecorderErrorInitError = 10100, EZAudioRecorderErrorUnableToCreateSample, EZAudioRecorderErrorStateError, EZAudioRecorderErrorAuthorizeFailed = 10152, EZAudioRecorderErrorStopError = 10200, }; typedef NS_ENUM(NSUInteger, EZMediaCaptureError) { EZMediaCaptureErrorUnknown = EZMediaSessionErrorBaseVideoCapture, EZMediaCaptureErrorInitError = 20100, EZMediaCaptureErrorAuthorizeFailed = 20153, EZMediaCaptureErrorSwitchCameraError = 20200, EZMediaCaptureErrorCroppedError = 20300, EZMediaCaptureErrorRenderError = 20400, EZMediaCaptureErrorScreenStartError = 20500, EZMediaCaptureErrorScreenStopError, EZMediaCaptureErrorScreenRecordError, EZMediaCaptureErrorUnsupport, }; typedef NS_ENUM(NSUInteger, EZAudioAACEncoderError) { EZAudioAACEncoderErrorUnknown = EZMediaSessionErrorBaseAudioEncode, EZAudioAACEncoderErrorFailToInitConverter = 30100, EZAudioAACEncoderErrorFailToGetDataBuffer, EZAudioAACEncoderErrorFailToEncodeBuffer, }; typedef NS_ENUM(NSUInteger, EZVideoH264EncoderError) { EZVideoH264EncoderErrorUnknown = EZMediaSessionErrorBaseVideoEncode, EZVideoH264EncoderErrorInitFailed = 40100, EZVideoH264EncoderErrorInvalidSample, EZVideoH264EncoderErrorSampleNotReady, EZVideoH264EncoderErrorNotRunning, EZVideoH264EncoderErrorSetMaxBPSFailed, EZVideoH264EncoderErrorSetAverageBPSFailed, EZVideoH264EncoderErrorEncodeFailed = 40200, }; typedef NS_ENUM(NSUInteger, EZBAVStreamClientError) { EZBAVStreamClientErrorUnknow = EZMediaSessionErrorBaseStreamClient, EZBAVStreamClientErrorAudioEnableNotAllowed = EZMediaSessionErrorBaseStreamClient + 9000, EZBAVStreamClientErrorShareEnableNotAllowed, }; @interface EZMediaSessionDefines : NSObject @end Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/modules/EZVideoTalk/EZMediaSessionVideoParam.h
New file @@ -0,0 +1,32 @@ // // EZMediaSessionVideoParam.h // EZBAVClient // // Created by kanhaiping on 2018/7/13. // Copyright © 2018å¹´ hikvision. All rights reserved. // #import <Foundation/Foundation.h> #import <AVFoundation/AVFoundation.h> @interface EZMediaSessionVideoParam : NSObject /// æå头ééééç»é¢çé»è®¤è®¾ç½®ï¼æ¯å¦AVCaptureSessionPreset1280x720 @property (nonatomic, strong) AVCaptureSessionPreset resolutionPreset; /// æç»è¾åºçç»é¢ç宽 @property (nonatomic, assign) NSInteger pixelWidth; /// æç»è¾åºçç»é¢çé« @property (nonatomic, assign) NSInteger pixelHeigth; /// ä¼ å ¥ AVCaptureVideoOrientationï¼é»è®¤ç«å± @property (nonatomic, assign) NSInteger videoOrientation; /// I帧é´é é»è®¤4ç§ @property (nonatomic, assign) NSInteger encodeKeyFrameInterval; + (EZMediaSessionVideoParam *)screenShareParam; @end Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/modules/EZVideoTalk/EZVideoTalk.h
New file @@ -0,0 +1,178 @@ // // EZBAVClient.h // EZBAVClient // // Created by kanhaiping on 2018/6/26. // Copyright © 2018å¹´ hikvision. All rights reserved. // #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> #import "EZBAVParam.h" #import "EZMediaSessionDefines.h" #import "EZVideoTalkView.h" @class EZVideoTalk; @class EZMediaSessionVideoParam; @protocol EZVideoTalkDelegate<NSObject> @required /// é误åè° /// @param client client /// @param errorCode åºéçé误ç - (void)bavClient:(EZVideoTalk *)client didReceivedError:(int32_t)errorCode; /** åè°æ¶æ¯ @param client client @param messageCode æ¶æ¯ç åè§EZBAVMessage @param msg éå ä¿¡æ¯ï¼ 妿æ¯EZBAVMessagePeerEnteredRoomãEZBAVMessagePeerLeaveRoomæ¶æ¯ï¼msgæ¯EZBAVParticipantsInfo对象 å¦ææ¶æ¯æ¯ EZBAVMessageTransferData msgæ¯ msgæ¯å符串 @"å®é çéä¼ æ¶æ¯" */ - (void)bavClient:(EZVideoTalk *)client didReceivedMessage:(int32_t)messageCode msg:(id)msg; @optional ///** // åè°æ¶æ¯ bavclient logåè° // // @param client client // @param msg éä¼ æ¶æ¯ // */ //- (void)bavClient:(EZVideoTalk *)client didReceivedBavClientLogMsg:(NSString*)msg; /** æ¾ç¤ºåè°ï¼é¦æ¬¡ç»é¢åºæ¥ä»¥ååç»ç»é¢å°ºå¯¸åçååæ¶åè° @param client client @param width ç»é¢å®½åº¦ @param height ç»é¢é«åº¦ */ - (void)bavClient:(EZVideoTalk *)client didDisplayWidth:(int32_t)width height:(int32_t)height; /** ææ¾å¡é¡¿ @param client client @param delayTime å¡é¡¿æ¶é´ */ - (void)bavClient:(EZVideoTalk *)client playDelayTime:(int32_t)delayTime; ///** // ææ¾å¡é¡¿ç»è®¡ // // @param client client // @param delayTimeStat å¡é¡¿æ¶é´ // */ //- (void)bavClient:(EZVideoTalk *)client playDelayTimeStatistics:(double)delayTimeStat; @end /// ååé³è§é¢éè¯ç±» /// 1.主å¨å¼å« /// A.åèµ· /// - init /// - enableCapture /// - start:param role=0 reason=0 roomid=0 /// B.éè¯ç»æ è°ç¨ stop /// C.çå¾ å¯¹æ¹è¿ç¨ä¸ææ è°ç¨stop /// 2.è¢«å¨æ¶å°å¼å« /// - init /// - enableCapture /// å±ç¤ºæ¥å¬çé¢ /// A.妿æ¥å¬ è°ç¨ startï¼param role=1 reason=0 roomid=æ¶å°çroomid æ¥å¬å®éè¯ä¸ææè°ç¨stop /// B.å¦æä¸»å¨ææ¥ è°ç¨ startï¼param role=2 reason=101 roomid=æ¶å°çroomid ææ¥å®æåç«é©¬è°ç¨stop /// C.妿æ 人æ¥å¬ è°ç¨ startï¼param role=2 reason=102 roomid=æ¶å°çroomid 宿åç«é©¬è°ç¨stop @interface EZVideoTalk : NSObject @property (nonatomic, weak) id<EZVideoTalkDelegate> delegate; @property (nonatomic, assign, readonly) int32_t roomID; /** 对讲æ¶ï¼å¼ºå¶éç¨æ¬å£°å¨ææ¾å£°é³ï¼é»è®¤ä¸ºYES */ @property (nonatomic, assign) BOOL forceToSpeaker; /// åå§åè§é¢éè¯SDK对象 /// @param videoParam è§é¢éè¯ä¸è§é¢çåæ° - (instancetype)initWithVideoParam:(EZMediaSessionVideoParam *)videoParam; /// 设置æ¬å°çé¢è§çªå£ /// @param localWin çªå£window - (void)setLocalWindow:(EZVideoTalkView *)localWin; /// æ¬å°æå头å¼å¯/å ³éæ¥å£ /// @param enable æ¯å¦å¼å¯æå头 - (NSInteger)enableVideoCapture:(BOOL)enable; /// æ¬å°éº¦å é£å¼å¯/å ³éæ¥å£ /// @param enable æ¯å¦å¼å¯éº¦å é£ - (NSInteger)enableAudioCatpure:(BOOL)enable; /// æ¯å¦å¼å¯å±å¹å ±äº« /// @param enable æ¯å¦å¼å¯ - (NSInteger)enableScreenShare:(BOOL)enable withName:(NSString *)name; /// åèµ·ååé³è§é¢å¯¹è®²ï¼èæ¶æ¥å£ï¼æåè¿å noErrï¼å¤±è´¥è¿åé误ç /// @param param EZBAVParam - (int32_t)startWithParam:(EZBAVParam *)param; /// 设置è¿ç¨çªå£ï¼.å¦æè®¾ç½®é空对象viewï¼å¿ é¡»å¨ä¸»çº¿ç¨è°ç¨ï¼å¦ææ¯è®¾ç½®ænilï¼å¯ä»¥ä¸å¨ä¸»çº¿ç¨è°ç¨ï¼ /// @param window ææ¾çªå£ - (int32_t)setRemoteWindow:(UIView *)window; /// 忢ååé³è§é¢å¯¹è®²ï¼æåè¿å noErrï¼å¤±è´¥è¿åé误ç - (int32_t)stop; #pragma éå æ¥å£ /// åæ¢å¯¹è®²æ¶ä½¿ç¨çæå头ï¼é»è®¤éç¨åç½® 忥æ¥å£ /// @param backCameraSelected YES:éæ©åç½®ï¼NO:éæ©åç½® - (int32_t)switchCamera:(BOOL)backCameraSelected; /// å¼å ³è¿ç¨å£°é³ï¼é»è®¤å¼ /// @param open å¼å¯ - (int32_t)enableRemoteSound:(BOOL)open; /// 弿¥è·åæ¬å°æå¾ /// @param block æå¾æååè°ï¼å¤±è´¥image为nil //- (void)localScreenShotWithBlock:(void (^)(UIImage *image))block; /// è·åè¿ç«¯æå¾ /// @param quality å缩质é 0 ~ 100 //- (UIImage *)remoteScreenShotWithQuality:(int)quality; /// æ¬å°å½å¶ /// @param path åå ¥çæ²çè·¯å¾ //- (BOOL)startLocalVideoRecordWithPath:(NSString *)path; /// 忢æ¬å°å½å¶ //- (BOOL)stopLocalVideoRecord; /// å¼å§è¿ç«¯å½å¶ mp4 /// @param path åå ¥çæ²çè·¯å¾ //- (BOOL)startRemoteVideoRecordWithPath:(NSString *)path forClient:(int32_t)clientID; /// 忢è¿ç«¯å½å¶ //- (BOOL)stopRemoteVideoRecordForClient:(int32_t)clientID; /// åééä¼ æ¶æ¯æ¥å£ï¼åæ¥æ¥å£ï¼å¯è½èæ¶ /// @param msg æ¶æ¯å å®¹ï¼æ¯å¦jsonæ°æ® - (int)sendTransferMsg:(NSString *)msg; @end Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/modules/EZVideoTalk/EZVideoTalkGlobal.h
New file @@ -0,0 +1,37 @@ // // EZVideoTalkGlobal.h // EZVideoTalk // // Created by yuqian on 2018/9/12. // Copyright © 2018å¹´ hikvision. All rights reserved. // #import <Foundation/Foundation.h> @interface EZVideoTalkGlobal : NSObject /** æ¥å¿è®¾ç½® @param enable æ¯å¦æå°æ¥å¿ @param logCallback æ¥å¿åè°ï¼ä¸å±èªå®ä¹å¤ç */ + (void)setDebugLogEnable:(BOOL)enable withLogCallback:(void(^)(NSString *logStr))logCallback; /** æå¼å¯¹ç«¯ç æµæå @param enble æ¯å¦æå¼ */ +(void)setDebugVideoLog:(BOOL)enble; /** è·åsdkçæ¬ä¿¡æ¯ @return çæ¬å· */ + (NSString*)getVersion; @end Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/modules/EZVideoTalk/EZVideoTalkSDK.h
New file @@ -0,0 +1,257 @@ // // EZVideoTalkSDK.h // EZOpenSDK // // Created by yuqian on 2020/3/14. // Copyright © 2020 Hikvision. All rights reserved. // #import <UIKit/UIKit.h> #import "EZBAVParam.h" NS_ASSUME_NONNULL_BEGIN @class EZVideoTalkSDK, EZMediaSessionVideoParam, EZVideoTalkView, EZBAVParam, EZConferenceParam; @protocol EZVideoTalkSDKDelegate<NSObject> - (void)videoTalk:(id)client didReceivedError:(int32_t)errorCode; /** åè°æ¶æ¯ @param client client @param messageCode æ¶æ¯ç åè§EZBAVMessage @param msg éä¼ æ¶æ¯ï¼ 妿æ¯EZVideoTalkMessagePeerEnteredRoomåEZVideoTalkMessagePeerLeaveRoomæ¶æ¯ï¼msgæ¯{@"clientID":@(9527),@"clientName":@"å¼ ä¸"} å¦ææ¶æ¯æ¯ EZVideoTalkMessageTransferData msgæ¯ msgæ¯{@"content":@"å®é çéä¼ æ¶æ¯"} */ - (void)videoTalk:(id)client didReceivedMessage:(int32_t)messageCode msg:(id)msg; @end @interface EZVideoTalkSDK : NSObject @property (nonatomic, weak) id<EZVideoTalkSDKDelegate> delegate; /// å å ¥çæ¿é´å· - (int32_t)roomID; /** 对讲æ¶ï¼å¼ºå¶éç¨æ¬å£°å¨ææ¾å£°é³ï¼é»è®¤ä¸ºYES */ @property (nonatomic, assign) BOOL forceToSpeaker; /// åå§åè§é¢éè¯SDK对象 /// @param videoParam è§é¢éè¯ä¸è§é¢çåæ° - (instancetype)initWithVideoParam:(EZMediaSessionVideoParam *)videoParam; /// 设置æ¬å°çé¢è§çªå£ /// @param localWin çªå£window - (void)setLocalWindow:(EZVideoTalkView *)localWin; /// æ¬å°æå头å¼å¯/å ³éæ¥å£ /// @param enable æ¯å¦å¼å¯æå头 - (NSInteger)enableVideoCapture:(BOOL)enable; /// æ¬å°éº¦å é£å¼å¯/å ³éæ¥å£ /// @param enable æ¯å¦å¼å¯éº¦å é£ - (NSInteger)enableAudioCatpure:(BOOL)enable; /// æ¯å¦å¼å¯å±å¹å ±äº« /// @param enable æ¯å¦å¼å¯ - (NSInteger)enableScreenShare:(BOOL)enable withName:(NSString *)name; /// åèµ·ååé³è§é¢å¯¹è®²ï¼èæ¶æ¥å£ï¼æåè¿å noErrï¼å¤±è´¥è¿åé误ç /// @param param EZBAVParam - (int32_t)startWithParam:(EZBAVParam *)param; /// 设置è¿ç¨çªå£ï¼.å¦æè®¾ç½®é空对象viewï¼å¿ é¡»å¨ä¸»çº¿ç¨è°ç¨ï¼å¦ææ¯è®¾ç½®ænilï¼å¯ä»¥ä¸å¨ä¸»çº¿ç¨è°ç¨ï¼ /// @param window ææ¾çªå£ - (int32_t)setRemoteWindow:(UIView *)window; /// 忢ååé³è§é¢å¯¹è®²ï¼æåè¿å noErrï¼å¤±è´¥è¿åé误ç - (int32_t)stop; /// åæ¢å¯¹è®²æ¶ä½¿ç¨çæå头ï¼é»è®¤éç¨åç½® 忥æ¥å£ /// @param backCameraSelected YES:éæ©åç½®ï¼NO:éæ©åç½® - (int32_t)switchCamera:(BOOL)backCameraSelected; /// å¼å ³è¿ç¨å£°é³ï¼é»è®¤å¼ /// @param open å¼å¯ - (int32_t)enableRemoteSound:(BOOL)open; #pragma mark - æ¥å¿è°è¯ /** æ¥å¿è®¾ç½® @param enable æ¯å¦æå°æ¥å¿ @param logCallback æ¥å¿åè°ï¼ä¸å±èªå®ä¹å¤ç */ + (void)setDebugLogEnable:(BOOL)enable withLogCallback:(void(^)(NSString *logStr))logCallback; /** æå¼å¯¹ç«¯ç æµæå @param enble æ¯å¦æå¼ */ +(void)setDebugVideoLog:(BOOL)enble; /** è·åsdkçæ¬ä¿¡æ¯ @return çæ¬å· */ + (NSString*)getVersion; @end @interface EZConfOpenSDK : NSObject @property (nonatomic, weak) id<EZVideoTalkSDKDelegate> delegate; /// å å ¥çæ¿é´å· - (int32_t)roomID; /// èªå·±çclientID - (int32_t)clientID; /** 对讲æ¶ï¼å¼ºå¶éç¨æ¬å£°å¨ææ¾å£°é³ï¼é»è®¤ä¸ºYES */ @property (nonatomic, assign) BOOL forceToSpeaker; /// åå§åè§é¢éè¯SDK对象 /// @param videoParam è§é¢éè¯ä¸è§é¢çåæ° - (instancetype)initWithVideoParam:(EZMediaSessionVideoParam *)videoParam; /// å å ¥ä¼è®®ï¼æ°æ¥å£ï¼ /// @param roomId æ¿é´å· /// @param password å¯ç /// @param customId èªå®ä¹çcustomid - (void)enterRoom:(int32_t)roomId withPassword:(NSString *)password withCustomId:(NSString *)customId; /// éåºä¼è®® - (int32_t)leaveRoom; /// è§£æ£ä¼è®®ï¼è§£æ£åï¼å ¶ä»ä¸ä¼è 伿¶å°ä¼è®®è¢«è§£æ£æ¶æ¯ - (void)dissolveRoom; /// æ¬å°æå头å¼å¯/å ³éæ¥å£. /// @param enable æ¯å¦å¼å¯æå头 - (NSInteger)enableVideoCapture:(BOOL)enable; /// æ¬å°éº¦å é£å¼å¯/å ³éæ¥å£ /// @param enable æ¯å¦å¼å¯éº¦å é£ /// @param block 主线ç¨åè°ç»æ - (void)enableAudioCatpure:(BOOL)enable withResultBlock:(EZAudioOpenResultBlock)block; /// æ¯å¦å¼å¯è¾ æµï¼è¾ æµåè¾¨çæ´ä½ãç çæ´å° /// @param enable æ¯å¦å¼å¯ - (NSInteger)enableThumbnailCatpure:(BOOL)enable; /// æ¯å¦å¼å¯å±å¹å ±äº« /// @param enable æ¯å¦å¼å¯ /// @param name å¯éçå享çåç§° /// @param block 主线ç¨åè°ç»æ - (void)enableScreenShare:(BOOL)enable andName:(NSString *)name withResultBlock:(EZScreenShareResultBlock)block; /// 设置æ¬å°çé¢è§çªå£ /// @param localWin çªå£window - (void)setLocalWindow:(EZVideoTalkView *)localWin; /// 设置è¿ç¨çªå£ï¼1.å¿ é¡»å¨æ¿å°è¿ç«¯å®¢æ·ç«¯å å ¥çæ¶æ¯å设置ï¼2.å¦æè®¾ç½®é空对象viewï¼å¿ é¡»å¨ä¸»çº¿ç¨è°ç¨ /// @param window ææ¾çªå£ /// @param clientID å å ¥ç客æ·ç«¯çID /// @param streamType 1è§é¢ 2é³é¢ 4å°æµ - (int32_t)setRemoteWindow:(UIView *)window ofClient:(int32_t)clientID withStream:(NSInteger)streamType; /// 设置è§çå±å¹å ±äº«ççªå£ /// @param window çªå£ - (int32_t)setWindowForScreenShare:(UIView *)window; /// åæ¢å¯¹è®²æ¶ä½¿ç¨çæå头ï¼é»è®¤éç¨åç½® 忥æ¥å£ /// @param backCameraSelected YES:éæ©åç½®ï¼NO:éæ©åç½® - (int32_t)switchCamera:(BOOL)backCameraSelected; #pragma mark - å½å¶ç¸å ³æ¥å£ /// å¼å§æ¿é´è§é¢ä¼è®®å½å¶ /// @param roomId æ¿é´å· /// @param customId å¼åè èªå®ä¹ç¨æ·ID /// @param recUsers éè¦å½å¶çæ¿é´åä¸è id /// @param projectId äºåå¨é¡¹ç®ID /// @param fileId äºå卿件å /// @param completion operation + (void)requestStartRecordRoomId:(NSString *)roomId customId:(NSInteger)customId recUsers:(NSArray *)recUsers projectId:(NSString *)projectId fileId:(NSString *)fileId completion:(void (^)(bool success, NSError *error))completion; /// 忢æ¿é´è§é¢ä¼è®®å½å¶ /// @param roomId æ¿é´å· /// @param customId å¼åè èªå®ä¹ç¨æ·ID /// @param completion operation + (void)requestStopRecordRoomId:(NSString *)roomId customId:(NSInteger)customId completion:(void (^)(bool success, NSError *error))completion; /// è·åæä»¶ä¸è½½å°å /// @param projectId 项ç®ID /// @param fileId æä»¶ID /// @param completion operation + (void)requestGetRecordFileProjectId:(NSString *)projectId fileId:(NSString *)fileId completion:(void (^)(id responseObject, NSError *error))completion; /// æ°å»ºé¡¹ç®æ¥å£ /// @param projectId 项ç®ID /// @param projectName 项ç®åç§° /// @param expireDays 项ç®åå¨å¯¹è±¡è¿æå¤©æ° é»è®¤æ°¸ä¸è¿æ /// @param completion operation + (void)requestCreateProjectId:(NSString *)projectId projectName:(NSString *)projectName expireDays:(NSInteger )expireDays completion:(void (^)(bool success, NSError *error))completion; #pragma mark - 4.16.3 æ°ç伿§æ¥å£ /// é¢è®¢ä¼è®®æ¥å£ /// @param customId 主æäººç¨æ·idï¼å¼åè èªå®ä¹çç¨æ·idï¼ /// @param password æ¿é´å¯ç ï¼è¥ä¸ä¼ æä¸ºç©ºå认为æ¿é´å ¬å¼ãæ å¯ç ï¼ /// @param limit æ¿é´äººæ°éå¶ï¼<100ï¼ä¸ä¼ åé»è®¤100ï¼ /// @param beginTime æ¯«ç§æ¶é´æ³ï¼ä¼è®®é¢è®¡å¼å§æ¶é´ï¼>=å½åæ¶é´ï¼ /// @param endTime æ¯«ç§æ¶é´æ³ï¼ä¼è®®é¢è®¡ç»ææ¶é´ï¼>beginTimeä¸<ä¸å¤©åçæ¶é´æ³ï¼ /// @param completion completion + (NSURLSessionDataTask *)orderMeetingWithCustomId:(NSString *)customId password:(NSString *)password limit:(NSInteger)limit beginTime:(long)beginTime endTime:(long)endTime completion:(void (^)(int32_t roomId, NSInteger limit, NSError *error))completion; @end NS_ASSUME_NONNULL_END Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/modules/EZVideoTalk/EZVideoTalkSDKDefines.h
New file @@ -0,0 +1,17 @@ // // EZVideoTalkSDKDefines.h // EzvizOpenSDK // // Created by Harper Kan on 2021/7/5. // Copyright © 2021 Hikvision. All rights reserved. // #import <Foundation/Foundation.h> NS_ASSUME_NONNULL_BEGIN @interface EZVideoTalkSDKDefines : NSObject @end NS_ASSUME_NONNULL_END Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/modules/EZVideoTalk/EZVideoTalkView.h
New file @@ -0,0 +1,18 @@ // // EZVideoTalkView.h // EZVideoTalk // // Created by Harper Kan on 2020/12/5. // Copyright © 2020 hikvision. All rights reserved. // #import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> NS_ASSUME_NONNULL_BEGIN @interface EZVideoTalkView : UIView - (AVSampleBufferDisplayLayer *)videoLayer; @end NS_ASSUME_NONNULL_END Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/modules/EZVideoTalkParam.h
File was deleted Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/include/modules/EZVideoTalkSDK.h
File was deleted Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/libEZOpenSDK.aBinary files differ
Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/openssl/libcrypto.aBinary files differ
Demo/EZOpensdk_iOS_4.15.1_build20201104/SDK/openssl/libssl.aBinary files differ
EZSDK.IOS/EZSDK.IOS/Library/libEZSDK.aBinary files differ
EZSDK.IOS/EZSDK.IOS/Properties/AssemblyInfo.cs
@@ -25,7 +25,7 @@ // The form "{Major}.{Minor}.*" will automatically update the build and revision, // and "{Major}.{Minor}.{Build}.*" will update just the revision. [assembly: AssemblyVersion("1.4.5")] [assembly: AssemblyVersion("1.5.1")] // The following attributes are used to specify the signing key for the assembly, // if desired. See the Mono documentation for more information about signing. EZSDK/EZSDK.xcodeproj/xcshareddata/xcschemes/EZSDK.xcscheme
@@ -58,7 +58,7 @@ </MacroExpansion> </ProfileAction> <AnalyzeAction buildConfiguration = "Debug"> buildConfiguration = "Release"> </AnalyzeAction> <ArchiveAction buildConfiguration = "Release" EZSDK/EZSDK/EZ/PrefixHeader.pch
New file @@ -0,0 +1,30 @@ // // PrefixHeader.pch // EZOpenSDKDemo // // Created by linyong on 16/10/26. // Copyright © 2016å¹´ Ezviz. All rights reserved. // #ifndef PrefixHeader_pch #define PrefixHeader_pch #define DEMO_ONLINE //çº¿ä¸æå¡å¨ //#import "Macros.h" //#import "UIView+EZExtension.h" #import "UIView+Toast.h" //#import "JXTAlertController.h" //#import "NSDate+DateTools.h" #import "Masonry.h" #import "DDKit.h" #import "EZOpenSDK.h" #import "EZGlobalSDK.h" #import "GlobalKit.h" #import "EZHttpUtil.h" #import "EZSDK.h" #endif /* PrefixHeader_pch */ EZSDK/EZSDK/EZ/UIViewControllers/EZAPWiFiConfigViewController.m
@@ -244,8 +244,13 @@ { NSString *ssid = [self currentSsid]; if (ssid && [ssid isEqualToString:self.devicWifiName]) { // if (ssid && [ssid isEqualToString:self.devicWifiName]) // { // return YES; // } //2021-10-19 夿æ¡ä»¶ï¼æ¹ä¸ºåªå¹é åé¢åºåå·å段 if(ssid && [ssid hasSuffix:[GlobalKit shareKit].deviceSerialNo]){//å符串æ«å°¾æåºåå·å符 return YES; } EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.m
@@ -234,6 +234,8 @@ - (void)checkQRCode:(NSString *)strQRcode { strQRcode = [strQRcode stringByReplacingOccurrencesOfString:@"\r\n" withString:@"\r"];//2021-10-19 è§£å³é¨åç«ç¼è®¾å¤å±å¹æ¾ç¤ºçäºç»´ç ï¼åæ°ä¹é´åºç°ç©ºè¡å¯¼è´åå²åéåæ®µé®é¢ NSArray *arrString = [strQRcode componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]; if(arrString.count >=3)