From 54ada3b3c6c58da67dda2ecaea4b19b42ab5c257 Mon Sep 17 00:00:00 2001
From: chenqiyang <1406175257@qq.com>
Date: 星期三, 29 三月 2023 17:51:47 +0800
Subject: [PATCH] 1.改用萤石动态库,解决openssl版本冲突问题 2.设备回调成功增加返回设备序列号 3.优化部分功能

---
 EZSDK/EZSDK/EZ/PrefixHeader.pch                                                                    |    7 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConstants_Auth.h                            |   52 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Modules/module.modulemap              |    6 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceCloudServiceInfo.h                    |   65 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceUpgradeStatus.h                       |   19 
 EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_temp_pass_word@3x.png                                         |    0 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDetectorInfo.h              |   41 
 EZSDK/EZSDK.xcodeproj/project.pbxproj                                                              |  144 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZPlayerExParamInfo.h                         |   34 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZPlayer.h                    |  446 ++
 EZSDK.IOS/EZSDK.IOS/ApiDefinition.cs                                                               |    6 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZHiddnsDeviceInfo.h                          |   84 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZStreamPlayer.h              |  118 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZAreaInfo.h                  |   19 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZTokenKit.h                  |   40 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkGlobal.h                           |   63 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceUpgradeStatus.h       |   19 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZCloudRecordDownloadTask.h                   |   34 
 EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_nav_back@3x.png                                            |    0 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZCameraInfo.h                                |   35 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTransformer.h                          |   39 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZOpenSDKFramework.h          |   54 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRTCCameraParam.h            |   38 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRTCMediaSessionDefines.h                    |  107 
 EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_temp_pass_word@2x.png                                         |    0 
 EZSDK/EZSDK/EZ/UIViewControllers/EZPlaybackViewController.m                                        |   16 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZLeaveMessage.h                              |   41 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceRecordDownloadTask.h                  |   39 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZGlobalSDK.h                                 | 1059 ++++
 EZSDK/EZSDK/EZ/UIViewControllers/EZAPConfigResultViewController.m                                  |   16 
 EZSDK/EZSDK/EZ/UIViewControllers/EZPlaybackViewController.h                                        |    2 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceRecordFile.h                          |   26 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDevicePtzAngleInfo.h        |   47 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZAlarmInfo.h                 |   60 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConferenceClient.h          |  238 +
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZOpenSDKFramework.h                          |   54 
 EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_temp_add@3x.png                                               |    0 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZHCNetDeviceInfo.h           |   36 
 EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZVisitorRecordViewController.m                         |   10 
 EZSDK/EZSDK/EZ/UIViewControllers/EZOnlineCameraCell.m                                              |    3 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/EZOpenSDKFramework                    |    0 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZHCNetDeviceSDK.h            |  146 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZPMPlayPrivateTokenInfo.h    |   22 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRTCSampleHandleManager.h                    |   31 
 EZSDK/EZSDK/EZ/UIViewControllers/EZLocalRealPlayViewController.m                                   |    6 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/EZOpenSDKFramework                                    |    0 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkSDK.h                              |  268 +
 EZSDK/EZSDK/EZ/UIViewControllers/EZLocalDeviceListViewController.m                                 |    6 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceInfo.h                |   59 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRTCMediaSessionDefines.h    |  107 
 EZSDK/EZSDK/EZ/EZOpenSDK+EZPrivateHeader.h                                                         |    2 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/Sadp.h                        |  557 ++
 EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m                                        |   21 
 EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceResultViewController.m                                    |    5 
 EZSDK/EZSDK/EZ/UIViewControllers/EZLocalCameraListViewController.m                                 |    2 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRTCCameraParam.h                            |   38 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceRecordFile.h          |   26 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkComponent.h                        |   23 
 EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.h                                        |    2 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZAPDevInfo.h                 |   23 
 EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceTableViewController.m                                     |    6 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRTCSampleHandleManager.h    |   31 
 EZSDK/EZSDK/EZ/UIViewControllers/EZHubDebugViewController.h                                        |    2 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceInfo.h                                |   59 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDevicePtzAngleInfo.h                        |   47 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRecordDownloader.h                          |   49 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZCloudRecordFile.h           |   36 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalk.h                 |  179 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZBAVParam.h                                  |  196 
 EZSDK/EZSDK/EZ/Base/HDLEZBaseViewController.m                                                      |    4 
 EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_nav_back@2x.png                                            |    0 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZPlayer.h                                    |  446 ++
 EZSDK/EZSDK/EZ/UIViewControllers/EZAPWiFiConfigViewController.m                                    |    2 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZOpenSDK.h                                   |  946 ++++
 EZSDK/EZSDK/EZ/UIViewControllers/EZMessagePhotoViewController.h                                    |    4 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZAreaInfo.h                                  |   19 
 EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_unlock_disable@2x.png                                      |    0 
 EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceUpgradeViewController.h                                   |    2 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceVersion.h             |   27 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConstants_WifiConfig.h                      |   36 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkComponent.h        |   23 
 EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceUpgradeViewController.m                                   |    4 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZUserInfo.h                                  |   23 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZPlayerExParamInfo.h         |   34 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRecordDownloader.h          |   49 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConstants_WifiConfig.h      |   36 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConfigTokenInfo.h           |   21 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EzvizWatchServerInfo.h        |   26 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Info.plist                            |    0 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EzvizRecordFileInfo.h         |   47 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZStorageInfo.h               |   23 
 EZSDK/EZSDK/EZ/UIViewControllers/EZSettingViewController.m                                         |    4 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZCameraInfo.h                |   35 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZHCNetDeviceSDK.h                            |  146 
 EZSDK/EZSDK/EZ/Global/EZHttpUtil.m                                                                 |   25 
 EZSDK/EZSDK/EZ/UIViewControllers/EZEditViewController.h                                            |    2 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkView.h             |   18 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZWiFiItemInfo.h                              |   21 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConstants.h                 |  222 +
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EzvizWatchServerInfo.h                        |   26 
 EZSDK/EZSDK/EZ/UIViewControllers/EZSettingViewController.h                                         |    3 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDetectorInfo.h                              |   41 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZPMPlayPrivateTokenInfo.h                    |   22 
 EZSDK/EZSDK/EZ/UIViewControllers/EZMessagePlaybackViewController.m                                 |    6 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRTCVideoEncodeParam.h                       |   30 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Modules/module.modulemap                              |    6 
 EZSDK/EZSDK/EZ/UIViewControllers/EZMessagePlaybackViewController.h                                 |    4 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConfigTokenInfo.h                           |   21 
 EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_unlock@2x.png                                              |    0 
 EZSDK/EZSDK/EZ/CustomUI/EZRecordCell.m                                                             |    4 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkSDKDefines.h       |   17 
 EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_list_next@2x.png                                              |    0 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EzvizRecordFileInfo.h                         |   47 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceVersion.h                             |   27 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZStreamPlayer.h                              |  118 
 EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_unlock@3x.png                                              |    0 
 EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_list_next@3x.png                                              |    0 
 EZSDK/EZSDK/EZ/UIViewControllers/EZCameraTableViewController.m                                     |    2 
 EZSDK/EZSDK/EZ/TableViewCells/DeviceListCell.h                                                     |    2 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZLeaveMessage.h              |   41 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZStorageInfo.h                               |   23 
 EZSDK/EZSDK/EZ/UIViewControllers/EZCameraTableViewController.h                                     |    2 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZGlobalSDK.h                 | 1059 ++++
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZSADPDeviceInfo.h            |   40 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZProbeDeviceInfo.h                           |   47 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRecordCoverFetcherManager.h                 |   69 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkGlobal.h           |   63 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRecordDownloadTask.h                        |   86 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/Sadp.h                                        |  557 ++
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZAlarmInfo.h                                 |   60 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZHCNetDeviceInfo.h                           |   36 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkSDK.h              |  268 +
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZOpenSDK.h                   |  946 ++++
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConstants.h                                 |  222 +
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZAccessToken.h                               |   19 
 EZSDK/EZSDK/EZ/UIViewControllers/EZDdnsDeviceTableViewController.m                                 |   10 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZBAVParam.h                  |  196 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceCloudServiceInfo.h    |   65 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZCloudRecordDownloadTask.h   |   34 
 EZSDK/EZSDK/EZSDK.h                                                                                |    9 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTransformer.h          |   39 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRecordDownloadTask.h        |   86 
 EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_unlock_disable@3x.png                                      |    0 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Info.plist                                            |    0 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZProbeDeviceInfo.h           |   47 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZWiFiItemInfo.h              |   21 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZCloudRecordFile.h                           |   36 
 EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.m                                     |   11 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConferenceClient.h                          |  238 +
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkView.h                             |   18 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRecordCoverFetcherManager.h |   69 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZTokenKit.h                                  |   40 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoQualityInfo.h          |   23 
 EZSDK/EZSDK/EZ/TableViewCells/CameraListCell.m                                                     |    2 
 EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.h                                     |    4 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceRecordDownloadTask.h  |   39 
 EZSDK/EZSDK/EZ/TableViewCells/CameraListCell.h                                                     |    4 
 EZSDK/EZSDK/EZSDK.m                                                                                |   21 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZSADPDeviceInfo.h                            |   40 
 EZSDK.IOS/EZSDK.IOS/EZSDK.IOS.csproj                                                               |   24 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkSDKDefines.h                       |   17 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZAPDevInfo.h                                 |   23 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalk.h                                 |  179 
 EZSDK/EZSDK/DeviceInfo.h                                                                           |    2 
 EZSDK/EZSDK/EZ/UIViewControllers/EZMessageListViewController.h                                     |    2 
 EZSDK/EZSDK/EZ/UIViewControllers/EZWifiConfigViewController.m                                      |    4 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZAccessToken.h               |   19 
 EZSDK.IOS/EZSDK.IOS/Library/libEZSDK.a                                                             |    0 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZHiddnsDeviceInfo.h          |   84 
 EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_temp_add@2x.png                                               |    0 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZUserInfo.h                  |   23 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRTCVideoEncodeParam.h       |   30 
 EZSDK/EZSDK/EZ/UIViewControllers/EZMultiChannelRealPlayVC.m                                        |    6 
 EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConstants_Auth.h            |   52 
 EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoQualityInfo.h                          |   23 
 175 files changed, 12,522 insertions(+), 243 deletions(-)

diff --git a/EZSDK.IOS/EZSDK.IOS/ApiDefinition.cs b/EZSDK.IOS/EZSDK.IOS/ApiDefinition.cs
index 0db1f41..d88ddba 100644
--- a/EZSDK.IOS/EZSDK.IOS/ApiDefinition.cs
+++ b/EZSDK.IOS/EZSDK.IOS/ApiDefinition.cs
@@ -8,10 +8,10 @@
 	[BaseType(typeof(NSObject))]
 	interface EZSDKDelegate
 	{
-		// @required -(void)addDeviceSuccessed;
+		// @required -(void)addDeviceSuccessed:(NSString *)deviceSerial;
 		[Abstract]
-		[Export("addDeviceSuccessed")]
-		void AddDeviceSuccessed();
+		[Export("addDeviceSuccessed:")]
+		void AddDeviceSuccessed(string deviceSerial);
 	}
 
 	// @interface EZSDK : NSObject
diff --git a/EZSDK.IOS/EZSDK.IOS/EZSDK.IOS.csproj b/EZSDK.IOS/EZSDK.IOS/EZSDK.IOS.csproj
index cc6efcc..8a3d1ed 100644
--- a/EZSDK.IOS/EZSDK.IOS/EZSDK.IOS.csproj
+++ b/EZSDK.IOS/EZSDK.IOS/EZSDK.IOS.csproj
@@ -53,16 +53,26 @@
       <IsCxx>True</IsCxx>
       <ForceLoad>True</ForceLoad>
     </NativeReference>
-    <NativeReference Include="Library\lib\libcrypto.a">
-      <Kind>Static</Kind>
-      <ForceLoad>True</ForceLoad>
-    </NativeReference>
-    <NativeReference Include="Library\lib\libssl.a">
-      <Kind>Static</Kind>
-    </NativeReference>
     <NativeReference Include="Library\lib\FQDateTimeSDK.framework">
       <Kind>Framework</Kind>
     </NativeReference>
+    <NativeReference Include="Library\lib\EZOpenSDKFramework.framework">
+      <Kind>Framework</Kind>
+    </NativeReference>
+  </ItemGroup>
+  <ItemGroup>
+    <BundleResource Include="Resources\hdl_ez_ic_unlock%403x.png" />
+    <BundleResource Include="Resources\hdl_ez_temp_add%403x.png" />
+    <BundleResource Include="Resources\hdl_ez_temp_add%402x.png" />
+    <BundleResource Include="Resources\hdl_ez_ic_unlock%402x.png" />
+    <BundleResource Include="Resources\hdl_ez_ic_nav_back%402x.png" />
+    <BundleResource Include="Resources\hdl_ez_ic_nav_back%403x.png" />
+    <BundleResource Include="Resources\hdl_ez_list_next%403x.png" />
+    <BundleResource Include="Resources\hdl_ez_list_next%402x.png" />
+    <BundleResource Include="Resources\hdl_ez_ic_unlock_disable%403x.png" />
+    <BundleResource Include="Resources\hdl_ez_temp_pass_word%402x.png" />
+    <BundleResource Include="Resources\hdl_ez_temp_pass_word%403x.png" />
+    <BundleResource Include="Resources\hdl_ez_ic_unlock_disable%402x.png" />
   </ItemGroup>
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets" />
 </Project>
\ No newline at end of file
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/EZOpenSDKFramework b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/EZOpenSDKFramework
new file mode 100755
index 0000000..c29f125
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/EZOpenSDKFramework
Binary files differ
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZAPDevInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZAPDevInfo.h
new file mode 100644
index 0000000..d1b5e38
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZAPDevInfo.h
@@ -0,0 +1,23 @@
+//
+//  EZAPDevInfo.h
+//  EZWiFiConfigSDK
+//
+//  Created by yuqian on 2020/7/28.
+//  Copyright 漏 2020 com.ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZAPDevInfo : NSObject
+
+@property (nonatomic, copy) NSString *apVersion;//鐗堟湰锛屽綋鍓峚p鐗堟湰1.0
+@property (nonatomic, copy) NSString *devSubserial;//璁惧搴忓垪鍙凤紝鏈�澶�64
+@property (nonatomic, copy) NSString *devType;//璁惧鍨嬪彿锛屾渶澶�64
+@property (nonatomic, copy) NSString *devFirmwareversion;//璁惧鍥轰欢鐗堟湰鍙凤紝鏈�澶�64
+@property (nonatomic, copy) NSString *macAddr;//璁惧mac鍦板潃
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZAccessToken.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZAccessToken.h
new file mode 100644
index 0000000..21379c3
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZAccessToken.h
@@ -0,0 +1,19 @@
+//
+//  EZAccessToken.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/10/19.
+//  Copyright 漏 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓鸿悿鐭冲紑鏀惧钩鍙版巿鏉冪櫥褰曚互鍚庣殑鍑瘉淇℃伅
+@interface EZAccessToken : NSObject
+
+/// accessToken 鐧诲綍鍑瘉
+@property (nonatomic, copy) NSString *accessToken;
+/// accessToken杩囨湡鐨勬椂闂寸偣,鐩稿浜�1970骞寸殑姣鏁�
+@property (nonatomic, assign) NSInteger expire;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZAlarmInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZAlarmInfo.h
new file mode 100644
index 0000000..9e763ef
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZAlarmInfo.h
@@ -0,0 +1,60 @@
+//
+//  EZAlarmInfo.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/9/16.
+//  Copyright (c) 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓哄憡璀︿俊鎭璞�
+@interface EZAlarmInfo : NSObject
+
+/// 鍛婅ID
+@property (nonatomic, copy) NSString *alarmId;
+/// 璁惧搴忓垪鍙�
+@property (nonatomic, copy) NSString *deviceSerial;
+/// 閫氶亾鍙�
+@property (nonatomic) NSInteger cameraNo;
+/// 鍛婅鍚嶇О
+@property (nonatomic, copy) NSString *alarmName;
+/// 鍛婅鍥剧墖
+@property (nonatomic, copy) NSString *alarmPicUrl;
+/// 鍛婅寮�濮嬫椂闂�
+@property (nonatomic, strong) NSDate *alarmStartTime;
+/// 鍛婅绫诲瀷
+@property (nonatomic) NSInteger alarmType;
+/// 鏄惁鍔犲瘑
+//@property (nonatomic) BOOL isEncrypt;
+
+
+/// 鍛婅鍥剧墖鍔犲瘑淇℃伅 crypt 0-涓嶇‘瀹� 1-璁惧鍔犲瘑 2-骞冲彴鍔犲瘑
+/// 濡傛灉鏄�2锛岃〃鏄庢槸骞冲彴鍔犲瘑鐨勫浘鐗囷紝璇蜂娇鐢ㄤ笅闈㈢殑checksum浣滀负瑙e瘑绉橀挜瑙e瘑鍥剧墖
+/// 濡傛灉鏄�1锛岃〃鏄庢槸璁惧鍔犲瘑鐨勫浘鐗囷紝璇蜂娇鐢ㄨ澶囩殑楠岃瘉鐮佷綔涓鸿В瀵嗙閽ヨВ瀵嗗浘鐗�
+/// 濡傛灉鏄�0锛岃〃鏄庢湭鐭ョ殑鍔犲瘑淇℃伅锛岃閫氳繃涓婇潰鎶ヨ鍥剧墖URL锛坅larmPicUrl锛変腑鐨� isEncrypted 瀛楁锛屽垽鏂浘鐗囨槸 0锛氭湭鍔犲瘑 1锛氳澶囧姞瀵�
+/// 鎶ヨ鍥剧墖鐨刄RL绀轰緥锛�
+/// 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-钀ょ煶鍜宻d鍗★紝6-鐧惧害鍜宻d鍗�
+@property (nonatomic) NSInteger recState;
+/// 鍛婅褰曞儚缁撴潫鏃堕棿鏃堕棿寤跺悗鍋忕Щ閲忥紝閫氳繃alarmStartTime鍔犱笂寤跺悗鍋忕Щ閲忚幏寰楀憡璀﹀綍鍍忕殑鍏蜂綋缁撴潫鏃堕棿
+@property (nonatomic) NSInteger delayTime;
+/// 鍛婅褰曞儚寮�濮嬫椂闂存彁鍓嶅亸绉婚噺锛岄�氳繃alarmStartTime鍑忓幓鎻愬墠鍋忕Щ閲忚幏寰楀憡璀﹀綍鍍忕殑鍏蜂綋寮�濮嬫椂闂�
+@property (nonatomic) NSInteger preTime;
+/// 璁惧鍚嶇О
+@property (nonatomic, copy) NSString *deviceName;
+/// 璁惧澶х被
+@property (nonatomic, copy) NSString *category;
+
+/// 4530 鎵╁睍瀛楁
+@property (nonatomic, copy) NSString *customerType;
+/// 4530 鎵╁睍瀛楁
+@property (nonatomic, copy) NSString *customerInfo;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZAreaInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZAreaInfo.h
new file mode 100644
index 0000000..ebbd210
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZAreaInfo.h
@@ -0,0 +1,19 @@
+//
+//  EZAreaInfo.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 16/7/19.
+//  Copyright 漏 2016骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ゅ璞′负鍖哄煙瀵硅薄锛屾捣澶栧紑鏀惧钩鍙颁笓鐢ㄥ璞�
+@interface EZAreaInfo : NSObject
+
+@property (nonatomic) NSInteger id; ///鍖哄煙ID
+@property (nonatomic, copy) NSString *name; ///鍖哄煙鍚嶇О
+@property (nonatomic, copy) NSString *region; ///鍖哄煙鏍囪瘑
+@property (nonatomic) NSInteger telephoneCode; ///鍖哄煙鎵嬫満鍥介檯鍙�
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZBAVParam.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZBAVParam.h
new file mode 100644
index 0000000..b3d1e94
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZBAVParam.h
@@ -0,0 +1,196 @@
+//
+//  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;                                            //蹇呭~    鍔犲叆鏂筩lientId
+     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 EZRTCJoinParam : NSObject
+@property (nonatomic, assign) int32_t m_iRoomId; /**<蹇呭~    闇�瑕佸姞鍏ユ埧闂村彿 */
+@property (nonatomic, assign) int32_t m_uClientId; /**< 蹇呭~    鍔犲叆鏂筩lientId */
+@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;//蹇呭~    瑙嗛浼氳蹇呭~ 浼氭帶鏈嶅姟绔痥鍙�
+@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 鏄疦PQ锛岃蛋UDP */
+@property (nonatomic, assign) int32_t m_iCltType; /**< 蹇呭~    瀹㈡埛绔被鍨� */
+
+@property (nonatomic, strong) NSString *m_szVcAddr;//蹇呭~    瑙嗛浼氳蹇呭~ 浼氭帶鏈嶅姟鍦板潃
+@property (nonatomic, assign) int32_t m_iVcPort;//蹇呭~    瑙嗛浼氳蹇呭~ 浼氭帶鏈嶅姟绔痥鍙�
+@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;/**< 閫夋嫨  鍙傝�傿AV_QOS_TYPE */
+//
+//@property (nonatomic, assign) int32_t m_iVideo;/**< 閫夋嫨  鏄惁寮�鍚棰慟os 1 寮�鍚� 0 涓嶅紑鍚� */
+//
+//@property (nonatomic, assign) int32_t m_iAudio;/**< 閫夋嫨  鏄惁寮�鍚煶棰慟os 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;//閫夊~  涓夋柟闊宠棰戞椂锛孖PC璁惧闇�瑕佸~鍐�
+@property (nonatomic, assign) int32_t m_iDevStreamType;//閫夊~  璁惧涓诲瓙鐮佹祦
+
+@property (nonatomic, strong) NSString *m_szExtensionParas; /**< 閫夋嫨    鎵╁睍瀛楁淇℃伅 */
+
+
+@end
+
+
+
+/// 涓庝細鑰呬俊鎭�
+@interface EZRTCParticipantsInfo : 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) uint8_t m_iCltType; //鐢ㄤ互鍖哄垎鏄惁鏄澶� 111:璁惧 
+@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 upNetState;//缃戠粶鐘舵��
+@property (nonatomic, assign) int8_t downNetState;//缃戠粶鐘舵��
+
+@end
+
+
+@interface EZRTCParticipantVolume : NSObject
+@property (nonatomic, assign) uint32_t m_uClientId;
+@property (nonatomic, strong) NSString *m_sCustomId;
+@property (nonatomic, assign) uint8_t m_sVolume;    //闊抽噺寮哄害0-10 10涓烘渶寮� 0涓烘渶寮�
+@end
+
+
+@interface EZRTCStatistic : NSObject
+@property (nonatomic, assign) int32_t type;//0锛氬瓙琛� 1锛氫富琛�
+@property (nonatomic, strong) NSDictionary *statisticInfo;
+@end
+
+///鏈湴鐨勯煶瑙嗛缁熻
+@interface EZRTCLocalStatistics : NSObject
+///瑙嗛鎸囨爣鍙傛暟
+@property (nonatomic, assign) uint32_t videoSentBitrate; //瑙嗛浼犺緭鐮佺巼(涓婅)
+@property (nonatomic, assign) uint32_t videoSentFrameRate; //甯х巼澶у皬
+@property (nonatomic, assign) uint16_t videoPacketLossRate; //瑙嗛涓㈠寘鐜�
+@property (nonatomic, assign) uint16_t videoStreamType; //娴佺被鍨�
+///闊抽鎸囨爣鍙傛暟
+@property (nonatomic, assign) uint32_t audioSentBitrate;//闊抽浼犺緭鐮佺巼
+@property (nonatomic, assign) uint16_t audioPacketLossRate;//闊抽涓㈠寘鐜�
+@end
+
+///杩滅鐨勯煶瑙嗛缁熻
+@interface  EZRTCRemoteStatistics : NSObject
+///瑙嗛鎸囨爣鍙傛暟
+@property (nonatomic, assign) uint32_t videoClientId; //杩滅瑙嗛clientId
+@property (nonatomic, assign) uint32_t videoReceivedBitrate;//杩滅瑙嗛浼犺緭鐮佺巼锛堜笅琛岋級
+@property (nonatomic, assign) uint32_t videoReceivedFrameRate;//杩滅甯х巼澶у皬
+@property (nonatomic, assign) uint16_t videoPacketLossRate;//杩滅瑙嗛涓㈠寘鐜�(涓嬭)
+@property (nonatomic, assign) uint16_t videoTotalFrozenTime;//杩滅瑙嗛鎬荤殑鍗¢】鏃堕暱
+@property (nonatomic, assign) uint16_t videoFrozenRate; //杩滅瑙嗛鍗¢】姣�
+@property (nonatomic, assign) uint16_t streamType; //杩滅娴佺被鍨�
+///闊抽鎸囨爣鍙傛暟
+@property (nonatomic, assign) uint32_t audioClientId; //杩滅闊抽clientId
+@property (nonatomic, assign) uint32_t audioReceivedBitrate;//杩滅闊抽浼犺緭鐮佺巼锛堜笅琛岋級
+@property (nonatomic, assign) uint16_t audioPacketLossRate;//杩滅闊抽涓㈠寘鐜�(涓嬭)
+@property (nonatomic, assign) uint16_t audioTotalFrozenTime;//杩滅闊抽鎬荤殑鍗¢】鏃堕暱
+@property (nonatomic, assign) uint16_t audioFrozenRate; //杩滅闊抽鍗¢】姣�
+
+@end
+
+@interface EZRTCVideoSize : NSObject
+
+@property (nonatomic, assign) int width;//瀹�
+@property (nonatomic, assign) int height;//楂�
+
+@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 EZBAVMessageStatistic;
+
+extern int32_t const EZBAVForcedQuitReasonRepeatJoin;//宸插湪鍏朵粬鍦版柟鍔犲叆鎴块棿
+extern int32_t const EZBAVForcedQuitReasonMovedOut;//琚鐞嗗憳绉诲嚭鎴块棿
+extern int32_t const EZBAVForcedQuitReasonRoomDissolved;//鎴块棿瑙f暎
+
+extern int32_t const  EZBAVMessageLocalVideoStats;//缁熻鏈湴瑙嗛瀹炴椂鏁版嵁
+extern int32_t const  EZBAVMessageLocalAudioStats;//缁熻鏈湴闊抽瀹炴椂鏁版嵁
+extern int32_t const  EZBAVMessageRemoteVideoStats;//缁熻杩滅瑙嗛瀹炴椂鏁版嵁
+extern int32_t const  EZBAVMessageRemoteAudioStats;//缁熻杩滅闊抽瀹炴椂鏁版嵁
+
+
+
+typedef void(^EZAudioOpenResultBlock)(NSInteger ret);
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZCameraInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZCameraInfo.h
new file mode 100644
index 0000000..9054b1e
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZCameraInfo.h
@@ -0,0 +1,35 @@
+//
+//  EZCameraInfo.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/9/15.
+//  Copyright (c) 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓洪�氶亾淇℃伅瀵硅薄
+@interface EZCameraInfo : NSObject
+
+/// 鎽勫儚澶村悕绉�
+@property (nonatomic, copy) NSString *cameraName;
+/// 閫氶亾鍙�
+@property (nonatomic) NSInteger cameraNo;
+/// 璁惧搴忓垪鍙�
+@property (nonatomic, copy) NSString *deviceSerial;
+/// 鍒嗕韩鐘舵�侊細0銆佹湭鍒嗕韩锛�1銆佸垎浜墍鏈夎�咃紝2銆佸垎浜帴鍙楄�咃紙琛ㄧず姝ゆ憚鍍忓ご鏄埆浜哄垎浜粰鎴戠殑锛�
+@property (nonatomic) NSInteger isShared;
+/// 閫氶亾灏侀潰
+@property (nonatomic, copy) NSString *cameraCover;
+/// 瑙嗛璐ㄩ噺锛�0-娴佺晠锛�1-鍧囪 锛�2-楂樻竻锛�3-瓒呮竻
+@property (nonatomic) NSInteger videoLevel;
+//鏉冮檺
+@property (nonatomic) NSInteger permission;
+/// 閫氶亾鏀寔鐨勬竻鏅板害淇℃伅鍒楄〃锛孍ZVideoQualityInfo瀵硅薄鍒楄〃銆�(/api/device/list 杩斿洖鐨�"videoQualityInfos" 鏈夎锛屼互/api/device/detail 鎺ュ彛杩斿洖涓哄噯)
+@property (nonatomic, strong) NSArray *videoQualityInfos;
+
+/// 璁惧鏄惁寮�鍚姞瀵�
+@property (nonatomic) BOOL isEncrypt;
+/// 璁惧鐘舵�侊紝1-鍦ㄧ嚎锛�2-涓嶅湪绾�
+@property (nonatomic) NSInteger status;
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZCloudRecordDownloadTask.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZCloudRecordDownloadTask.h
new file mode 100644
index 0000000..174ee40
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZCloudRecordDownloadTask.h
@@ -0,0 +1,34 @@
+//
+//  EZCloudRecordDownloadTask.h
+//  EZOpenSDK
+//
+//  Created by yuqian on 2019/7/2.
+//  Copyright 漏 2019 Ezviz. All rights reserved.
+//
+
+#import "EZRecordDownloadTask.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class EZCloudRecordFile;
+
+@interface EZCloudRecordDownloadTask : EZRecordDownloadTask
+
+/**
+ 浜戝瓨鍌ㄥ綍鍍忎笅杞戒换鍔″垵濮嬪寲銆�
+ 涓嬭浇鐨勫綍鍍忎负PS鏂囦欢锛屽闇�杞崲MP4锛岃鑷璋冪敤EZVideoTransformer绫荤殑杞皝瑁呮柟娉�
+ 
+ @param taskID 涓嬭浇浠诲姟鍞竴鏍囪瘑ID
+ @param recordFile 浜戝瓨鍌ㄥ綍鍍忔枃浠�
+ @param verifyCode 璁惧楠岃瘉鐮�
+ @param savePath 涓嬭浇瀛樺偍璺緞
+ @return 鍒濆鍖栨垚鍔熻繑鍥炲疄渚嬶紝澶辫触杩斿洖nil
+ */
+- (instancetype) initTaskWithID:(NSUInteger)taskID
+                cloudRecordFile:(EZCloudRecordFile *)recordFile
+                     verifyCode:(NSString *)verifyCode
+                       savePath:(NSString *)savePath;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZCloudRecordFile.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZCloudRecordFile.h
new file mode 100644
index 0000000..f8c693f
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZCloudRecordFile.h
@@ -0,0 +1,36 @@
+//
+//  EZCloudFile.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/9/17.
+//  Copyright (c) 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓轰簯瀛樺偍褰曞儚鏂囦欢瀵硅薄
+@interface EZCloudRecordFile : NSObject
+
+/// 璁惧搴忓垪鍙�
+@property (nonatomic, copy) NSString *deviceSerial;
+/// 璁惧閫氶亾鍙�
+@property (nonatomic, assign) NSInteger cameraNo;
+/// 浜戝瓨鍌ㄥ綍鍍忔枃浠禝d
+@property (nonatomic, copy) NSString *fileId;
+/// 浜戝瓨鍌ㄥ綍鍍忔枃浠跺紑濮嬫椂闂�
+@property (nonatomic, strong) NSDate *startTime;
+/// 浜戝瓨鍌ㄥ綍鍍忔枃浠剁粨鏉熸椂闂�
+@property (nonatomic, strong) NSDate *stopTime;
+/// 浜戝瓨鍌ㄥ綍鍍忔埅鍥惧湴鍧�
+@property (nonatomic, copy) NSString *coverPic;
+/// 浜戝瓨鍌ㄥ綍鍍忎笅杞藉湴鍧�
+@property (nonatomic, copy) NSString *downloadPath;
+/// 浜戝瓨鍌ㄥ浘鐗囧姞瀵嗗瘑鐮侊紝濡傛灉鏄痆NSNull null]鎴栬�卬il鎸囬拡鍒欏浘鐗囦笉鍔犲瘑
+@property (nonatomic, copy) NSString *encryption;
+/// 鏂囦欢澶у皬
+@property (nonatomic, assign) NSUInteger fileSize;
+
+@property (nonatomic, assign) int32_t istorageVersion; //浜戝瓨鍌ㄧ被鍒�:1 鍗曟枃浠跺瓨鍌ㄦā寮忥紱2 杩炵画瀛樺偍妯″紡锛�3 寰呭畾
+@property (nonatomic, assign) int32_t videoType;//浜戝瓨鍌ㄥ綍鍍忕被鍨嬶紝榛樿涓�0锛岃〃绀轰笉灞炰簬浜戝瓨鍌ㄥ綍鍍�
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConferenceClient.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConferenceClient.h
new file mode 100644
index 0000000..43d478e
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConferenceClient.h
@@ -0,0 +1,238 @@
+//
+//  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 "EZRTCMediaSessionDefines.h"
+#import "EZVideoTalkView.h"
+
+
+
+@class EZConferenceClient;
+@class EZRTCCameraParam;
+@class EZRTCVideoEncodeParam;
+
+@protocol EZConferenceClientDelegate<NSObject>
+
+
+/// 閿欒鍥炶皟
+/// @param client client
+/// @param errorCode 鍑洪敊鐨勯敊璇爜
+- (void)bavClient:(EZConferenceClient *)client didReceivedError:(int32_t)errorCode;
+
+/**
+ 鍥炶皟娑堟伅
+
+ @param client client
+ @param messageCode 娑堟伅鐮� 鍙傝EZBAVMessage
+ @param msg 闄勫姞淇℃伅锛�
+    濡傛灉鏄疎ZBAVMessagePeerEnteredRoom锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄锛屼絾鏄彧鏈塵_uClientId銆乵_szUserName瀛楁鏈夋晥
+    濡傛灉鏄疎ZBAVMessagePeerLeaveRoom娑堟伅锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄锛屼絾鏄彧鏈塵_uClientId瀛楁鏈夋晥
+    濡傛灉鏄疎ZBAVMessageClientVolume娑堟伅锛宮sg鏄疎ZBAVParticipantVolume瀵硅薄
+    濡傛灉娑堟伅鏄� EZBAVMessageTransferData msg鏄� msg鏄瓧绗︿覆 @"瀹為檯鐨勯�忎紶娑堟伅"
+    濡傛灉娑堟伅鏄疎ZBAVMessageClientAudioAvailable锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄锛屼絾鏄彧鏈塵_uClientId鍜宎udioState瀛楁鏈夋晥
+    濡傛灉娑堟伅鏄疎ZBAVMessageClientVideoAvailable 锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄锛屼絾鏄彧鏈塵_uClientId鍜寁ideoState瀛楁鏈夋晥
+    濡傛灉娑堟伅鏄疎ZBAVMessageNetworkQuality 锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄锛屼絾鏄彧鏈塵_uClientId鍜宯etState瀛楁鏈夋晥
+    濡傛灉娑堟伅鏄疎ZBAVMessageJoinRoomOK 锛宮sg鏄痭il
+    濡傛灉娑堟伅鏄疎ZBAVMessageForcedQuit 锛宮sg鏄疦SNumber锛屾瘮濡侤(EZBAVForcedQuitReasonMovedOut)
+    濡傛灉娑堟伅鏄疎ZBAVMessageStatistic锛宮sg鏄疎ZRTCStatistic
+ 
+ */
+- (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;
+
+/**
+ 鏈湴瑙嗛鏁版嵁鍥炶皟
+ 
+ @param localVideoStatistics 瑙嗛鐩稿叧鍙傛暟
+ @param width    瀹藉害
+ @param height  楂樺害
+ */
+- (void)onLocalVideoStats:(EZRTCLocalStatistics *)localVideoStatistics width:(int)width height:(int)height;
+
+/**
+ 鏈湴闊抽鏁版嵁鍥炶皟
+ 
+ @param localAudioStatistics 闊抽鐩稿叧鍙傛暟
+ */
+- (void)onLocalAudioStats:(EZRTCLocalStatistics *)localAudioStatistics;
+
+/**
+ 杩滅瑙嗛鏁版嵁鍥炶皟
+ 
+ @param remoteVideoStatistics 瑙嗛鐩稿叧鍙傛暟
+ @param width    瀹藉害
+ @param height  楂樺害
+ */
+- (void)onRemoteVideoStats:(EZRTCRemoteStatistics *)remoteVideoStatistics width:(int)width height:(int)height;
+
+/**
+ 杩滅闊抽鏁版嵁鍥炶皟
+ 
+ @param remoteAudioStatistics 闊抽鐩稿叧鍙傛暟
+ */
+- (void)onRemoteAudioStats:(EZRTCRemoteStatistics *)remoteAudioStatistics;
+
+
+@end
+
+@interface EZConferenceClient : NSObject
+
+@property (nonatomic, weak) id<EZConferenceClientDelegate> delegate;
+@property (nonatomic, assign, readonly) int32_t roomID;
+@property (nonatomic, assign, readonly) int32_t clientID;
+
+
+/**
+ 瀵硅鏃讹紝寮哄埗閲囩敤鎵0鍣ㄦ挱鏀惧0闊筹紝榛樿涓篩ES
+ */
+@property (nonatomic, assign) BOOL forceToSpeaker;
+
+
+/// 鍒濆鍖栬棰戦�氳瘽SDK瀵硅薄
+- (instancetype)init;
+
+/// 鍔犲叆浼氳锛堟柊鎺ュ彛锛�
+/// @param param 鍙傛暟
+- (NSInteger)enterRoom:(EZRTCJoinParam *)param;
+
+
+/// 閫�鍑轰細璁�
+- (NSInteger)exitRoom;
+
+
+/// 瑙f暎浼氳锛岃В鏁e悗锛屽叾浠栦笌浼氳�呬細鏀跺埌浼氳琚В鏁f秷鎭�
+- (void)dissolveRoom;
+
+/// 鏈湴鎽勫儚澶村紑鍚�/鍏抽棴鎺ュ彛
+/// @param enable 鏄惁寮�鍚憚鍍忓ご
+- (NSInteger)enableLocalVideo:(BOOL)enable;
+
+/// 璁剧疆鏈湴鐨勯瑙堢獥鍙�
+/// @param localWin 绐楀彛window
+- (void)setLocalView:(nullable EZVideoTalkView *)localWin;
+
+/// 鏈湴楹﹀厠椋庡紑鍚�/鍏抽棴鎺ュ彛
+/// @param enable 鏄惁寮�鍚害鍏嬮
+/// @param block 涓荤嚎绋嬪洖璋冪粨鏋�
+- (void)enableLocalAudio:(BOOL)enable withResultBlock:(EZAudioOpenResultBlock)block;
+
+/// 鏄惁寮�鍚緟娴侊紝杈呮祦鍒嗚鲸鐜囨洿浣庛�佺爜鐜囨洿灏�
+/// @param enable 鏄惁寮�鍚�
+/// @param encodeParam 缂栫爜鍙傛暟锛屽彲浠ヤ紶鍏il
+- (NSInteger)enableLocalSmallVideo:(BOOL)enable;
+
+
+/// 寮�鍚睆骞曞叡浜�
+/// @param name 鍏变韩鍚嶇О
+/// @param resultBlock 灞忓箷鍏变韩缁撴灉鍥炶皟
+/// @param didFinishBlock 灞忓箷鍏变韩缁撴潫鍥炶皟锛屽湪姝e父鐨勫睆骞曞叡浜粨鏉熺粨鏉熷悗鍥炶皟
+- (void)startScreenShareWithName:(NSString *)name
+                 withResultBlock:(EZScreenShareResultBlock)resultBlock
+                   andEndedBlock:(dispatch_block_t)didFinishBlock;
+
+
+/// 缁撴潫灞忓箷鍏变韩
+- (void)stopScreenShare;
+
+
+/// 璁剧疆杩滅▼绐楀彛锛�1.蹇呴』鍦ㄦ嬁鍒拌繙绔鎴风鍔犲叆鐨勬秷鎭悗璁剧疆锛�2.蹇呴』鍦ㄤ富绾跨▼璋冪敤
+/// @param window 鎾斁绐楀彛
+/// @param clientID 鍔犲叆鐨勫鎴风鐨処D
+/// @param streamType 1瑙嗛 4灏忔祦
+- (int32_t)setRemoteView:(nullable UIView *)window ofClient:(int32_t)clientID withStream:(NSInteger)streamType;
+
+/// 璁剧疆瑙傜湅灞忓箷鍏变韩鐨勭獥鍙�,蹇呴』鍦ㄤ富绾跨▼璋冪敤
+/// @param view 绐楀彛
+- (int32_t)setScreenShareView:(UIView *_Nullable)view;
+
+
+/// 閭�璇疯澶囧姞鍏ヤ細璁�
+/// @param dev 璁惧淇℃伅
+- (int32_t)inviteDev:(EZBAVDevInfo *_Nonnull)dev;
+
+
+/// 鍒囨崲瀵硅鏃朵娇鐢ㄧ殑鎽勫儚澶达紝榛樿閲囩敤鍓嶇疆 鍚屾鎺ュ彛
+/// @param backCameraSelected YES:閫夋嫨鍚庣疆锛孨O:閫夋嫨鍓嶇疆
+- (int32_t)switchCamera:(BOOL)backCameraSelected;
+
+
+- (EZRTCStatistic *_Nullable)getStatistic;
+
+#pragma 闄勫姞鎺ュ彛
+
+/// 寮�鍏充細璁腑鏌愪釜涓庝細鑰呯殑澹伴煶锛岄粯璁ゅ紑
+/// @param open YES:寮�锛孨O:鍏�
+- (int32_t)soundCtrl:(BOOL)open forClient:(int32_t)clientID;
+
+
+
+/// 寮傛鑾峰彇鏈湴鎶撳浘
+/// @param block 鎶撳浘鎴愬姛鍥炶皟锛屽け璐mage涓簄il
+//- (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;
+
+
+/// 鍙戦�侀�忎紶娑堟伅鎺ュ彛锛屽悓姝ユ帴鍙o紝鍙兘鑰楁椂
+/// @param msg 娑堟伅鍐呭锛屾瘮濡俲son鏁版嵁
+- (int)sendTransferMsg:(NSString *)msg;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConfigTokenInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConfigTokenInfo.h
new file mode 100644
index 0000000..9b9a949
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConfigTokenInfo.h
@@ -0,0 +1,21 @@
+//
+//  EZConfigTokenInfo.h
+//  EZWiFiConfigSDK
+//
+//  Created by yuqian on 2020/7/30.
+//  Copyright 漏 2020 com.ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZConfigTokenInfo : NSObject
+
+@property (nonatomic, copy) NSString *userId;
+@property (nonatomic, copy) NSString *token;
+@property (nonatomic, copy) NSString *lbsDomain;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConstants.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConstants.h
new file mode 100644
index 0000000..edc3b24
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConstants.h
@@ -0,0 +1,222 @@
+//
+//  EZConstants.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 16/7/20.
+//  Copyright 漏 2016骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+//钀ょ煶寮�鏀惧钩鍙板鎵樻柟娉�
+@protocol EZOpenSDKDelegate <NSObject>
+
+@optional
+
+/**
+ 钀ょ煶鐧诲綍鏄惁鎴愬姛
+ 
+ @param result 鏄惁鎴愬姛
+ */
+- (void)ezvizLoginResult:(BOOL)result;
+
+@end
+
+/* EZOpenSDK鐨勯敊璇畾涔� */
+typedef NS_ENUM(NSInteger, EZErrorCode) {
+    /**
+     *  瀵硅閿欒鐮�
+     */
+    EZ_DEVICE_TTS_REQUEST_TIMEOUT = 360001,           //瀹㈡埛绔姹傝秴鏃�
+    EZ_DEVICE_TTS_TALKING_TIMEOUT = 360002,           //瀵硅鍙戣捣瓒呮椂
+    EZ_DEVICE_TTS_DEVICE_CONNECT_ERROR = 360003,      //TTS鐨勮澶囩鍙戠敓閿欒
+    EZ_DEVICE_TTS_INTER_ERROR = 360004,               //TTS鍐呴儴鍙戠敓閿欒
+    EZ_DEVICE_TTS_SEND_ERROR = 360005,                //瀹㈡埛绔彂閫佺殑娑堟伅閿欒
+    EZ_DEVICE_TTS_RECEIVE_ERROR = 360006,             //瀹㈡埛绔帴鏀跺彂鐢熼敊璇�
+    EZ_DEVICE_TTS_CLOSE_CONNECT = 360007,             //TTS鍏抽棴浜嗕笌瀹㈡埛绔殑杩炴帴
+    EZ_DEVICE_TTS_TALKING = 360010,                   //璁惧姝e湪瀵硅涓�
+    EZ_DEVICE_TTS_PRIVACY_PROTECT = 360013,           //璁惧寮�鍚簡闅愮淇濇姢
+    EZ_DEVICE_TTS_INIT_ERROR = 360102,                //TTS鍒濆鍖栧け璐�
+    
+    
+    /**
+     *  鍙栨祦閿欒鐮�
+     */
+    EZ_DEVICE_IS_PRIVACY_PROTECTING = 380011,         //璁惧闅愮淇濇姢涓�
+    EZ_DEVICE_CONNECT_COUNT_LIMIT = 380045,           //璁惧鐩磋繛鍙栨祦杩炴帴鏁伴噺杩囧ぇ
+    EZ_DEVICE_COMMAND_NOT_SUPPORT = 380047,           //璁惧涓嶆敮鎸佽鍛戒护
+    EZ_DEVICE_CAS_TALKING = 380077,                   //璁惧姝e湪瀵硅涓�
+    EZ_DEVICE_CAS_REC_ERROR = 380102,                 //鏁版嵁鎺ユ敹寮傚父
+    EZ_DEVICE_CAS_PARSE_ERROR = 380205,               //璁惧妫�娴嬪叆鍙傚紓甯�
+    EZ_PLAY_TIMEOUT = 380209,                         //缃戠粶杩炴帴瓒呮椂
+    EZ_DEVICE_TIMEOUT = 380212,                       //璁惧绔綉缁滆繛鎺ヨ秴鏃�
+    EZ_STREAM_CLIENT_TIMEOUT = 390038,                //鍚屾椂`390037`鎵嬫満缃戠粶寮曡捣鐨勫彇娴佽秴鏃�
+    EZ_STREAM_CLIENT_NOT_FIND_FILE = 395402,          //鍥炴斁鎵句笉鍒板綍鍍忔枃浠讹紝妫�鏌ヤ紶鍏ョ殑鍥炴斁鏂囦欢鏄惁姝g‘
+    EZ_STREAM_CLIENT_OFFLINE = 395404,                //璁惧涓嶅湪绾�
+    EZ_STREAM_CLIENT_TOKEN_INVALID = 395406,          //鍙栨祦token楠岃瘉澶辨晥
+    EZ_STREAM_CLIENT_PRIVACY_PROTECT = 395409,        //棰勮寮�鍚殣绉佷繚鎶�,鍙互鍦ㄨ悿鐭充簯APP涓叧闂�
+    EZ_STREAM_CLIENT_DEVICE_COUNT_LIMIT = 395410,     //璁惧杩炴帴鏁拌繃澶�,鏈夎繃澶氱殑缁堢姝e湪瀵硅璁惧杩涜鍙栨祦鎿嶄綔
+    EZ_STREAM_CLIENT_TOKEN_LIMIT  = 395411,           //token鏃犳潈闄�
+    EZ_STREAM_CLIENT_CAMERANO_ERROR = 395415,         //璁惧閫氶亾閿�
+    EZ_STREAM_CLIENT_TYPE_UNSUPPORT = 395451,         //璁惧涓嶆敮鎸佺殑鐮佹祦绫诲瀷
+    EZ_STREAM_CLIENT_CONNECT_SERVER_ERROR = 395452,   //璁惧杩炴帴棰勮娴佸獟浣撴湇鍔″櫒澶辫触
+    EZ_STREAM_CLIENT_SESSION_NOT_EXIST = 395454,      //浼氳瘽涓嶅瓨鍦�
+    EZ_STREAM_CLIENT_SAME_REQUEST = 395491,           //鐩稿悓璇锋眰姝e湪澶勭悊锛屾嫆缁濇湰娆″鐞�
+    EZ_STREAM_CLIENT_INNER_ERROR = 395500,            //娴佸獟浣撴湇鍔″櫒鍐呴儴澶勭悊閿欒
+    EZ_STREAM_CLIENT_NO_SOURCE = 395544,              //璁惧杩斿洖鏃犺棰戞簮
+    EZ_STREAM_CLIENT_VIDEO_OUT_SHARE_TIME = 395545,   //瑙嗛鍒嗕韩鏃堕棿宸茬粡缁撴潫
+    EZ_STREAM_CLIENT_LIMIT = 395546,                  //璁惧鍙栨祦鍙楀埌闄愬埗锛屽崌绾т紒涓氱増鍙斁寮�闄愬埗
+    EZ_STREAM_CLIENT_DEVICE_OUT_SHARE_TIME = 395600,  //鍒嗕韩璁惧涓嶅湪鍒嗕韩鏃堕棿鍐�
+    
+    /**
+     *  HTTP 閿欒鐮�
+     */
+    EZ_HTTPS_PARAM_ERROR = 110001,                    //璇锋眰鍙傛暟閿欒
+    EZ_HTTPS_ACCESS_TOKEN_INVALID = 110002,           //AccessToken鏃犳晥
+    EZ_HTTPS_ACCESS_TOKEN_EXPIRE = 110003,            //AccessToken杩囨湡
+    EZ_HTTPS_REGIST_USER_NOT_EXSIT = 110004,          //娉ㄥ唽鐢ㄦ埛涓嶅瓨鍦�
+    EZ_HTTPS_APPKEY_ERROR = 110005,                   //AppKey寮傚父
+    EZ_HTTPS_IP_LIMIT = 110006,                       //ip鍙楅檺
+    EZ_HTTPS_INVOKE_LIMIT = 110007,                   //璋冪敤娆℃暟杈惧埌涓婇檺
+    EZ_HTTPS_USER_BINDED = 110012,                    //绗笁鏂硅处鎴蜂笌钀ょ煶璐﹀彿宸茬粡缁戝畾
+    EZ_HTTPS_APPKEY_IS_NULL = 110017,                 //AppKey涓嶅瓨鍦�
+    EZ_HTTPS_APPKEY_NOT_MATCHED = 110018,             //AppKey涓嶅尮閰嶏紝璇锋鏌ユ湇鍔$璁剧疆鐨刟ppKey鏄惁鍜孲DK浣跨敤鐨刟ppKey涓�鑷�
+    EZ_HTTPS_CAMERA_NOT_EXISTS = 120001,              //閫氶亾涓嶅瓨鍦紝璇锋鏌ユ憚鍍忓ご璁惧鏄惁閲嶆柊娣诲姞杩�
+    EZ_HTTPS_DEVICE_NOT_EXISTS = 120002,              //璁惧涓嶅瓨鍦�
+    EZ_HTTPS_DEVICE_NETWORK_ANOMALY = 120006,         //缃戠粶寮傚父
+    EZ_HTTPS_DEVICE_OFFLINE = 120007,                 //璁惧涓嶅湪绾�
+    EZ_HTTPS_DEIVCE_RESPONSE_TIMEOUT = 120008,        //璁惧璇锋眰鍝嶅簲瓒呮椂寮傚父
+    EZ_HTTPS_DEVICE_VALICATECODE_ERROR = 120010,      //璁惧楠岃瘉鐮侀敊璇�
+    EZ_HTTPS_ILLEGAL_DEVICE_SERIAL = 120014,          //涓嶅悎娉曠殑搴忓垪鍙�
+    EZ_HTTPS_DEVICE_STORAGE_FORMATTING = 120016,      //璁惧姝e湪鏍煎紡鍖栫鐩�
+    EZ_HTTPS_DEVICE_ADDED_MYSELF = 120017,            //鍚宍120020`璁惧宸茬粡琚嚜宸辨坊鍔�
+    EZ_HTTPS_USER_NOT_OWN_THIS_DEVICE = 120018,       //璇ョ敤鎴蜂笉鎷ユ湁璇ヨ澶�
+    EZ_HTTPS_DEVICE_UNSUPPORT_CLOUD = 120019,         //璁惧涓嶆敮鎸佷簯瀛樺偍鏈嶅姟
+    EZ_HTTPS_DEVICE_ONLINE_ADDED = 120020,            //璁惧鍦ㄧ嚎锛岃鑷繁娣诲姞
+    EZ_HTTPS_DEVICE_ONLINE_NOT_ADDED = 120021,        //璁惧鍦ㄧ嚎锛屾湭琚敤鎴锋坊鍔�
+    EZ_HTTPS_DEVICE_ONLINE_IS_ADDED = 120022,         //璁惧鍦ㄧ嚎锛屽凡缁忚鍒殑鐢ㄦ埛娣诲姞
+    EZ_HTTPS_DEVICE_OFFLINE_NOT_ADDED = 120023,       //璁惧涓嶅湪绾匡紝鏈鐢ㄦ埛娣诲姞
+    EZ_HTTPS_DEVICE_OFFLINE_IS_ADDED = 120024,        //璁惧涓嶅湪绾匡紝宸茬粡琚埆鐨勭敤鎴锋坊鍔�
+    EZ_HTTPS_DEVICE_OFFLINE_IS_ADDED_MYSELF = 120029, //璁惧涓嶅湪绾匡紝浣嗘槸宸茬粡琚嚜宸辨坊鍔�
+    EZ_HTTPS_DEVICE_BUNDEL_STATUS_ON = 120031,        //鍚屾椂`106002`閿欒鐮佷篃鏄紝璁惧寮�鍚簡缁堢缁戝畾锛岃鍒拌悿鐭充簯瀹㈡埛绔叧闂粓绔粦瀹�
+    EZ_HTTPS_OPERATE_LEAVE_MSG_FAIL = 120202,         //鎿嶄綔鐣欒█娑堟伅澶辫触
+    EZ_HTTPS_SERVER_DATA_ERROR = 149999,              //鏁版嵁寮傚父
+    EZ_HTTPS_SERVER_ERROR = 150000,                   //鏈嶅姟鍣ㄥ紓甯�
+    EZ_HTTPS_CLOUD_DELETE_ALL_EXCEPT_LAST = 150002,   //浜戝瓨鍌ㄨ棰戝垹闄ゅ畬鎴愶紝闄や簡鏈�鍚庝竴涓湪褰曞埗鐨勮棰戞棤娉曞垹闄�
+    EZ_HTTPS_DEVICE_PTZ_NOT_SUPPORT = 160000,         //璁惧涓嶆敮鎸佷簯鍙版帶鍒�
+    EZ_HTTPS_DEVICE_PTZ_NO_PERMISSION = 160001,       //鐢ㄦ埛娌℃湁鏉冮檺鎿嶄綔浜戝彴鎺у埗
+    EZ_HTTPS_DEVICE_PTZ_UPPER_LIMIT = 160002,         //浜戝彴杈惧埌涓婇檺浣嶏紙椤堕儴锛�
+    EZ_HTTPS_DEVICE_PTZ_FLOOR_LIMIT = 160003,         //浜戝彴杈惧埌涓嬮檺浣嶏紙搴曢儴锛�
+    EZ_HTTPS_DEVICE_PTZ_LEFT_LIMIT = 160004,          //浜戝彴杈惧埌宸﹂檺浣嶏紙鏈�宸﹁竟锛�
+    EZ_HTTPS_DEVICE_PTZ_RIGHT_LIMIT = 160005,         //浜戝彴杈惧埌鍙抽檺浣嶏紙鏈�鍙宠竟锛�
+    EZ_HTTPS_DEVICE_PTZ_FAILED = 160006,              //浜戝彴鎿嶄綔澶辫触
+    EZ_HTTPS_DEVICE_PTZ_RESETING = 160009,            //浜戝彴姝e湪璋冪敤棰勭疆鐐�
+    EZ_HTTPS_DEVICE_COMMAND_NOT_SUPPORT = 160020,     //璁惧鎶撳浘澶辫触锛屼笉鏀寔鎶撳浘
+    
+    /**
+     *  鎺ュ彛 閿欒鐮�(SDK鏈湴鏍¢獙)
+     */
+    EZ_SDK_PARAM_ERROR = 400002,                      //鎺ュ彛鍙傛暟閿欒
+    EZ_SDK_NOT_SUPPORT_TALK = 400025,                 //璁惧涓嶆敮鎸佸璁�
+    EZ_SDK_TIMEOUT = 400034,                          //鏃犳挱鏀総oken锛岃stop鍐峴tart鎾斁鍣�
+    EZ_SDK_NEED_VALIDATECODE = 400035,                //闇�瑕佽澶囬獙璇佺爜
+    EZ_SDK_VALIDATECODE_NOT_MATCH = 400036,           //璁惧楠岃瘉鐮佷笉鍖归厤
+    EZ_SDK_DECODE_TIMEOUT = 400041,                   //瑙g爜瓒呮椂锛屽彲鑳芥槸楠岃瘉鐮侀敊璇�
+    EZ_SDK_STREAM_TIMEOUT = 400015,                   //鍙栨祦瓒呮椂,璇锋鏌ユ墜鏈虹綉缁�
+    EZ_SDK_PLAYBACK_STREAM_TIMEOUT = 400409,          //鍥炴斁鍙栨祦瓒呮椂,璇锋鏌ユ墜鏈虹綉缁�
+    
+    /**
+     *  NPC鍙栨祦閿欒鐮�
+     */
+    EZ_NPC_CLIENT_PARAMETER_ERROR = 500001,           //鍙傛暟閿欒
+    EZ_NPC_CLIENT_ORDER_ERROR = 500002,               //璋冪敤椤哄簭鍑洪敊
+    EZ_NPC_CLIENT_MEMORY_ERROR = 500003,              //鍒嗛厤鍐呭瓨澶辫触
+    EZ_NPC_CLIENT_BUFFER_OVERFLOW_ERROR = 500004,     //缂撳啿鍖烘孩鍑�
+    EZ_NPC_CLIENT_SYSTEM_NO_SUPPORT_ERROR = 500005,   //绯荤粺涓嶆敮鎸�
+    EZ_NPC_CLIENT_INVALID_PORT_ERROR = 500006,        //鏃犳晥绔彛
+    EZ_NPC_CLIENT_STREAM_CLOSE_ERROR = 500101,        //娴佸叧闂�
+    EZ_NPC_CLIENT_TRACK_CLOSE_ERROR = 500102,         //TRACK_CLOSE
+    EZ_NPC_CLIENT_NPCCREATE_ERROR = 500103,           //鍒涘缓澶辫触
+    EZ_NPC_CLIENT_TRSCREATE_ERROR = 500104,           //TRSCREATE_ERROR
+    EZ_NPC_CLIENT_FAIL_UNKNOWN_ERROR = 509999,        //FAIL_UNKNOWN
+};
+
+/* 璁惧ptz鍛戒护锛屽畾涔夌殑鍊间笌Android瀹氫箟鐨勪笉涓�鏍凤紝SDK浼氬湪鍐呴儴浼氬仛涓�灞傝浆鎹� */
+typedef NS_OPTIONS(NSUInteger, EZPTZCommand) {
+    EZPTZCommandLeft            = 1 << 0, //鍚戝乏鏃嬭浆
+    EZPTZCommandRight           = 1 << 1, //鍚戝彸鏃嬭浆
+    EZPTZCommandUp              = 1 << 2, //鍚戜笂鏃嬭浆
+    EZPTZCommandDown            = 1 << 3, //鍚戜笅鏃嬭浆
+    EZPTZCommandZoomIn          = 1 << 4, //闀滃ご鎷夎繘
+    EZPTZCommandZoomOut         = 1 << 5, //闀滃ご鎷夎繙
+};
+
+/*
+ * 璁惧鏄剧ず鍛戒护
+ */
+typedef NS_OPTIONS(NSUInteger, EZDisplayCommand) {
+    EZDisplayCommandCenter          = 1 << 0, //鏄剧ず涓棿
+};
+
+/**
+ *  璁惧ptz鍔ㄤ綔鍛戒护
+ */
+typedef NS_ENUM(NSInteger, EZPTZAction) {
+    EZPTZActionStart = 1, //ptz寮�濮�
+    EZPTZActionStop = 2   //ptz鍋滄
+};
+
+/* 娑堟伅鐘舵�� */
+typedef NS_ENUM(NSInteger, EZMessageStatus) {
+    EZMessageStatusRead = 1,    //宸茶
+};
+
+/* 娑堟伅绫诲瀷 */
+typedef NS_ENUM(NSInteger, EZMessageType)
+{
+    EZMessageTypeAlarm = 1,   //鍛婅绫诲瀷
+    EZMessageTypeLeave,       //鐣欒█绫诲瀷
+};
+
+/* 鐣欒█娑堟伅绫诲瀷 */
+typedef NS_ENUM(NSInteger, EZLeaveMessageType)
+{
+    EZLeaveMessageTypeAll,    //鍏ㄩ儴
+    EZLeaveMessageTypeVoice,  //璇煶绫�
+    EZLeaveMessageTypeVideo,  //瑙嗛绫�
+};
+
+/* 璁惧甯冮槻鐘舵�佹灇涓剧被鍨� */
+typedef NS_ENUM(NSInteger, EZDefenceStatus) {
+    EZDefenceStatusOffOrSleep     = 0,  //A1璁惧鐫$湢妯″紡鎴栬�呴潪A1璁惧鐨勬挙闃茬姸鎬�
+    EZDefenceStatusOn             = 1,  //闈濧1璁惧鐨勫竷闃茬姸鎬�
+    EZDefenceStatusAtHome         = 8,  //A1鍦ㄥ妯″紡
+    EZDefenceStatusOuter          = 16, //A1澶栧嚭妯″紡
+};
+
+/* 閫氶亾娓呮櫚搴︼紝璇锋敞鎰忎笉鏄墍鏈夎澶囬兘鏈夎繖浜涙竻鏅板害鐨勶紝璇锋牴鎹疄闄呭満鏅娇鐢� */
+typedef NS_ENUM(NSInteger, EZVideoLevelType) {
+    EZVideoLevelLow       = 0,  //娴佺晠
+    EZVideoLevelMiddle    = 1,  //鍧囪 
+    EZVideoLevelHigh      = 2,  //楂樻竻
+    EZVideoLevelSuperHigh = 3   //瓒呮竻
+};
+
+/* 褰曞儚绫诲瀷 */
+typedef NS_ENUM(NSUInteger, EZVideoRecordType) {
+    EZVideoRecordTypeAll,     // 鎵�鏈夌被鍨�
+    EZVideoRecordTypeCMR,     // 瀹氭椂褰曞儚
+    EZVideoRecordTypeEvent    // 浜嬩欢绫诲瀷
+};
+
+/* 浜戝瓨鍌ㄥ綍鍍忕被鍨� */
+typedef NS_ENUM(NSInteger, EZCloudVideoType) {
+    EZCloudVideoTypeAll = -1,   // 鍏ㄩ儴褰曞儚
+    EZCloudVideoTypeSeries = 1, // 杩炵画褰曞儚
+    EZCloudVideoTypeAct = 2     // 娲诲姩褰曞儚
+};
+
+/// 寮�鏀惧钩鍙板父閲忕被
+@interface EZConstants : NSObject
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConstants_Auth.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConstants_Auth.h
new file mode 100644
index 0000000..1d70767
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConstants_Auth.h
@@ -0,0 +1,52 @@
+//
+//  EZConstants_Auth.h
+//  Auth
+//
+//  Created by JuneCheng on 2022/5/18.
+//
+
+#import <Foundation/Foundation.h>
+
+// 钀ょ煶寮�鏀惧钩鍙板鎵樻柟娉�
+@protocol EZAuthSDKDelegate <NSObject>
+
+@optional
+
+/**
+ 钀ょ煶鐧诲綍鏄惁鎴愬姛
+ 
+ @param result 鏄惁鎴愬姛
+ */
+- (void)ezvizLoginResult:(BOOL)result;
+
+@end
+
+/* 钀ょ煶鐮斿彂鐨凙PP */
+typedef NS_ENUM(NSInteger, EZAppType) {
+    EZEzviz                 = 0,  // 钀ょ煶浜戣棰戝浗鍐呯増
+    EZEzvizInternational    = 1,  // 钀ょ煶浜戣棰戞捣澶栫増
+    EZHIKConnect            = 2,  // HIK-Connect
+};
+
+/* 钀ょ煶璐熻矗鐮斿彂鐨凙PP */
+typedef NS_ENUM(NSInteger, EZAppPageType) {
+    EZPageDeviceList        = 0,  // 璁惧鍒楄〃椤甸潰
+    EZPageAlarmList         = 1,  // 鍛婅娑堟伅鍒楄〃椤甸潰
+};
+
+///闇�瑕佽繘琛岄噸鏂扮櫥褰曠殑閫氱煡锛岃閫氱煡瑙﹀彂棰戠巼涓�5骞翠竴娆★紝闇�鍦⊿DK鍒濆鍖栫洃鍚�
+extern const NSNotificationName EZNeedReloginNotification;
+
+///閿欒瑙e喅鏂规KEY
+extern NSErrorUserInfoKey const EZErrorSolutionKey;
+
+///閿欒妯″潡閿欒鐮並EY
+extern NSErrorUserInfoKey const EZErrorModuleCodeKey;
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZConstants_Auth : NSObject
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConstants_WifiConfig.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConstants_WifiConfig.h
new file mode 100644
index 0000000..97dd69d
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZConstants_WifiConfig.h
@@ -0,0 +1,36 @@
+//
+//  EZConstants_WifiConfig.h
+//  WifiConfig
+//
+//  Created by JuneCheng on 2022/5/6.
+//
+
+#ifndef EZConstants_WifiConfig_h
+#define EZConstants_WifiConfig_h
+
+/* 閰嶇綉鏂瑰紡 */
+typedef NS_ENUM(NSInteger, EZWiFiConfigMode) {
+    EZWiFiConfigSmart        = 1 << 0,  // smart config
+    EZWiFiConfigWave         = 1 << 1,  // 澹版尝閰嶇綉
+};
+
+/* WiFi閰嶇疆璁惧鐘舵�� */
+typedef NS_ENUM(NSInteger, EZWifiConfigStatus) {
+    DEVICE_WIFI_CONNECTING = 1,   //璁惧姝e湪杩炴帴WiFi
+    DEVICE_WIFI_CONNECTED = 2,    //璁惧杩炴帴WiFi鎴愬姛  (宸插簾寮� v4.16.0)
+    DEVICE_PLATFORM_REGISTED = 3, //璁惧娉ㄥ唽骞冲彴鎴愬姛
+    DEVICE_ACCOUNT_BINDED = 4,    //璁惧宸茬粡缁戝畾璐︽埛  (宸插簾寮� v4.16.0)
+    DEVICE_WIFI_SENT_SUCCESS = 5, //鍚戣澶囧彂閫乄iFi淇℃伅鎴愬姛
+    DEVICE_WIFI_SENT_FAILED = 6,  //鍚戣澶囧彂閫乄iFi淇℃伅澶辫触
+    DEVICE_PLATFORM_REGIST_FAILED = 7, //璁惧娉ㄥ唽骞冲彴澶辫触锛岃疆璇�20娆★紝20娆℃湭鏌ヨ鍒拌澶囦笂绾胯涓烘敞鍐屽钩鍙板け璐�
+};
+
+/* New AP閰嶇綉璁惧鐘舵�� */
+typedef NS_ENUM(NSInteger, EZNewAPConfigStatus) {
+    EZNewAPConfigStatusConnectSuccess          = 104,    // 杩炴帴鎴愬姛
+    EZNewAPConfigStatusUnknow                  = 105,    // 鏈煡閿欒
+    EZNewAPConfigStatusPasswordError           = 106,    // 瀵嗙爜閿欒
+    EZNewAPConfigStatusNoAPFound               = 201,    // 鏈壘鍒皐ifi鐑偣
+};
+
+#endif /* EZConstants_WifiConfig_h */
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDetectorInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDetectorInfo.h
new file mode 100644
index 0000000..9dd71bc
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDetectorInfo.h
@@ -0,0 +1,41 @@
+//
+//  EZDetectorInfo.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 16/1/12.
+//  Copyright 漏 2016骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓烘帰娴嬪櫒淇℃伅瀵硅薄
+@interface EZDetectorInfo : NSObject
+
+/// 鎺㈡祴鍣ㄥ簭鍒楀彿
+@property (nonatomic, copy) NSString *detectorSerial;
+/// 鎺㈡祴鍣ㄧ姸鎬侊紝鎺㈡祴鍣ㄤ笌A1鏄惁杩為�氾細0-闈炶仈閫氾紝1-鑱旈��
+@property (nonatomic) NSInteger state;
+/// 鎺㈡祴鍣ㄧ被鍨�
+@property (nonatomic, copy) NSString *type;
+/// 鎺㈡祴鍣ㄥ悕绉�
+/*  V("V", "瑙嗛璁惧"), I("I", "鍛婅杈撳叆璁惧"), O("O", "鍛婅杈撳嚭璁惧"), PIR("PIR", "绾㈠鎺㈡祴鍣�"), FIRE("FIRE", "鐑熸劅鎺㈡祴鍣�"),MAGNETOMETER("MAGNETOMETER", "闂ㄧ浼犳劅鍣�"), GAS("GAS", "鍙噧姘斾綋"), WATERLOGGING("WATERLOGGING", "姘存蹈"),CALLHELP("CALLHELP", "绱ф�ユ寜閽�"), TELECONTROL("TELECONTROL", "閬ユ帶鍣�"), ALERTOR("ALERTOR", "鍛婅鍣�"),KEYBOARD("KEYBOARD", "閿洏"),CURTAIN("CURTAIN","骞曞笜"), MOVE_MAGNETOMETER("MOVE_MAGNETOMETER","鍗曚綋闂ㄧ")
+ */
+@property (nonatomic, copy) NSString *typeName;
+/// 鏂逛綅淇℃伅锛屽彲鐢ㄤ簬瀹㈡埛鑷畾涔夊悕绉�
+@property (nonatomic, copy) NSString *location;
+/// 闃插尯鏁呴殰鐘舵�侊紝0鎭㈠锛�1浜х敓
+@property (nonatomic) NSInteger faultZoneStatus;
+/// 鐢垫睜娆犲帇鐘舵�侊紝0鎭㈠锛�1浜х敓
+@property (nonatomic) NSInteger underVoltageStatus;
+/// 鏃犵嚎骞叉壈鐘舵�侊紝0鎭㈠锛�1浜х敓
+@property (nonatomic) NSInteger wirelessInterferenceStatus;
+/// 璁惧绂荤嚎鐘舵�侊紝0鎭㈠锛�1浜х敓
+@property (nonatomic) NSInteger offlineStatus;
+/// 鍦ㄥ妯″紡鏄惁寮�鍚�
+@property (nonatomic) BOOL atHomeEnable;
+/// 澶栧嚭妯″紡鏄惁寮�鍚�
+@property (nonatomic) BOOL outerEnable;
+/// 鐫$湢妯″紡鏄惁寮�鍚�
+@property (nonatomic) BOOL sleepEnable;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceCloudServiceInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceCloudServiceInfo.h
new file mode 100644
index 0000000..fffd93e
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceCloudServiceInfo.h
@@ -0,0 +1,65 @@
+//
+//  EZDeviceCloudServiceInfo.h
+//  EzvizOpenSDK
+//
+//  Created by JuneCheng on 2022/1/4.
+//  Copyright 漏 2022 Hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+@class EZCloudServicePackageInfo;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// 浜戝瓨鍌ㄨ澶囬�氶亾濂楅淇℃伅
+@interface EZDeviceCloudServiceInfo : NSObject
+
+@property (nonatomic, copy) NSString *ownerId;///< 璁惧鎵�灞炵敤鎴风敤鎴峰悕
+@property (nonatomic, copy) NSString *serial;///< 璁惧搴忓垪鍙�
+@property (nonatomic, assign) NSInteger channelNo;///< 閫氶亾鍙�
+@property (nonatomic, copy) NSString *devicePicUrl;///< 璁惧鍥剧墖url
+@property (nonatomic, assign) NSInteger storageTime;///< 瀛樺偍鏃堕暱
+@property (nonatomic, assign) NSInteger storageTimeUnit;///< 瀛樺偍鏃堕暱鍗曚綅锛�1-澶╋紝2-鍛紝3-鏈堬紝4-骞�
+@property (nonatomic, copy) NSString *expireTime;///< 浜戝瓨鍌ㄦ湇鍔¤繃鏈熸椂闂�
+@property (nonatomic, copy) NSString *expireDate;///< 鍒版湡鏃堕棿锛� yyyy骞碝M鏈坉d鏃� 鏍煎紡
+@property (nonatomic, copy) NSString *devModel;///< 璁惧鍨嬪彿
+@property (nonatomic, copy) NSString *devName;///< 璁惧鍚嶇О
+@property (nonatomic, assign) NSInteger onlineStatus;///< 璁惧鍦ㄧ嚎鐘舵��
+@property (nonatomic, assign) NSInteger status;///< 浜戝瓨鍌ㄧ姸鎬� -2涓嶆敮鎸� -1鏈紑鍚� 0鏆傚仠 1寮�鍚� 2杩囨湡 4鎸囧畾鐢熸晥浜戝瓨鍌ㄥ緟鐢熸晥鐘舵��
+@property (nonatomic, assign) NSInteger expireDay;///< 褰撳墠璺濈杩囨湡鐨勬湁鏁堝ぉ鏁�
+@property (nonatomic, assign) NSInteger validDay;///< 鏈嶅姟鍙娇鐢ㄧ殑澶╂暟
+@property (nonatomic, copy) NSString *createTime;///< 鍒涘缓鏃堕棿
+@property (nonatomic, assign) BOOL designateDevice;///< 鏄惁鏄寚瀹氳澶�
+@property (nonatomic, assign) BOOL subscribe;///< 鏄惁鐢卞綋鍓嶈闃呭紑閫�
+@property (nonatomic, assign) BOOL supportSubscribe;///< 鏄惁鏀寔璁㈤槄浜戝瓨鍌�
+@property (nonatomic, assign) BOOL supportCard;///< 鏄惁鏀寔鐐瑰崱
+@property (nonatomic, assign) NSInteger openTryCloudShield;///< 鏄惁灞忚斀浜戝瓨鍌ㄨ瘯鐢� 1涓哄睆钄斤紝鍏朵粬涓烘湭灞忚斀
+@property (nonatomic, strong) NSArray<EZCloudServicePackageInfo *> *serviceList;///<
+
+@end
+
+
+@interface EZCloudServicePackageInfo : NSObject
+
+@property (nonatomic, assign) long serviceId;///<
+@property (nonatomic, assign) NSInteger productPayType;///< 浜у搧浠樿垂绫诲瀷锛�1浠樿垂 2 璇曠敤 3鍏嶈垂
+@property (nonatomic, assign) NSInteger storageTimeUnit;///< 瀛樺偍鏃堕暱鍗曚綅锛�1-澶� 2-鍛� 3-鏈� 4-骞� 5-灏忔椂
+@property (nonatomic, copy) NSString *expireTime;///< 杩囨湡鏃堕棿
+@property (nonatomic, assign) NSInteger forceBinding;///< 寮哄埗缁戝畾鐘舵�� 1-寮哄埗缁戝畾 2-鍙浆绉�
+@property (nonatomic, assign) NSInteger effectImmediately;///< 鏈嶅姟鏄惁绔嬪嵆鐢熸晥 1-绔嬪嵆鐢熸晥 2-寤惰繜鐢熸晥 3-鎸囧畾鏃ユ湡鐢熸晥
+@property (nonatomic, assign) NSInteger canFamilyDeviceNum;///< 鍙姞鍏ュ椁愯澶囨暟
+@property (nonatomic, assign) long familyServiceId;///< 瀹跺涵濂楅鏈嶅姟ID
+@property (nonatomic, assign) NSInteger serviceTime;///< 浜戝瓨鍌ㄤ娇鐢ㄦ椂闀�
+@property (nonatomic, assign) NSInteger addFamilyDeviceNum;///< 宸插姞鍏ュ椁愯澶囨暟
+@property (nonatomic, assign) NSInteger productCode;///< 浜у搧缂栧彿
+@property (nonatomic, assign) NSInteger buyNum;///< 璐拱鏁伴噺
+@property (nonatomic, copy) NSString *businessOrderNo;///< 璁㈠崟鍙凤細褰撳墠寮�閫氭湇鍔′笌璁㈠崟鍏宠仈
+@property (nonatomic, assign) NSInteger serviceTimeUnit;///< 浜戝瓨鍌ㄤ娇鐢ㄦ椂闀垮崟浣嶏細1-澶� 2-鍛� 3-鏈� 4-骞�
+@property (nonatomic, assign) NSInteger storageTime;///< 瀛樺偍鏃堕暱
+@property (nonatomic, assign) NSInteger serviceType;///< 濂楅绫诲瀷锛�2銆佸搴椁愶紝 1 or null涓烘櫘閫氬椁�
+@property (nonatomic, copy) NSString *effectTime;///< 鐢熸晥鏃堕棿
+@property (nonatomic, assign) NSInteger status;///< 鐘舵�侊細1 寰呬娇鐢� 2浣跨敤涓� 3宸蹭娇鐢�
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceInfo.h
new file mode 100644
index 0000000..da60bb4
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceInfo.h
@@ -0,0 +1,59 @@
+//
+//  EZDeviceInfo.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/9/16.
+//  Copyright (c) 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓鸿澶囦俊鎭璞�
+@interface EZDeviceInfo : NSObject
+
+/// 璁惧鍏宠仈鐨勯�氶亾淇℃伅
+@property (nonatomic, strong) NSArray *cameraInfo;
+/// 璁惧鍏宠仈鐨勯�氶亾鏁伴噺
+@property (nonatomic) NSInteger cameraNum;
+/// 鍏锋湁闃叉姢鑳藉姏鐨勮澶囧竷鎾ら槻鐘舵�侊細0-鐫$湢锛�8-鍦ㄥ锛�16-澶栧嚭锛屾櫘閫欼PC甯冩挙闃茬姸鎬侊細0-鎾ら槻锛�1-甯冮槻
+@property (nonatomic) NSInteger defence;
+/// 璁惧鍏宠仈鐨勬帰娴嬪櫒鏁伴噺
+@property (nonatomic) NSInteger detectorNum;
+/// 璁惧鍏宠仈鐨勬帰娴嬪櫒淇℃伅
+@property (nonatomic, strong) NSArray *detectorInfo;
+/// 璁惧鍥剧墖
+@property (nonatomic, copy) NSString *deviceCover;
+/// 璁惧鍚嶇О
+@property (nonatomic, copy) NSString *deviceName;
+/// 璁惧搴忓垪鍙�
+@property (nonatomic, copy) NSString *deviceSerial;
+/// 璁惧绫诲瀷
+@property (nonatomic, copy) NSString *deviceType;
+/// 璁惧鐗堟湰鍙�
+@property (nonatomic, copy) NSString *deviceVersion;
+/// 璁惧鍗忚鐗堟湰鍙风被鍨�  0:闈炲浗鏍� 6:鍥芥爣
+@property (nonatomic) NSInteger devProtoEnum;
+/// 璁惧鏄惁寮�鍚姞瀵�
+@property (nonatomic) BOOL isEncrypt;
+/// 璁惧鐘舵�侊紝1-鍦ㄧ嚎锛�2-涓嶅湪绾�
+@property (nonatomic) NSInteger status;
+/// 鏄惁鏀寔瀵硅 0-涓嶆敮鎸佸璁诧紝1-鏀寔鍏ㄥ弻宸ュ璁诧紝3-鏀寔鍗婂弻宸ュ璁诧紝4-鍚屾椂鏀寔鍏ㄥ弻宸ュ拰鍗婂弻宸�
+@property (nonatomic) NSInteger isSupportTalk;
+/// 鏄惁鏀寔浜戝彴鎺у埗
+@property (nonatomic) BOOL isSupportPTZ;
+/// 鏄惁鏀寔鏀惧ぇ
+@property (nonatomic) BOOL isSupportZoom;
+///鏄惁鏀寔鎻愮ず闊冲紑鍏�
+@property (nonatomic) BOOL isSupportAudioOnOff;
+/// 鏄惁鏀寔涓績闀滃儚缈昏浆
+@property (nonatomic) BOOL isSupportMirrorCenter;
+/// 鏄惁鏀寔澹版尝閰嶇綉
+@property (nonatomic) BOOL isSupportSoundWave;
+/// 鏄惁鏀寔鍊嶆暟鍥炴斁
+@property (nonatomic) BOOL isSupportPlaybackRate;
+/// 璁惧澶х被
+@property (nonatomic,copy) NSString *category;
+/// 娣诲姞鏃堕棿
+@property (nonatomic,strong) NSDate *addTime;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDevicePtzAngleInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDevicePtzAngleInfo.h
new file mode 100644
index 0000000..4437921
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDevicePtzAngleInfo.h
@@ -0,0 +1,47 @@
+//
+//  EZDevicePtzAngleInfo.h
+//  EzvizOpenSDK
+//
+//  Created by JuneCheng on 2022/4/27.
+//  Copyright 漏 2022 Hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZDevicePtzAngleInfo : NSObject
+
+/** 姘村钩鏂瑰悜璧风偣瑙掑害 */
+@property (readonly) NSInteger horizontalStartAngle;
+
+/** 姘村钩鏂瑰悜缁堢偣瑙掑害 */
+@property (readonly) NSInteger horizontalEndAngle;
+
+/** 姘村钩鏂瑰悜褰撳墠瑙掑害 */
+@property (readonly) NSInteger horizontalCurrentAngle;
+
+/** 鍨傜洿鏂瑰悜璧风偣瑙掑害 */
+@property (readonly) NSInteger verticalStartAngle;
+
+/** 鍨傜洿鏂瑰悜缁堢偣瑙掑害 */
+@property (readonly) NSInteger verticalEndAngle;
+
+/** 鍨傜洿鏂瑰悜褰撳墠瑙掑害 */
+@property (readonly) NSInteger verticalCurrentAngle;
+
+/** 鏂瑰悜 */
+@property (readonly) NSInteger orientation;
+
+/** 鐗堟湰鍙� */
+@property (readonly) NSInteger ptzCfgVersion;
+
+/** 鍒濆鍖� */
+- (instancetype)initWithType:(NSInteger)type data:(NSData *)data;
+
+- (float)horCurAngPercent;
+- (float)verCurAngPercent;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceRecordDownloadTask.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceRecordDownloadTask.h
new file mode 100644
index 0000000..adb8679
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceRecordDownloadTask.h
@@ -0,0 +1,39 @@
+//
+//  EZDeviceRecordDownloadTask.h
+//  EZOpenSDK
+//
+//  Created by yuqian on 2019/7/2.
+//  Copyright 漏 2019 Ezviz. All rights reserved.
+//
+
+#import "EZRecordDownloadTask.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class EZDeviceRecordFile;
+
+@interface EZDeviceRecordDownloadTask : EZRecordDownloadTask
+
+/**
+ sd鍗″綍鍍忎笅杞戒换鍔″垵濮嬪寲锛屽紓姝ユ柟娉�
+ 涓嬭浇鐨勫綍鍍忎负PS鏂囦欢锛屽闇�杞崲MP4锛岃鑷璋冪敤EZVideoTransformer绫荤殑杞皝瑁呮柟娉�
+ 
+ @param taskID 涓嬭浇浠诲姟鍞竴鏍囪瘑ID
+ @param recordFile 璁惧褰曞儚鏂囦欢
+ @param deviceSerial 璁惧搴忓垪鍙�
+ @param cameraNo 閫氶亾鍙�
+ @param verifyCode 璁惧楠岃瘉鐮�
+ @param savePath 涓嬭浇瀛樺偍璺緞
+ @param completion 瀹屾垚鍥炶皟锛屾垚鍔熻繑鍥瀟ask锛屽け璐ヨ繑鍥瀗il
+ */
+- (void) initTaskWithID:(NSUInteger)taskID
+   DeviceRecordFileInfo:(EZDeviceRecordFile *)recordFile
+           deviceSerial:(NSString *)deviceSerial
+               cameraNo:(NSInteger)cameraNo
+             verifyCode:(NSString *)verifyCode
+               savePath:(NSString *)savePath
+             completion:(void (^)(EZDeviceRecordDownloadTask *task))completion;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceRecordFile.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceRecordFile.h
new file mode 100644
index 0000000..b7a2867
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceRecordFile.h
@@ -0,0 +1,26 @@
+//
+//  EZDeviceRecordFile.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/9/17.
+//  Copyright (c) 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓鸿澶囧綍鍍忔枃浠朵俊鎭紙鍖呭惈SD鍗°�佸悗绔叧鑱旇澶囩殑褰曞儚锛�
+@interface EZDeviceRecordFile : NSObject
+
+/// 璁惧褰曞儚鏂囦欢鐨勫紑濮嬫椂闂�
+@property (nonatomic, strong) NSDate *startTime;
+/// 璁惧褰曞儚鏂囦欢鐨勭粨鏉熸椂闂�
+@property (nonatomic, strong) NSDate *stopTime;
+/// 鏂囦欢绫诲瀷 -2:UNKNOW -1:ALLEVENT 0:ALARM 1:TIMING 2:IO 3:CMR 4:event 5:all
+@property (nonatomic, assign) int type;
+@property (nonatomic, copy) NSString *channelType;
+
+
+@property (nonatomic, assign) int seq;
+@property (nonatomic, strong) NSData *imageData;///< 
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceUpgradeStatus.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceUpgradeStatus.h
new file mode 100644
index 0000000..06c173b
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceUpgradeStatus.h
@@ -0,0 +1,19 @@
+//
+//  EZDeviceUpgradeStatus.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/12/21.
+//  Copyright 漏 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓鸿澶囧崌绾х姸鎬佸璞�
+@interface EZDeviceUpgradeStatus : NSObject
+
+/// 鍗囩骇杩涘害锛屼粎status_type涓哄崌绾х姸鎬佹椂鏈夋晥锛屽彇鍊艰寖鍥翠负1-100
+@property (nonatomic) NSInteger upgradeProgress;
+/// 鍗囩骇鐘舵�侊細 0锛氭鍦ㄥ崌绾� 1锛氳澶囬噸鍚� 2锛氬崌绾ф垚鍔� 3锛氬崌绾уけ璐�
+@property (nonatomic) NSInteger upgradeStatus;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceVersion.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceVersion.h
new file mode 100644
index 0000000..a49a31a
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZDeviceVersion.h
@@ -0,0 +1,27 @@
+//
+//  EZDeviceVersion.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/12/10.
+//  Copyright 漏 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓鸿澶囩増鏈俊鎭璞�
+@interface EZDeviceVersion : NSObject
+
+/// 褰撳墠鐗堟湰
+@property (nonatomic, copy) NSString *currentVersion;
+/// 鏈�鏂扮増鏈�
+@property (nonatomic, copy) NSString *latestVersion;
+/// 鏄惁鍙互鏇存柊,娉細0-涓嶉渶瑕佸崌绾� 1-闇�瑕佸崌绾� 3-闇�瑕佸崌绾�1.7鐗堟湰浠ヤ笂
+@property (nonatomic) NSInteger isNeedUpgrade;
+/// 鏄惁姝e湪鍗囩骇,娉細0-涓嶅湪鍗囩骇 1-姝e湪鍗囩骇
+@property (nonatomic) NSInteger isUpgrading;
+/// 鍥轰欢涓嬭浇鍦板潃锛屽彧鏈夊彲浠ユ洿鏂版椂鎵嶄細鏈夊��
+@property (nonatomic, copy) NSString *downloadUrl;
+/// 鏇存柊鍐呭鎻忚堪
+@property (nonatomic, copy) NSString *upgradeDesc;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZGlobalSDK.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZGlobalSDK.h
new file mode 100644
index 0000000..90f7cc9
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZGlobalSDK.h
@@ -0,0 +1,1059 @@
+//
+//  EZGlobalSDK.h
+//  EZOpenSDK
+//
+//  Created by JuneCheng on 2022/7/18.
+//
+
+#import <Foundation/Foundation.h>
+#import "EZConstants.h"
+#import "EZConstants_Auth.h"
+#import "EZConstants_WifiConfig.h"
+
+@class EZAccessToken;
+@class EZPlayer;
+@class EZUserInfo;
+@class EZDeviceVersion;
+@class EZDeviceInfo;
+@class EZProbeDeviceInfo;
+@class EZDeviceUpgradeStatus;
+@class EZLeaveMessage;
+@class EZHiddnsDeviceInfo;
+@class EZDeviceCloudServiceInfo;
+@class EZWiFiItemInfo, EZAPDevInfo, EZConfigTokenInfo;
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZGlobalSDK : NSObject
+
+#pragma mark - Auth璁よ瘉鐩稿叧Api
+
+/**
+ *  瀹炰緥EZOpenSDK鎺ュ彛
+ *
+ *  @param appKey 浼犲叆鐢宠鐨刟ppKey
+ *
+ *  @return YES/NO
+ */
++ (BOOL)initLibWithAppKey:(NSString *)appKey;
+
+/**
+ *  鍒濆鍖栨帴鍙o紝鍙缃湇鍔″櫒锛屾捣澶栫敤鎴蜂娇鐢ㄨ鍒濆鍖栨柟娉�
+ *
+ *  @param appKey 浼犲叆鐢宠鐨刟ppKey
+ *  @param apiUrl apiUrl鍦板潃
+ *  @param authUrl auth鍦板潃
+ *
+ *  @return YES/NO
+ */
++ (BOOL)initLibWithAppKey:(NSString *)appKey
+                      url:(NSString *)apiUrl
+                  authUrl:(NSString *)authUrl;
+
+/**
+ *  閿�姣丒ZOpenSDK鎺ュ彛
+ *
+ *  @return YES/NO
+ */
++ (BOOL)destoryLib;
+
+/**
+ *  璁剧疆鏄惁鎵撳嵃debug鏃ュ織,闇�鍦ㄥ垵濮嬪寲sdk涔嬪墠璋冪敤
+ *
+ *  @param enable 鏄惁鎵撳嵃鏃ュ織锛岄粯璁ゅ叧闂�
+ *
+ *  @return YES/NO
+ */
++ (BOOL)setDebugLogEnable:(BOOL)enable;
+
+/**
+ *  璁剧疆debug鏃ュ織鍥炶皟,闇�鍦ㄥ垵濮嬪寲sdk涔嬪墠璋冪敤
+ *
+ *  @param logCallback 鏃ュ織鍥炶皟
+ */
++ (void)setDebugLogCallBack:(void(^)(NSString *logStr))logCallback;
+
+/**
+ *  鎵撳紑鎺堟潈鐧诲綍涓棿椤甸潰鎺ュ彛
+ *
+ *  @param areaId areaId
+ *  @param block 鍥炶皟block
+*/
++ (void)openLoginPage:(NSString *)areaId
+           completion:(void (^)(EZAccessToken *accessToken))block;
+
+/**
+ *  鎺堟潈鐧诲綍浠ュ悗缁橢ZOpenSDK璁剧疆accessToken鎺ュ彛
+ *
+ *  @param accessToken 鎺堟潈鐧诲綍鑾峰彇鐨刟ccessToken
+ */
++ (void)setAccessToken:(NSString *)accessToken;
+
+/**
+ *  璐︽埛娉ㄩ攢鎺ュ彛
+ *
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鐧诲嚭鎴愬姛
+ */
++ (void)logout:(void (^)(NSError *error))completion;
+
+
+/**
+ 澶栭儴璺宠浆澶勭悊鏂规硶锛岄�傜敤浜巌OS9浠ヤ笂锛屽寘鎷琲OS9
+
+ @param url 璺宠浆杩囨潵鐨剈rl
+ @param options 鍙傛暟锛岄粯璁や负绌猴紝鐩墠鏈繘琛屽鐞嗭紝棰勭暀
+ @param delegate 濮旀墭
+ @return 缁撴灉
+ */
++ (BOOL)handleOpenUrl:(NSURL *)url options:(NSDictionary *)options delegate:(id<EZAuthSDKDelegate>)delegate;
+
+/**
+ *  鑾峰彇SDK鐗堟湰鍙锋帴鍙�
+ *
+ *  @return 鐗堟湰鍙�
+ */
++ (NSString *)getVersion;
+
+/**
+ *  鎵撳紑浜戝瓨鍌ㄤ腑闂撮〉
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param channelNo    璁惧閫氶亾鍙�
+ */
++ (void)openCloudPage:(NSString *)deviceSerial channelNo:(NSInteger)channelNo;
+
+/**
+ *  鎵撳紑淇敼瀵嗙爜涓棿椤�
+ *
+ *  @param completion 鍥炶皟block resultCode涓�0鏃惰〃绀轰慨鏀瑰瘑鐮佹垚鍔�
+ */
++ (void)openChangePasswordPage:(void (^)(NSInteger resultCode))completion;
+
+/**
+ 鏄惁宸茬粡鐧诲綍
+
+ @return YES锛氬凡缁忕櫥褰曪紱NO锛氭湭鐧诲綍
+ */
++ (BOOL)isLogin;
+
+/**
+ 鑾峰彇褰撳墠accessToken
+
+ @return accessToken
+ */
++ (NSString *)getAccesstoken;
+
+#pragma mark - 鎾斁鍣ㄥ垱寤篈pi
+
+/**
+ *  鏍规嵁cameraId鏋勯�燛ZPlayer瀵硅薄
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithDeviceSerial:(NSString *)deviceSerial
+                                  cameraNo:(NSInteger)cameraNo;
+
+/**
+ *  涓�涓〉闈㈠瓨鍦ㄥ涓棰戜娇鐢ㄦ渶灏忕殑鐮佹祦锛屾病鏈夊瓙鐮佹祦鐨勮瘽杩樻槸浣跨敤涓荤爜娴�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     铏氭嫙閫氶亾
+ *  @param useSubStream   鏄惁浣跨敤瀛愮爜娴�
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithDeviceSerial:(NSString *)deviceSerial
+                                  cameraNo:(NSInteger)cameraNo
+                              useSubStream:(BOOL)useSubStream;
+
+/**
+ *  鏍规嵁url鏋勯�燛ZPlayer瀵硅薄 锛堜富瑕佺敤鏉ュ鐞嗚棰戝箍鍦虹殑鎾斁锛�
+ *
+ *  @param url 鎾斁url锛岀洰鍓嶅彧鏀寔璇ュ崗璁細ysproto://vtm.ys7.com:8554/live?dev=531993276&chn=1&stream=1&cln=1&isp=0&biz=3
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithUrl:(NSString *)url;
+
+
+/**
+ *  閲婃斁EZPlayer瀵硅薄
+ *
+ *  @param player EZPlayer瀵硅薄
+ *
+ *  @return YES/NO
+ */
++ (BOOL)releasePlayer:(EZPlayer *)player;
+
+#pragma mark - 鍙栨祦鐩稿叧Api
+
+/**
+ *  璁剧疆p2p鍔熻兘鏄惁寮�鍚帴鍙o紝榛樿涓嶅紑鍚痯2p锛岀敤鎴疯嚜宸遍�夋嫨鏄惁寮�鍚�
+ *
+ *  @param enable p2p鏄惁寮�鍚�
+ */
++ (void)enableP2P:(BOOL)enable;
+
+/**
+ *  娓呴櫎鍙栨祦鏃剁殑缂撳瓨鏁版嵁
+ */
++ (void)clearStreamInfoCache;
+
+/**
+ *  鏄惁鏀寔鍥芥爣
+ *  @param enable YES or NO
+ */
++ (void)enableNationalStandard:(BOOL)enable;
+
+#pragma mark - 褰曞儚鏌ヨApi
+
+/**
+ *  鏌ヨ浜戝瓨鍌ㄥ綍鍍忎俊鎭垪琛ㄦ帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param beginTime    鏌ヨ鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ *  @param endTime      鏌ヨ鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZCloudRecordFile鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)searchRecordFileFromCloud:(NSString *)deviceSerial
+                                           cameraNo:(NSInteger)cameraNo
+                                          beginTime:(NSDate *)beginTime
+                                            endTime:(NSDate *)endTime
+                                         completion:(void (^)(NSArray *couldRecords, NSError *error))completion;
+
+/**
+ *  鏌ヨ杩滅▼SD鍗″瓨鍌ㄥ綍鍍忎俊鎭垪琛ㄦ帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param beginTime    鏌ヨ鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ *  @param endTime      鏌ヨ鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZDeviceRecordFile鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)searchRecordFileFromDevice:(NSString *)deviceSerial
+                                            cameraNo:(NSInteger)cameraNo
+                                           beginTime:(NSDate *)beginTime
+                                             endTime:(NSDate *)endTime
+                                          completion:(void (^)(NSArray *deviceRecords, NSError *error))completion;
+
+/**
+ *  鑾峰彇鎸囧畾鏃堕棿鍐呯殑鎵�鏈夊綍鍍忔枃浠�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙凤紝浼犲叆<=0鐨勫�煎垯涓洪粯璁ゅ��
+ *  @param beginTime    寮�濮嬫椂闂达紝浼犲叆nil鍒欎负褰撳ぉ00:00:00
+ *  @param endTime      缁撴潫鏃堕棿锛屼紶鍏il鍒欎负褰撳ぉ23:59:59
+ *  @param rectype      鍥炴斁婧愶紝0-绯荤粺鑷姩閫夋嫨锛�1-浜戝瓨鍌紝2-鏈湴褰曞儚銆傞潪蹇呴�夛紝榛樿涓�0锛屼紶鍏ヨ礋鍊煎垯涓洪粯璁ゅ��
+ *  @param bizType       璁惧褰掑睘涓氬姟鏉ユ簮
+ *  @param platFormId  骞冲彴ID
+ *  @param completion   鍥炶皟block records:EzvizRecordFileInfo鐨勬暟缁�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)searchRecordFile:(NSString *)deviceSerial
+                                  cameraNo:(NSString *)cameraNo
+                                 beginTime:(NSDate *)beginTime
+                                   endTime:(NSDate *)endTime
+                                   recType:(NSInteger)rectype
+                                   bizType:(NSString *)bizType
+                                platFormId:(NSString *)platFormId
+                                completion:(void (^)(id records, NSError *error))completion;
+
+#pragma mark - 璁惧鐩稿叧Api
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙峰拰璁惧楠岃瘉鐮佹坊鍔犺澶囨帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param verifyCode   璁惧楠岃瘉鐮�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)addDevice:(NSString *)deviceSerial
+                         verifyCode:(NSString *)verifyCode
+                         completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鑾峰彇鐢ㄦ埛鎵�鏈夌殑璁惧鍒楄〃
+ *
+ *  @param pageIndex  鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
+ *  @param pageSize   鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
+ *  @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞℃暟缁勫拰璁惧鎬绘暟锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceList:(NSInteger)pageIndex
+                               pageSize:(NSInteger)pageSize
+                             completion:(void (^)(NSArray *deviceList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鑾峰彇鍒嗕韩缁欑敤鎴风殑璁惧鍒楄〃鎺ュ彛
+ *
+ *  @param pageIndex  鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
+ *  @param pageSize   鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
+ *  @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞℃暟缁勫拰璁惧鎬绘暟锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getSharedDeviceList:(NSInteger)pageIndex
+                                     pageSize:(NSInteger)pageSize
+                                   completion:(void (^)(NSArray *deviceList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鏍规嵁搴忓垪鍙疯幏鍙栬澶囦俊鎭�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞★紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceInfo:(NSString *)deviceSerial
+                             completion:(void (^)(EZDeviceInfo *deviceInfo, NSError *error))completion;
+
+/**
+ *  鑾峰彇璁惧鐨勭増鏈俊鎭帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZDeviceVersion鐨勫璞′俊鎭紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceVersion:(NSString *)deviceSerial
+                                completion:(void (^)(EZDeviceVersion *version, NSError *error))completion;
+
+/**
+ *  閫氳繃璁惧楠岃瘉鐮佸紑鍏宠棰戝浘鐗囧姞瀵嗘帴鍙�
+ *
+ *  @param isEncrypt    鏄惁鍔犲瘑锛屽彧鏈塏O(鍏抽棴)鐨勬椂鍊欓渶瑕佽澶囬獙璇佺爜鐨勭浉鍏冲弬鏁�(vaildateCode)
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param verifyCode 璁惧楠岃瘉鐮�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setDeviceEncryptStatus:(NSString *)deviceSerial
+                                      verifyCode:(NSString *)verifyCode
+                                         encrypt:(BOOL)isEncrypt
+                                      completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙蜂慨鏀硅澶囧悕绉版帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param deviceName   璁惧鍚嶇О
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀轰慨鏀规垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setDeviceName:(NSString *)deviceName
+                           deviceSerial:(NSString *)deviceSerial
+                             completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙峰垹闄ゅ綋鍓嶈处鍙风殑璁惧鎺ュ彛
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀哄垹闄ゆ垚鍔�
+ *  @see 璇ユ帴鍙d笌缁堢缁戝畾鍔熻兘鐩稿叧锛屼細閬囧埌鍒犻櫎鏃舵姤106002鐨勯敊璇紝璇峰叧闂粓绔粦瀹氫互鍚庡啀璇�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)deleteDevice:(NSString *)deviceSerial
+                            completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栧瓨鍌ㄤ粙璐ㄧ姸鎬�(濡傛槸鍚﹀垵濮嬪寲锛屾牸寮忓寲杩涘害绛�)
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZStorageInfo鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getStorageStatus:(NSString *)deviceSerial
+                                completion:(void (^)(NSArray *storageStatus, NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙峰拰鍒嗗尯缂栧彿鏍煎紡鍖栧垎鍖猴紙SD鍗★級
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param storageIndex 鏌ヨ杩斿洖鐨勫垎鍖哄彿锛�0琛ㄧず鍏ㄩ儴鏍煎紡鍖栵紝鍙兘浼氭湁鍑犲潡纭洏鐨勬儏鍐�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)formatStorage:(NSString *)deviceSerial
+                           storageIndex:(NSInteger)storageIndex
+                             completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栬澶囧崌绾ф椂鐨勮繘搴︾姸鎬�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZDeviceUpgradeStatus瀵硅薄锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceUpgradeStatus:(NSString *)deviceSerial
+                                      completion:(void (^)(EZDeviceUpgradeStatus *status, NSError *error))completion;
+
+/**
+ *  閫氳繃璁惧搴忓垪鍙峰璁惧杩涜鍗囩骇鎿嶄綔锛屽墠鎻愭槸璇ヨ澶囨湁鏇存柊杞欢鐨勬彁绀�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖琛ㄧず鎿嶄綔鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)upgradeDevice:(NSString *)deviceSerial
+                             completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鑾峰彇鎶撳彇鎽勫儚澶村浘鐗囩殑url鎺ュ彛
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖url鍦板潃淇℃伅锛岄敊璇椂杩斿洖閿欒鐮�
+ *  @see 璇ユ帴鍙f瘮杈冭�楁椂锛屼笉寤鸿杩涜鎵归噺璁惧鎶撳浘锛孲DK鍐呴儴鍙敮鎸�6涓猦ttp璇锋眰骞跺彂锛岃鎺ュ彛浼氭寔缁崰鐢╤ttp璇锋眰璧勬簮锛屽鏋滈亣鍒癶ttp璇锋眰寤舵椂宸ㄥぇ闂锛屼紭鍏堣�冭檻鎶撳浘鎺ュ彛骞跺彂閫犳垚鐨勯棶棰�,
+ *  鎶撳浘灏嗗湪鏈嶅姟鍣ㄧ淇濈暀2涓皬鏃�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)captureCamera:(NSString *)deviceSerial
+                               cameraNo:(NSInteger)cameraNo
+                             completion:(void (^)(NSString *url, NSError *error))completion;
+
+/**
+ *  璁剧疆璁惧閫氶亾鐨勬竻鏅板害
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param videoLevel   閫氶亾娓呮櫚搴︼紝0-娴佺晠锛�1-鍧囪 锛�2-楂樻竻锛�3-瓒呮竻
+ *  @param completion   鍥炶皟block锛屾棤error琛ㄧず璁剧疆鎴愬姛
+ *  @see 濡傛灉鏄鍦ㄦ挱鏀炬椂璋冪敤璇ユ帴鍙o紝璁剧疆娓呮櫚搴︽垚鍔熶互鍚庡繀椤昏EZPlayer璋冪敤stopRealPlay鍐嶈皟鐢╯tartRealPlay閲嶆柊鍙栨祦鎵嶆垚瀹屾垚鐢婚潰娓呮櫚搴︾殑鍒囨崲銆�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setVideoLevel:(NSString *)deviceSerial
+                               cameraNo:(NSInteger)cameraNo
+                             videoLevel:(EZVideoLevelType)videoLevel
+                             completion:(void (^)(NSError *error))completion;
+
+/**
+ *  璁惧璁剧疆甯冮槻鐘舵�侊紝鍏煎A1鍜孖PC璁惧鐨勫竷闃�
+ *
+ *  @param defence      甯冮槻鐘舵��, IPC甯冮槻鐘舵�佸彧鏈�0鍜�1锛孉1鏈�0:鐫$湢 8:鍦ㄥ 16:澶栧嚭
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setDefence:(EZDefenceStatus)defence
+                        deviceSerial:(NSString *)deviceSerial
+                          completion:(void (^)(NSError *error))completion;
+
+#pragma mark - 浜戝彴鎺у埗Api
+
+/**
+ *  PTZ 鎺у埗鎺ュ彛
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param command      ptz鎺у埗鍛戒护
+ *  @param action       鎺у埗鍚姩/鍋滄
+ *  @param speed        浜戝彴閫熷害锛�0-鎱紝1-閫備腑锛�2-蹇�
+ *  @param resultBlock  鍥炶皟block锛屽綋error涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)controlPTZ:(NSString *)deviceSerial
+                            cameraNo:(NSInteger)cameraNo
+                             command:(EZPTZCommand)command
+                              action:(EZPTZAction)action
+                               speed:(NSInteger)speed
+                              result:(void (^)(NSError *error))resultBlock;
+
+/**
+ *  鎽勫儚澶存樉绀烘帶鍒舵帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param command      鏄剧ず鎺у埗鍛戒护
+ *  @param resultBlock  鍥炶皟block锛屽綋error涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ */
++ (void)controlVideoFlip:(NSString *)deviceSerial
+                cameraNo:(NSInteger)cameraNo
+                 command:(EZDisplayCommand)command
+                  result:(void (^)(NSError *error))resultBlock;
+
+#pragma mark - 浜戝瓨鍌ㄧ浉鍏矨pi
+
+/**
+ *  妫�鏌ュ浗瀹舵槸鍚︽敮鎸佷簯瀛樺偍鏈嶅姟
+ *
+ *  @param completion 鍥炶皟
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)isSupportCloundService:(void (^)(BOOL isSupport, NSError *error))completion;
+
+/**
+ *  鏌ヨ浜戝瓨鍌ㄨ澶囬�氶亾濂楅淇℃伅
+ *
+ *  @param deviceSerial     璁惧搴忓垪鍙�
+ *  @param channelNo            閫氶亾鍙�
+ *  @param completion          鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getCloundDevicePackageInfo:(NSString *)deviceSerial
+                                           channelNo:(NSInteger)channelNo
+                                          completion:(void (^)(EZDeviceCloudServiceInfo *serviceInfo, NSError *error))completion;
+
+/**
+ *  浜戝瓨鍌ㄥ姛鑳芥殏鍋滄仮澶�
+ *
+ *  @param deviceSerial     璁惧搴忓垪鍙�
+ *  @param channelNo            閫氶亾鍙�
+ *  @param enable                   NO-绂佺敤锛孻ES-鍚敤
+ *  @param completion          鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setCloundServiceActive:(NSString *)deviceSerial
+                                       channelNo:(NSInteger)channelNo
+                                          enable:(BOOL)enable
+                                      completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏌ヨ鏌愭湀涓湁瑙嗛鏂囦欢鐨勫ぉ(鏃ユ湡)
+ *
+ *  @param deviceSerial     璁惧搴忓垪鍙�
+ *  @param channelNo            閫氶亾鍙�
+ *  @param month                     鏌ヨ鏌愭湀鍏锋湁浜戝瓨鍌ㄧ殑鏃ユ湡锛屾牸寮忎负yyyyMM
+ *  @param completion          鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getCloudVideoDays:(NSString *)deviceSerial
+                                  channelNo:(NSInteger)channelNo
+                                      month:(NSString *)month
+                                 completion:(void (^)(NSArray<NSString *> *dayArray, NSError *error))completion;
+
+/**
+ *  鎸夎澶囬�氶亾鍒犻櫎鎵�鏈変簯瀛樺偍褰曞儚鐗囨
+ *
+ *  @param deviceSerial     璁惧搴忓垪鍙�
+ *  @param channelNo            閫氶亾鍙�
+ *  @param completion          鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)deleteAllCloudVideo:(NSString *)deviceSerial
+                                    channelNo:(NSInteger)channelNo
+                                   completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鍒犻櫎浜戝瓨鍌ㄥ綍鍍忕墖娈�
+ *
+ *  @param deviceSerial     璁惧搴忓垪鍙�
+ *  @param channelNo            閫氶亾鍙�
+ *  @param videos                   瑙嗛鏁扮粍锛堥檺鍒�30涓互鍐咃級
+ *  @param completion          鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)deleteCloudVideoFragment:(NSString *)deviceSerial
+                                         channelNo:(NSInteger)channelNo
+                                            videos:(NSArray *)videos
+                                        completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鎸夊ぉ澧為噺鏌ヨ浜戝瓨鍌ㄥ綍鍍忓垪琛ㄦ帴鍙�(姒傝淇℃伅)
+ *
+ *  @param deviceSerial     璁惧搴忓垪鍙�
+ *  @param channelNo            閫氶亾鍙�
+ *  @param videoType            褰曞儚绫诲瀷videoType
+ *  @param searchDate          鏌ユ壘鏂囦欢鏃ユ湡yyyy-MM-dd
+ *  @param maxCreateTime   鏌ユ壘鏂囦欢鐨勮捣濮嬫椂闂磞yyy-MM-dd HH:mm:ss锛岃淇濊瘉鍜宻earchDate鏄悓涓�澶╋紝鍚﹀垯鎶ラ敊銆傞粯璁や粠 yyyy-MM-dd 00:00:00寮�濮嬶紝闈炲繀濉紝鍙紶nil
+ *  @param completion          鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getIncrCloudVideos:(NSString *)deviceSerial
+                                   channelNo:(NSInteger)channelNo
+                                   videoType:(EZCloudVideoType)videoType
+                                  searchDate:(NSString *)searchDate
+                               maxCreateTime:(NSString *)maxCreateTime
+                                  completion:(void (^)(NSArray *abstractvideos, NSError *error))completion;
+
+/**
+ *  鏍规嵁鏂囦欢id鎵归噺鏌ヨ璇︽儏淇℃伅鎺ュ彛
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param channelNo        閫氶亾鍙�
+ *  @param videos               褰曞儚姒傝淇℃伅鏁扮粍
+ *  @param completion      鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getCloudVideoDetails:(NSString *)deviceSerial
+                                     channelNo:(NSInteger)channelNo
+                                        videos:(NSArray *)videos
+                                    completion:(void (^)(NSArray *couldRecords, NSError *error))completion;
+
+#pragma mark - 鍛婅鐩稿叧Api
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栧憡璀︿俊鎭垪琛紝璁惧搴忓垪鍙蜂负nil鏃舵煡璇㈡暣涓处鎴蜂笅鐨勫憡璀︿俊鎭垪琛�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param pageIndex    鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
+ *  @param pageSize     鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
+ *  @param beginTime    鎼滅储鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ *  @param endTime      鎼滅储鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZAlarmInfo鐨勫璞℃暟鎹拰鏌ヨ鏃堕棿鑼冨洿鍐呯殑鍛婅涓暟鐨勬�绘暟锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getAlarmList:(NSString *)deviceSerial
+                             pageIndex:(NSInteger)pageIndex
+                              pageSize:(NSInteger)pageSize
+                             beginTime:(NSDate *)beginTime
+                               endTime:(NSDate *)endTime
+                            completion:(void (^)(NSArray *alarmList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鍛婅鍥剧墖瑙e瘑鏂规硶锛岃澶囧姞瀵�
+ *
+ *  @param data       闇�瑕佽В瀵嗙殑鏁版嵁
+ *  @param verifyCode 璁惧楠岃瘉鐮�
+ *
+ *  @return 瑙e瘑鐨凬SData瀵硅薄锛屽鏋滆繑鍥炵殑鏁版嵁鏄┖鐨勶紝璇锋鏌ュ瘑鐮佹槸鍚︽纭垨鑰呬紶鍏ョ殑鏁版嵁鏄惁姝g‘銆�
+ */
++ (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode;
+
+/**
+ *  鍛婅鍥剧墖瑙e瘑鏂规硶锛岃澶囧姞瀵�
+ *
+ *  @param data       闇�瑕佽В瀵嗙殑鏁版嵁
+ *  @param verifyCode 璁惧楠岃瘉鐮�
+ *  @param type 1:璁惧鍔犲瘑锛�2锛氬钩鍙板姞瀵�
+ *
+ *  @return 瑙e瘑鐨凬SData瀵硅薄锛屽鏋滆繑鍥炵殑鏁版嵁鏄┖鐨勶紝璇锋鏌ュ瘑鐮佹槸鍚︽纭垨鑰呬紶鍏ョ殑鏁版嵁鏄惁姝g‘銆�
+ */
++ (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode encryptType:(NSInteger)type;
+
+/**
+ *  璁剧疆鍛婅淇℃伅涓哄凡璇绘帴鍙�
+ *
+ *  @param alarmIds   鍛婅淇℃伅Id鏁扮粍(鍙互鍙湁涓�涓狪d)锛屾渶澶氫负10涓猧d,鍚﹀垯浼氭姤閿�
+ *  @param status     鍛婅娑堟伅鐘舵��
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀鸿缃垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setAlarmStatus:(NSArray *)alarmIds
+                             alarmStatus:(EZMessageStatus)status
+                              completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁alarmId鍒犻櫎鍛婅淇℃伅鎺ュ彛
+ *
+ *  @param alarmIds   鍛婅淇℃伅Id鏁扮粍(鍙互鍙湁涓�涓狪d)锛屾渶澶氫负10涓狪d锛屽惁鍒欎細鎶ラ敊
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀哄垹闄ゆ垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)deleteAlarm:(NSArray *)alarmIds
+                           completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栨湭璇绘秷鎭暟锛岃澶囧簭鍒楀彿涓虹┖鏃惰幏鍙栨墍鏈夎澶囩殑鏈娑堟伅鏁�
+ *
+ *  @param deviceSerial 闇�瑕佽幏鍙栫殑璁惧搴忓垪鍙凤紝涓虹┖鏃惰繑鍥炶处鎴蜂笅鎵�鏈夎澶囩殑鏈娑堟伅鏁�
+ *  @param type         娑堟伅绫诲瀷锛欵ZMessageTypeAlarm 鍛婅娑堟伅锛�1锛夛紝EZMessageTypeLeave 鐣欒█娑堟伅锛�2锛�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖鏈鏁伴噺锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getUnreadMessageCount:(NSString *)deviceSerial
+                                    messageType:(EZMessageType)type
+                                     completion:(void (^)(NSInteger count, NSError *error))completion;
+
+#pragma mark - 璇煶鐣欒█娑堟伅鏁版嵁Api
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栬澶囩殑鐣欒█娑堟伅鍒楄〃
+ *
+ *  @param deviceSerial 闇�瑕佽幏鍙栫殑璁惧搴忓垪鍙�
+ *  @param beginTime    寮�濮嬫椂闂�
+ *  @param endTime      缁撴潫鏃堕棿
+ *  @param pageIndex    鍒嗛〉椤电爜
+ *  @param pageSize     鍒嗛〉鍗曢〉鏁伴噺
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZLeaveMessage鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getLeaveMessageList:(NSString *)deviceSerial
+                                    pageIndex:(NSInteger)pageIndex
+                                     pageSize:(NSInteger)pageSize
+                                    beginTime:(NSDate *)beginTime
+                                      endTime:(NSDate *)endTime
+                                   completion:(void (^)(NSArray *leaveMessageList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鏍规嵁leaveId璁剧疆鐣欒█娑堟伅鐘舵��
+ *
+ *  @param leaveIds   鐣欒█娑堟伅Id鏁扮粍(鏈�澶ф暟閲忎负10锛屽厑璁稿彧鏈�1涓�)
+ *  @param status     闇�瑕佽缃殑鐣欒█鐘舵�侊紝鐩墠鍙敮鎸� EZMessageStatusRead(宸茶)
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setLeaveMessageStatus:(NSArray *)leaveIds
+                                  messageStatus:(EZMessageStatus)status
+                                     completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁leaveId鍒犻櫎鐣欒█娑堟伅
+ *
+ *  @param leaveIds   鐣欒█娑堟伅Id鏁扮粍(鏈�澶ф暟閲忎负10锛屽厑璁稿彧鏈�1涓�)
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鍒犻櫎鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)deleteLeaveMessage:(NSArray *)leaveIds
+                                  completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁EZLeaveMessage瀵硅薄淇℃伅鑾峰彇璇煶鐣欒█娑堟伅鏁版嵁鎺ュ彛
+ *  @param message    鐣欒█娑堟伅瀵硅薄
+ *  @param completion 鍥炶皟block 锛坮esultCode = 1 琛ㄧず璇煶涓嬭浇鎴愬姛锛�-1琛ㄧず涓嬭浇澶辫触锛�
+ *
+ *  @return operation
+ */
++ (NSOperation *)getLeaveMessageData:(EZLeaveMessage *)message
+                          completion:(void (^)(NSData *data, NSInteger resultCode))completion;
+
+#pragma mark - VideoTalk瑙嗛閫氳瘽鐩稿叧Api
+
+/**
+ * 鑾峰彇鎵嬭〃鏈嶅姟鐩稿叧淇℃伅
+ * @param deviceId 璁惧搴忓垪鍙�
+ * @param completion operation
+ */
++ (void)requestGetWatchServerInfo:(NSString *)deviceId
+                       completion:(void (^)(id watchServerInfo, NSError *error))completion;
+
+#pragma mark - WiFi閰嶇綉鐩稿叧Api
+
+/**
+ *  灏濊瘯鏌ヨ璁惧淇℃伅锛岃澶嘩ifi閰嶇疆鍓嶆煡璇竴娆¤澶囩殑淇℃伅
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param deviceType 璁惧鍨嬪彿锛屾棤娉曡幏鍙栧埌璁惧鍨嬪彿鍒欏彲浼爊il
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZProbeDeviceInfo瀵硅薄锛岄敊璇爜杩斿洖閿欒鐮�
+ *  @see 鍏ㄦ柊鐨勮澶囨槸娌℃湁娉ㄥ唽鍒板钩鍙扮殑锛屾墍浠ヤ細鍑虹幇璁惧涓嶅瓨鍦ㄧ殑鎯呭喌锛岃澶噖ifi閰嶇疆鎴愬姛浠ュ悗浼氫笂鎶ユ暟鎹埌钀ょ煶浜戝钩鍙帮紝浠ュ悗姣忔鏌ヨ灏变笉浼氬嚭鐜拌澶囦笉瀛樺湪鐨勬儏鍐典簡銆�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)probeDeviceInfo:(NSString *)deviceSerial
+                               deviceType:(NSString *)deviceType
+                               completion:(void (^)(EZProbeDeviceInfo *deviceInfo, NSError *error))completion;
+
+/**
+ *  WiFi閰嶇疆寮�濮嬫帴鍙�
+ *
+ *  @param ssid         杩炴帴WiFi SSID
+ *  @param password     杩炴帴WiFi 瀵嗙爜
+ *  @param deviceSerial 杩炴帴WiFi鐨勮澶囩殑璁惧搴忓垪鍙�
+ *  @param statusBlock  杩斿洖杩炴帴璁惧鐨刉iFi閰嶇疆鐘舵��
+ *
+ *  @return YES/NO
+ */
++ (BOOL)startConfigWifi:(NSString *)ssid
+               password:(NSString *)password
+           deviceSerial:(NSString *)deviceSerial
+           deviceStatus:(void (^)(EZWifiConfigStatus status))statusBlock;
+
+/**
+ *  WiFi閰嶇疆寮�濮嬫帴鍙�
+ *
+ *  @param ssid         杩炴帴WiFi SSID
+ *  @param password     杩炴帴WiFi 瀵嗙爜
+ *  @param deviceSerial 杩炴帴WiFi鐨勮澶囩殑璁惧搴忓垪鍙�,鎵归噺閰嶇疆鏃跺~nil
+ *  @param mode         閰嶇綉鐨勬柟寮忥紝EZWiFiConfigMode涓垪涓剧殑妯″紡杩涜浠绘剰缁勫悎,渚嬪:EZWiFiConfigSmart|EZWiFiConfigWave
+ *  @param statusBlock  杩斿洖璁惧搴忓垪鍙蜂互鍙婂綋鍓嶈繛鎺ョ姸鎬�
+ *
+ *  @return YES/NO
+ */
++ (BOOL)startConfigWifi:(NSString *)ssid
+               password:(NSString *)password
+           deviceSerial:(NSString *)deviceSerial
+                   mode:(NSInteger)mode
+           deviceStatus:(void (^)(EZWifiConfigStatus status, NSString *deviceSerial))statusBlock;
+
+/**
+ *  @since 3.0.0
+ *  Wifi閰嶇疆鍋滄鎺ュ彛
+ *
+ *  @return YES/NO
+ */
++ (BOOL)stopConfigWifi;
+
+#pragma mark - AP閰嶇綉鐩稿叧Api
+
+/**
+ * AP閰嶇綉鎺ュ彛
+ *
+ * @param ssid WiFi鐨剆sid
+ * @param password WiFi鐨勫瘑鐮�
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param callback 缁撴灉鍥炶皟锛屾敞鎰忥細杩斿洖YES浠呬粎浠h〃鎴愬姛灏哤iFi淇℃伅鍙戦�佺粰璁惧锛屼笉浠h〃璁惧閰嶇綉鎴愬姛
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startAPConfigWifiWithSsid:(NSString *)ssid
+                         password:(NSString *)password
+                     deviceSerial:(NSString *)deviceSerial
+                       verifyCode:(NSString *)verifyCode
+                           result:(void (^)(BOOL ret))callback;
+
+/**
+ * AP閰嶇綉鎺ュ彛锛堟帹鑽愶紝v5.0鏂板锛屽皝瑁呬簡璁惧鐘舵�佽疆璇㈡楠わ級
+ *
+ * @param ssid WiFi鐨剆sid
+ * @param password WiFi鐨勫瘑鐮�
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param statusBlock 缁撴灉鍥炶皟锛岃繑鍥為厤缃戣繃绋嬩腑鐨勫悇绉嶇姸鎬�
+ *
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startAPConfigWifiWithSsid:(NSString *)ssid
+                         password:(NSString *)password
+                     deviceSerial:(NSString *)deviceSerial
+                       verifyCode:(NSString *)verifyCode
+                     deviceStatus:(void (^)(EZWifiConfigStatus status, NSString *deviceSerial))statusBlock;
+
+/**
+ * 鍋滄AP閰嶇綉
+ */
++ (void)stopAPConfigWifi;
+
+#pragma mark - 鎺ヨЕ寮忛厤缃� New AP Config
+
+/**
+ * 鑾峰彇鎺ヨЕ寮廇P閰嶇綉token
+ *
+ * @param completion 鍥炶皟
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getNewApConfigToken:(void(^)(EZConfigTokenInfo *tokenInfo, NSError *error))completion;
+
+/**
+ * 寮�濮婲ewAP閰嶇綉锛堥渶杩炴帴璁惧鐑偣锛�
+ * @param token 閰嶇綉token
+ * @param ssid WiFi ssid
+ * @param password WiFi 瀵嗙爜
+ * @param lbsDomain lbs 鍩熷悕
+ * @param handler 鍥炶皟
+ *
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startNewApConfigWithToken:(NSString *)token
+                             ssid:(NSString *)ssid
+                         password:(NSString *)password
+                        lbsDomain:(NSString *)lbsDomain
+                completionHandler:(void(^)(EZNewAPConfigStatus status, NSError *error))handler;
+
+/**
+ * 鑾峰彇璁惧鐘舵�侊紙闇�杩炴帴璁惧鐑偣锛�
+ *
+ * @param handler 鍥炶皟
+ */
++ (void)getAccessDeviceInfo:(void(^)(EZAPDevInfo *devInfo, NSError *error))handler;
+
+/**
+ * 鑾峰彇璁惧褰撳墠鍛ㄨ竟WiFi鍒楄〃锛屼笂闄�20涓紙闇�杩炴帴璁惧鐑偣锛�
+ *
+ * @param handler 鍥炶皟
+ */
++ (void)getAccessDeviceWifiList:(void(^)(NSArray<EZWiFiItemInfo*> *wifiList, NSError *error))handler;
+
+/**
+ * 鏌ヨ璁惧缁戝畾鐘舵��
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZProbeDeviceInfo瀵硅薄锛岄敊璇爜杩斿洖閿欒鐮�
+ *
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (NSURLSessionDataTask *)queryPlatformBindStatus:(NSString *)deviceSerial
+                                       completion:(void(^)(EZProbeDeviceInfo *deviceInfo, NSError *error))completion;
+
+/**
+ * 璁剧疆閰嶇綉璁惧缃戝叧鍦板潃 鍙��
+ * @param devRouteDomain 璁惧缃戝叧鍦板潃
+ */
++ (void)setDevRouteDomain:(NSString *)devRouteDomain;
+
+#pragma mark - 鐢ㄦ埛鐩稿叧Api
+
+/**
+ *  鑾峰彇鐢ㄦ埛鍩烘湰淇℃伅鐨勬帴鍙�
+ *
+ *  @param completion 鍥炶皟block锛� 姝e父鏃惰繑鍥濫ZUserInfo鐨勫璞★紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getUserInfo:(void (^)(EZUserInfo *userInfo, NSError *error))completion;
+
+#pragma mark - 鍏朵粬Api
+
+/**
+ *  鑾峰彇鍖哄煙鍒楄〃鎺ュ彛
+ *
+ *  @param completion 鍥炶皟block锛宎reaList涓殑鍏冪礌涓篍ZAreaInfo瀵硅薄
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getAreaList:(void (^)(NSArray *areaList, NSError *error))completion;
+
+/**
+ *  鑾峰彇缁堢锛堟墜鏈虹瓑锛夊敮涓�璇嗗埆鐮�
+ *
+ *  @return 缁堢鍞竴璇嗗埆鐮�
+ */
++ (NSString *)getTerminalId;
+
+/**
+ 鏍规嵁搴旂敤绫诲瀷鍒ゆ柇鏄惁瀹夎浜嗗搴旂殑搴旂敤
+ 
+ @param appType 搴旂敤绫诲瀷
+ @return YES:宸插畨瑁咃紝NO:娌℃湁瀹夎鎴栧畨瑁呯殑钀ょ煶APP鐗堟湰杩囦綆
+ */
+//+ (BOOL)isEzvizAppInstalledWithType:(EZAppType)appType;
+
+
+/**
+ 璺宠浆鍒版寚瀹氳悿鐭矨PP杩涜鎺堟潈鐧诲綍
+
+ @param appType 钀ょ煶APP绫诲瀷
+ @return 璺宠浆缁撴灉
+ */
+//+ (BOOL)ezvizLoginWithAppType:(EZAppType)appType;
+
+/**
+ 璺宠浆鍒版寚瀹欰PP鐨勬寚瀹氱晫闈�
+ 
+ @param pageType 鐣岄潰绫诲瀷
+ @param appType APP绫诲瀷
+ @return 璺宠浆缁撴灉
+ */
+//+ (BOOL)gotoEzvizAppPage:(EZAppPageType)pageType appType:(EZAppType)appType;
+
+#pragma mark - DDNS鐩稿叧
+
+/**
+ *  閫氳繃璁惧搴忓垪鍙峰拰璁惧鍩熷悕鑾峰彇璁惧ddns淇℃伅
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param domain 璁惧鍩熷悕
+ *  @param completion   鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getHiddnsDeviceInfo:(NSString *)deviceSerial
+                                       domain:(NSString *)domain
+                                   completion:(void (^)(EZHiddnsDeviceInfo *ddnsDeviceInfo, NSError *error))completion;
+
+/**
+ *  璇ユ帴鍙g敤浜庤缃澶嘾dns鍩熷悕锛屽寘鎷缃垎浜幏寰楃殑璁惧鐨刣dns鍩熷悕
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param domain 璁惧鍩熷悕,璁惧鍩熷悕瑙勫垯淇敼锛屼笉鑳戒负绌猴紝6-32浣嶏紝鍙互涓烘湰韬簭鍒楀彿锛屽寘鍚皬鍐欏瓧姣嶃�佹暟瀛椼��-锛岄浣嶅繀椤诲瓧姣嶏紝鏈綅涓嶈兘涓�-
+ *  @param completion   鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setHiddnsDomain:(NSString *)deviceSerial
+                                   domain:(NSString *)domain
+                               completion:(void (^)(NSError *error))completion;
+
+/**
+ *  璁剧疆璁惧鐨凞DNS鏄犲皠鏂瑰紡涓鸿嚜鍔ㄦ槧灏�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setHiddnsModeAuto:(NSString *)deviceSerial
+                                 completion:(void (^)(NSError *error))completion;
+
+/**
+ *  璁剧疆璁惧鐨凞DNS鏄犲皠鏂瑰紡涓烘墜鍔ㄦ槧灏�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param httpPort http绔彛鍙�
+ *  @param cmdPort 鏈嶅姟绔彛鍙�
+ *  @param completion   鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setHiddnsModeManual:(NSString *)deviceSerial
+                                     httpPort:(NSInteger)httpPort
+                                      cmdPort:(NSInteger)cmdPort
+                                   completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鑾峰彇褰撳墠璐﹀彿涓嬬殑鎵�鏈夎澶囩殑DDNS淇℃伅
+ *
+ *  @param pageIndex 鍒嗛〉璧峰椤碉紝浠�0寮�濮嬶紝榛樿涓�0
+ *  @param pageSize 鍒嗛〉澶у皬锛岄粯璁や负10锛屾渶澶т负50
+ *  @param completion   鍥炶皟block ddnsDeviceList涓璞′负EZHiddnsDeviceInfo
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getHiddnsDeviceList:(NSInteger)pageIndex
+                                     pageSize:(NSInteger)pageSize
+                                   completion:(void (^)(NSArray *ddnsDeviceList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鎶婂崟涓澶囩殑DDNS淇℃伅鍒嗕韩缁欏叾浠栬处鎴�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param account 琚垎浜处鎴凤紝鍙互鏄偖绠卞湴鍧�鎴栨墜鏈哄彿鐮侊紙鍖呭惈鍥藉浠g爜锛夋垨涓嶆槸鍏ㄦ暟瀛楃殑鐢ㄦ埛鍚�
+ *  @param completion   鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)shareHiddnsDevice:(NSString *)deviceSerial
+                                    account:(NSString *)account
+                                 completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鑾峰彇褰撳墠璐﹀彿涓嬬殑鎵�鏈夌殑鍏跺畠璐︽埛鍒嗕韩缁欒嚜宸辩殑璁惧DDNS淇℃伅
+ *
+ *  @param pageIndex 鍒嗛〉璧峰椤碉紝浠�0寮�濮嬶紝榛樿涓�0
+ *  @param pageSize 鍒嗛〉澶у皬锛岄粯璁や负10锛屾渶澶т负50
+ *  @param completion   鍥炶皟block ddnsDeviceList涓璞′负EZHiddnsDeviceInfo
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getShareHiddnsDeviceList:(NSInteger)pageIndex
+                                          pageSize:(NSInteger)pageSize
+                                        completion:(void (^)(NSArray *ddnsDeviceList, NSInteger totalCount, NSError *error))completion;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZHCNetDeviceInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZHCNetDeviceInfo.h
new file mode 100644
index 0000000..23946a9
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZHCNetDeviceInfo.h
@@ -0,0 +1,36 @@
+//
+//  EZHCNetDeviceInfo.h
+//  EzvizOpenSDK
+//
+//  Created by linyong on 2017/9/15.
+//  Copyright 漏 2017骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface EZHCNetDeviceInfo : NSObject
+
+///鐧诲綍鍚巙ser id
+@property (nonatomic,assign) NSInteger userId;
+///妯℃嫙閫氶亾鏁�
+@property (nonatomic,assign) NSInteger channelCount;
+///妯℃嫙閫氶亾璧峰閫氶亾鍙�,0涓烘棤鏁堟灉
+@property (nonatomic,assign) NSInteger startChannelNo;
+///鏁板瓧閫氶亾鏁�
+@property (nonatomic,assign) NSInteger dChannelCount;
+///璧峰鏁板瓧閫氶亾鍙凤紝0涓烘棤鏁堟灉
+@property (nonatomic,assign) NSInteger dStartChannelNo;
+///鍛婅杈撳叆涓暟
+@property (nonatomic,assign) NSInteger byAlarmInPortNum;
+///鍛婅杈撳嚭涓暟
+@property (nonatomic,assign) NSInteger byAlarmOutPortNum;
+///纭洏涓暟
+@property (nonatomic,assign) NSInteger byDiskNum;
+///璁惧绫诲瀷
+@property (nonatomic,assign) NSInteger byDVRType;
+///闆堕�氶亾涓暟
+@property (nonatomic,assign) NSInteger byZeroChanNum;
+///璁惧璇煶閫氶亾鏁�
+@property (nonatomic,assign) NSInteger byAudioChanNum;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZHCNetDeviceSDK.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZHCNetDeviceSDK.h
new file mode 100644
index 0000000..fa3a71f
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZHCNetDeviceSDK.h
@@ -0,0 +1,146 @@
+//
+//  EZHCNetDeviceSDK.h
+//  EzvizOpenSDK
+//
+//  Created by linyong on 2017/8/15.
+//  Copyright 漏 2017骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@class EZHCNetDeviceInfo, EZSADPDeviceInfo;
+
+typedef NS_ENUM(int, EZPTZCommandType) {
+    EZPTZCommandType_ZOOM_IN = 11,     /* 鐒﹁窛鍙樺ぇ(鍊嶇巼鍙樺ぇ) */
+    EZPTZCommandType_ZOOM_OUT = 12,    /* 鐒﹁窛鍙樺皬(鍊嶇巼鍙樺皬) */
+    EZPTZCommandType_UP = 21,          /* 浜戝彴涓婁话 */
+    EZPTZCommandType_DOWN,             /* 浜戝彴涓嬩刊 */
+    EZPTZCommandType_LEFT,             /* 浜戝彴宸﹁浆 */
+    EZPTZCommandType_RIGHT,            /* 浜戝彴鍙宠浆 */
+    EZPTZCommandType_UP_LEFT,          /* 浜戝彴涓婁话鍜屽乏杞� */
+    EZPTZCommandType_UP_RIGHT,         /* 浜戝彴涓婁话鍜屽彸杞� */
+    EZPTZCommandType_DOWN_LEFT,        /* 浜戝彴涓嬩刊鍜屽乏杞� */
+    EZPTZCommandType_DOWN_RIGHT,       /* 浜戝彴涓嬩刊鍜屽彸杞� */
+    EZPTZCommandType_PAN_AUTO,         /* 浜戝彴宸﹀彸鑷姩鎵弿 */
+    EZPTZCommandType_MAX               /* 瓒婄晫鏍囪瘑 */
+};
+
+typedef NS_ENUM(int, EZPTZActionType) {
+    EZPTZActionType_START = 0,      /* 寮�濮� */
+    EZPTZActionType_STOP,           /* 鍋滄 */
+    EZPTZActionType_MAX             /* 瓒婄晫鏍囪瘑 */
+};
+
+typedef NS_ENUM(int, EZEncryptType) {
+    EZEncryptType_OEMBlue = 0,              //钃濈簿鐏靛姞瀵�
+    EZEncryptType_OEMGreen,                 //缁垮法浜哄姞瀵�
+    EZEncryptType_normal                    //娌℃湁鍔犲瘑
+};
+
+@interface EZHCNetDeviceSDK : NSObject
+
+/**
+ 鍒濆鍖朣DK
+ */
++ (void)initSDK;
+
+/**
+ 寮�濮嬫悳绱㈠眬鍩熺綉璁惧
+
+ @param searchCallback 鎼滅储缁撴灉鍥炶皟锛屾瘡鎼滃埌涓�涓澶囬兘浼氬洖璋冧竴娆★紝璁惧淇℃伅EZSADPDeviceInfo
+ @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startLocalSearch:(void(^)(EZSADPDeviceInfo *device,NSError *error))searchCallback;
+
+/**
+ 鍋滄鎼滅储
+
+ @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)stopLocalSearch;
+
+/**
+ 娓呴櫎缁撴灉锛岄噸鏂版悳绱紝鍓嶆彁鏄箣鍓嶅紑鍚繃鎼滅储
+ */
++ (void)research;
+
+/**
+ 鑾峰彇SADP鐗堟湰鍙�
+ */
++ (int)getSadpVersion;
+
+/**
+ 婵�娲昏澶囷紝璋冪敤stopLocalSearch鍚庡皢鏃犳硶婵�娲昏澶�
+
+ @param serial 璁惧搴忓垪鍙�
+ @param pwd 婵�娲诲瘑鐮�
+ @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)activeDeviceWithSerial:(NSString *)serial pwd:(NSString *)pwd;
+
+/**
+ 鐧诲綍灞�鍩熺綉璁惧
+
+ @param userName 鐢ㄦ埛鍚�
+ @param pwd 鐢ㄦ埛瀵嗙爜
+ @param ipAddr 璁惧ip鍦板潃
+ @param port 璁惧绔彛鍙�
+ @return 鐧诲綍閿欒鏃惰繑鍥瀗il
+ */
++ (EZHCNetDeviceInfo *)loginDeviceWithUerName:(NSString *)userName
+                                          pwd:(NSString *)pwd
+                                       ipAddr:(NSString *)ipAddr
+                                         port:(NSInteger)port;
+
+/**
+ 鐧诲嚭灞�鍩熺綉璁惧
+
+ @param userId 鐢ㄦ埛id
+ @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)logoutDeviceWithUserId:(NSInteger)userId;
+
+/**
+ 灞�鍩熺綉璁惧浜戝彴鎺у埗鎺ュ彛
+
+ @param userId 鐢ㄦ埛id
+ @param channelNo 閫氶亾鍙�
+ @param command 鍛戒护绫诲瀷 EZPTZCommandType
+ @param action 鍔ㄤ綔绫诲瀷 EZPTZActionType
+ @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)ptzControlWithUserId:(NSInteger)userId
+                   channelNo:(NSInteger)channelNo
+                     command:(EZPTZCommandType)command
+                      action:(EZPTZActionType)action;
+
+/**
+ 璁剧疆鍔犲瘑鏂瑰紡
+
+ @param encryptType 鍔犲瘑鏂瑰紡
+ @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)setEncryptType:(EZEncryptType)encryptType;
+
+/**
+ AP閰嶇綉鎺ュ彛
+
+ @param ssid WiFi鐨剆sid
+ @param password WiFi鐨勫瘑鐮�
+ @param deviceSerial 璁惧搴忓垪鍙�
+ @param verifyCode 璁惧楠岃瘉鐮�
+ @param callback 缁撴灉鍥炶皟
+ @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startAPConfigWifiWithSsid:(NSString *)ssid
+                         password:(NSString *)password
+                     deviceSerial:(NSString *)deviceSerial
+                       verifyCode:(NSString *)verifyCode
+                           result:(void (^)(BOOL ret))callback;
+
+/**
+ 鍋滄AP閰嶇綉
+ */
++ (void)stopAPConfigWifi;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZHiddnsDeviceInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZHiddnsDeviceInfo.h
new file mode 100644
index 0000000..4627fa0
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZHiddnsDeviceInfo.h
@@ -0,0 +1,84 @@
+//
+//  EZHiddnsDeviceInfo.h
+//  EzvizOpenSDK
+//
+//  Created by linyong on 2017/9/9.
+//  Copyright 漏 2017骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface EZHiddnsDeviceInfo : NSObject
+
+///璁惧鍩熷悕
+@property (nonatomic,copy) NSString *domain;
+
+///璁惧澶栫綉鍦板潃
+@property (nonatomic,copy) NSString *deviceIp;
+
+///璁惧鐭簭鍒楀彿
+@property (nonatomic,copy) NSString *subSerial;
+
+///璁惧闀垮簭鍒楀彿
+@property (nonatomic,copy) NSString *serial;
+
+///璁惧鍚嶇О
+@property (nonatomic,copy) NSString *deviceName;
+
+///鏄犲皠妯″紡锛�1-鎵嬪姩锛�0-鑷姩
+@property (nonatomic,assign) NSInteger upnpMappingMode;
+
+///鎵嬪姩鏄犲皠http绔彛锛寀pnpMappingMode=1鏃朵娇鐢�
+@property (nonatomic,assign) NSInteger mappingHiddnsHttpPort;
+
+///鏄犲皠http绔彛
+@property (nonatomic,assign) NSInteger hiddnsHttpPort;
+
+///鏄犲皠https绔彛
+@property (nonatomic,assign) NSInteger hiddnsHttpsPort;
+
+///鎵嬪姩鏄犲皠鏈嶅姟绔彛锛寀pnpMappingMode=1鏃朵娇鐢�
+@property (nonatomic,assign) NSInteger mappingHiddnsCmdPort;
+
+///鏄犲皠鏈嶅姟绔彛
+@property (nonatomic,assign) NSInteger hiddnsCmdPort;
+
+///鏄犲皠鍙栨祦绔彛
+@property (nonatomic,assign) NSInteger hiddnsRtspPort;
+
+/////璁惧灞�鍩熺綉IP鍦板潃
+//@property (nonatomic,copy) NSString *localIp;
+//
+/////鏈湴http绔彛
+//@property (nonatomic,assign) NSInteger localHiddnsHttpPort;
+//
+/////鏈湴https绔彛
+//@property (nonatomic,assign) NSInteger localHiddnsHttpsPort;
+//
+/////鏈湴鏈嶅姟绔彛
+//@property (nonatomic,assign) NSInteger localHiddnsCmdPort;
+//
+/////鏈湴鍙栨祦绔彛
+//@property (nonatomic,assign) NSInteger localHiddnsRtspPort;
+//
+/////澶栫綉Telenet绔彛
+//@property (nonatomic,assign) NSInteger cmdPort;
+//
+/////澶栫綉Http鐩戝惉鐨勭鍙PNP妫�娴嬩娇鐢�
+//@property (nonatomic,assign) NSInteger httpPort;
+//
+/////澶栫綉鎺ㄦ祦浣跨敤鐨勭洃鍚鍙�
+//@property (nonatomic,assign) NSInteger streamPort;
+//
+/////鍐呯綉Telent绔彛
+//@property (nonatomic,assign) NSInteger localCmdPort;
+//
+/////鍐呯綉Http鐩戝惉鐨勭鍙PNP妫�娴嬩娇鐢�
+//@property (nonatomic,assign) NSInteger localHttpPort;
+//
+/////鍐呯綉鎺ㄦ祦浣跨敤鐨勭洃鍚鍙�
+//@property (nonatomic,assign) NSInteger localStreamPort;
+
+
+@end
+
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZLeaveMessage.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZLeaveMessage.h
new file mode 100644
index 0000000..dbf5c62
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZLeaveMessage.h
@@ -0,0 +1,41 @@
+//
+//  EZLeaveMessage.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/12/11.
+//  Copyright 漏 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓虹暀瑷�娑堟伅瀵硅薄
+@interface EZLeaveMessage : NSObject
+
+/// 娑堟伅Id
+@property (nonatomic, copy) NSString *id;
+/// 璁惧搴忓垪鍙�
+@property (nonatomic, copy) NSString *deviceSerial;
+/// 璁惧鍚嶇О
+@property (nonatomic, copy) NSString *deviceName;
+/// 鐣欒█鏃堕暱锛堝崟浣嶏細绉掞級
+@property (nonatomic) NSInteger duration;
+/// 鐣欒█娑堟伅绫诲瀷锛�1-璇煶鐣欒█ 2-瑙嗛鐣欒█
+@property (nonatomic) NSInteger contentType;
+/// 鎺ユ敹or鍥炲锛�1-鐢ㄦ埛鎺ユ敹锛堣澶囧彂閫侊級2-鐢ㄦ埛鍥炲锛堝鎴风鍙戦�侊級
+@property (nonatomic) NSInteger messageDirection;
+/// 鍙戦�佺绫诲瀷锛�1鈥揊1璁惧 2鈥揥eb瀹㈡埛绔� 3鈥搃Phone瀹㈡埛绔� 4鈥搃Pad瀹㈡埛绔� 5鈥揳ndroid瀹㈡埛绔� 6鈥揳ndroidPad瀹㈡埛绔�
+@property (nonatomic) NSInteger senderType;
+/// 鍙戦�佺鍒悕
+@property (nonatomic, copy) NSString *senderName;
+/// 鐣欒█灏侀潰鎴浘鍦板潃
+@property (nonatomic, copy) NSString *messagePicUrl;
+/// 娑堟伅鐘舵�侊細0-鏈 1-宸茶 2-鍒犻櫎
+@property (nonatomic) NSInteger status;
+/// 浜戝瓨鍌ㄦ湇鍔″櫒鍦板潃锛岀洰鍓嶉粯璁や负姝︽眽浜戝瓨鍌紝鏍煎紡涓�:{鍩熷悕:绔彛}
+@property (nonatomic, copy) NSString *cloudServerUrl;
+/// 鍒涘缓鏃堕棿
+@property (nonatomic, strong) NSDate *createTime;
+/// 淇敼鏃堕棿
+@property (nonatomic, strong) NSDate *updateTIme;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZOpenSDK.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZOpenSDK.h
new file mode 100644
index 0000000..47fc8e3
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZOpenSDK.h
@@ -0,0 +1,946 @@
+//
+//  EZOpenSDK.h
+//  EZOpenSDK
+//
+//  Created by JuneCheng on 2022/7/18.
+//
+
+#import <Foundation/Foundation.h>
+#import "EZConstants.h"
+#import "EZConstants_Auth.h"
+#import "EZConstants_WifiConfig.h"
+
+@class EZPlayer;
+@class EZDeviceInfo;
+@class EZAccessToken;
+@class EZCameraInfo;
+@class EZDeviceVersion;
+@class EZUserInfo;
+@class EZProbeDeviceInfo;
+@class EZDeviceUpgradeStatus;
+@class EZLeaveMessage;
+@class EZWiFiItemInfo, EZAPDevInfo, EZConfigTokenInfo;
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZOpenSDK : NSObject
+
+#pragma mark - Auth璁よ瘉鐩稿叧Api
+
+/**
+ *  瀹炰緥EZOpenSDK鎺ュ彛
+ *
+ *  @param appKey 浼犲叆鐢宠鐨刟ppKey
+ *
+ *  @return YES/NO
+ */
++ (BOOL)initLibWithAppKey:(NSString *)appKey;
+
+/**
+ *  鍒濆鍖栨帴鍙o紝鍙缃湇鍔″櫒锛屾捣澶栫敤鎴蜂娇鐢ㄨ鍒濆鍖栨柟娉�
+ *
+ *  @param appKey 浼犲叆鐢宠鐨刟ppKey
+ *  @param apiUrl apiUrl鍦板潃
+ *  @param authUrl auth鍦板潃
+ *
+ *  @return YES/NO
+ */
++ (BOOL)initLibWithAppKey:(NSString *)appKey
+                      url:(NSString *)apiUrl
+                  authUrl:(NSString *)authUrl;
+
+/**
+ *  閿�姣丒ZOpenSDK鎺ュ彛
+ *
+ *  @return YES/NO
+ */
++ (BOOL)destoryLib;
+
+/**
+ *  璁剧疆鏄惁鎵撳嵃debug鏃ュ織,闇�鍦ㄥ垵濮嬪寲sdk涔嬪墠璋冪敤
+ *
+ *  @param enable 鏄惁鎵撳嵃鏃ュ織锛岄粯璁ゅ叧闂�
+ *
+ *  @return YES/NO
+ */
++ (BOOL)setDebugLogEnable:(BOOL)enable;
+
+/**
+ *  璁剧疆debug鏃ュ織鍥炶皟,闇�鍦ㄥ垵濮嬪寲sdk涔嬪墠璋冪敤
+ *
+ *  @param logCallback 鏃ュ織鍥炶皟
+ */
++ (void)setDebugLogCallBack:(void(^)(NSString *logStr))logCallback;
+
+/**
+ *  鎵撳紑鎺堟潈鐧诲綍涓棿椤甸潰鎺ュ彛
+ *
+ *  @param block 鍥炶皟block
+*/
++ (void)openLoginPage:(void (^)(EZAccessToken *accessToken))block;
+
+/**
+ *  鎺堟潈鐧诲綍浠ュ悗缁橢ZOpenSDK璁剧疆accessToken鎺ュ彛
+ *
+ *  @param accessToken 鎺堟潈鐧诲綍鑾峰彇鐨刟ccessToken
+ */
++ (void)setAccessToken:(NSString *)accessToken;
+
+/**
+ *  璐︽埛娉ㄩ攢鎺ュ彛
+ *
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鐧诲嚭鎴愬姛
+ */
++ (void)logout:(void (^)(NSError *error))completion;
+
+
+/**
+ 澶栭儴璺宠浆澶勭悊鏂规硶锛岄�傜敤浜巌OS9浠ヤ笂锛屽寘鎷琲OS9
+
+ @param url 璺宠浆杩囨潵鐨剈rl
+ @param options 鍙傛暟锛岄粯璁や负绌猴紝鐩墠鏈繘琛屽鐞嗭紝棰勭暀
+ @param delegate 濮旀墭
+ @return 缁撴灉
+ */
++ (BOOL)handleOpenUrl:(NSURL *)url options:(NSDictionary *)options delegate:(id<EZOpenSDKDelegate>)delegate;
+
+/**
+ *  鑾峰彇SDK鐗堟湰鍙锋帴鍙�
+ *
+ *  @return 鐗堟湰鍙�
+ */
++ (NSString *)getVersion;
+
+/**
+ *  鎵撳紑浜戝瓨鍌ㄤ腑闂撮〉
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param channelNo    璁惧閫氶亾鍙�
+ */
++ (void)openCloudPage:(NSString *)deviceSerial channelNo:(NSInteger)channelNo;
+
+/**
+ *  鎵撳紑淇敼瀵嗙爜涓棿椤�
+ *
+ *  @param completion 鍥炶皟block resultCode涓�0鏃惰〃绀轰慨鏀瑰瘑鐮佹垚鍔�
+ */
++ (void)openChangePasswordPage:(void (^)(NSInteger resultCode))completion;
+
+/**
+ 鏄惁宸茬粡鐧诲綍
+
+ @return YES锛氬凡缁忕櫥褰曪紱NO锛氭湭鐧诲綍
+ */
++ (BOOL)isLogin;
+
+/**
+ 鑾峰彇褰撳墠accessToken
+
+ @return accessToken
+ */
++ (NSString *)getAccesstoken;
+
+#pragma mark - 鎾斁鍣ㄥ垱寤篈pi
+
+/**
+ *  鏍规嵁cameraId鏋勯�燛ZPlayer瀵硅薄
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithDeviceSerial:(NSString *)deviceSerial
+                                  cameraNo:(NSInteger)cameraNo;
+
+/**
+ *  鏍规嵁cameraId鏋勯�燛ZPlayer瀵硅薄锛坒or 鍥芥爣锛�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param strCameraNo     閫氶亾鍙�
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithDeviceSerial:(NSString *)deviceSerial
+                               strCameraNo:(NSString *)strCameraNo DEPRECATED_MSG_ATTRIBUTE("use createPlayerWithDeviceSerial:cameraNo: instead");
+
+/**
+ *  涓�涓〉闈㈠瓨鍦ㄥ涓棰戜娇鐢ㄦ渶灏忕殑鐮佹祦锛屾病鏈夊瓙鐮佹祦鐨勮瘽杩樻槸浣跨敤涓荤爜娴�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     铏氭嫙閫氶亾
+ *  @param useSubStream   鏄惁浣跨敤瀛愮爜娴�
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithDeviceSerial:(NSString *)deviceSerial
+                                  cameraNo:(NSInteger)cameraNo
+                              useSubStream:(BOOL)useSubStream;
+
+/**
+ *  鏍规嵁url鏋勯�燛ZPlayer瀵硅薄 锛堜富瑕佺敤鏉ュ鐞嗚棰戝箍鍦虹殑鎾斁锛�
+ *
+ *  @param url 鎾斁url锛岀洰鍓嶅彧鏀寔璇ュ崗璁細ysproto://vtm.ys7.com:8554/live?dev=531993276&chn=1&stream=1&cln=1&isp=0&biz=3
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithUrl:(NSString *)url;
+
+
+/**
+ *  閲婃斁EZPlayer瀵硅薄
+ *
+ *  @param player EZPlayer瀵硅薄
+ *
+ *  @return YES/NO
+ */
++ (BOOL)releasePlayer:(EZPlayer *)player;
+
+#pragma mark - 鍙栨祦鐩稿叧Api
+
+/**
+ *  璁剧疆p2p鍔熻兘鏄惁寮�鍚帴鍙o紝榛樿涓嶅紑鍚痯2p锛岀敤鎴疯嚜宸遍�夋嫨鏄惁寮�鍚�
+ *
+ *  @param enable p2p鏄惁寮�鍚�
+ */
++ (void)enableP2P:(BOOL)enable;
+
+/**
+ *  娓呴櫎鍙栨祦鏃剁殑缂撳瓨鏁版嵁
+ */
++ (void)clearStreamInfoCache;
+
+/**
+ *  鏄惁鏀寔鍥芥爣
+ *  @param enable YES or NO
+ */
++ (void)enableNationalStandard:(BOOL)enable;
+
+/**
+ *  鑾峰彇鎵�鏈夌殑p2p棰勮繛鎺ヨ澶囧簭鍒楀彿锛堝寘鎷鍦ㄨ繘琛岄鎿嶄綔鐨勪互鍙婇鎿嶄綔瀹屾垚鐨勶級
+ *
+ *  @return 璁惧搴忓垪鍙锋暟缁�
+ */
++ (NSArray<NSString *> *)getAllProcessedPreconnectSerials;
+
+/**
+ *  鑾峰彇鎵�鏈夋鍦ㄦ帓闃熺殑p2p棰勮繛鎺ヨ澶囧簭鍒楀彿锛堟寚杩樻病鏈夎繘琛岄鎿嶄綔鐨勶級
+ *
+ *  @return 璁惧搴忓垪鍙锋暟缁�
+ */
++ (NSArray<NSString *> *)getAllToDoPreconnectSerials;
+
+/**
+ *  瀵规煇涓�璁惧杩涜p2p棰勮繛鎺ユ搷浣�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ */
++ (void)startP2PPreconnect:(NSString *)deviceSerial;
+
+/**
+ *  瀵规煇涓�璁惧杩涜p2p棰勮繛鎺ユ竻闄ゆ搷浣�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ */
++ (void)clearP2PPreconnect:(NSString *)deviceSerial;
+
+#pragma mark - 褰曞儚鏌ヨApi
+
+/**
+ *  鏌ヨ浜戝瓨鍌ㄥ綍鍍忎俊鎭垪琛ㄦ帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param beginTime    鏌ヨ鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ *  @param endTime      鏌ヨ鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZCloudRecordFile鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)searchRecordFileFromCloud:(NSString *)deviceSerial
+                                           cameraNo:(NSInteger)cameraNo
+                                          beginTime:(NSDate *)beginTime
+                                            endTime:(NSDate *)endTime
+                                         completion:(void (^)(NSArray *couldRecords, NSError *error))completion;
+
+/**
+ *  鏌ヨ杩滅▼SD鍗″瓨鍌ㄥ綍鍍忎俊鎭垪琛ㄦ帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param beginTime    鏌ヨ鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ *  @param endTime      鏌ヨ鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZDeviceRecordFile鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)searchRecordFileFromDevice:(NSString *)deviceSerial
+                                            cameraNo:(NSInteger)cameraNo
+                                           beginTime:(NSDate *)beginTime
+                                             endTime:(NSDate *)endTime
+                                          completion:(void (^)(NSArray *deviceRecords, NSError *error))completion;
+
+/**
+ *  鏌ヨ杩滅▼SD鍗″瓨鍌ㄥ綍鍍忎俊鎭垪琛ㄦ帴鍙o紝鍚屼竴涓綍鍍忓彲浠ュ悓鏃舵槸瀹氭椂褰曞儚鍜屼簨浠跺綍鍍�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param beginTime    鏌ヨ鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ *  @param endTime      鏌ヨ鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ *  @param videoRecordType      褰曞儚绫诲瀷
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZDeviceRecordFile鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)searchRecordFileFromDevice:(NSString *)deviceSerial
+                                            cameraNo:(NSInteger)cameraNo
+                                           beginTime:(NSDate *)beginTime
+                                             endTime:(NSDate *)endTime
+                                     videoRecordType:(EZVideoRecordType)videoRecordType
+                                          completion:(void (^)(NSArray *deviceRecords, NSError *error))completion;
+
+/**
+ *  鑾峰彇鎸囧畾鏃堕棿鍐呯殑鎵�鏈夊綍鍍忔枃浠�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙凤紝浼犲叆<=0鐨勫�煎垯涓洪粯璁ゅ��
+ *  @param beginTime    寮�濮嬫椂闂达紝浼犲叆nil鍒欎负褰撳ぉ00:00:00
+ *  @param endTime      缁撴潫鏃堕棿锛屼紶鍏il鍒欎负褰撳ぉ23:59:59
+ *  @param rectype      鍥炴斁婧愶紝0-绯荤粺鑷姩閫夋嫨锛�1-浜戝瓨鍌紝2-鏈湴褰曞儚銆傞潪蹇呴�夛紝榛樿涓�0锛屼紶鍏ヨ礋鍊煎垯涓洪粯璁ゅ��
+ *  @param bizType       璁惧褰掑睘涓氬姟鏉ユ簮
+ *  @param platFormId  骞冲彴ID
+ *  @param completion   鍥炶皟block records:EzvizRecordFileInfo鐨勬暟缁�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)searchRecordFile:(NSString *)deviceSerial
+                                  cameraNo:(NSString *)cameraNo
+                                 beginTime:(NSDate *)beginTime
+                                   endTime:(NSDate *)endTime
+                                   recType:(NSInteger)rectype
+                                   bizType:(NSString *)bizType
+                                platFormId:(NSString *)platFormId
+                                completion:(void (^)(id records, NSError *error))completion;
+
+#pragma mark - 璁惧鐩稿叧Api
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙峰拰璁惧楠岃瘉鐮佹坊鍔犺澶囨帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param verifyCode   璁惧楠岃瘉鐮�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)addDevice:(NSString *)deviceSerial
+                         verifyCode:(NSString *)verifyCode
+                         completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鑾峰彇鐢ㄦ埛鎵�鏈夌殑璁惧鍒楄〃
+ *
+ *  @param pageIndex  鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
+ *  @param pageSize   鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
+ *  @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞℃暟缁勫拰璁惧鎬绘暟锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceList:(NSInteger)pageIndex
+                               pageSize:(NSInteger)pageSize
+                             completion:(void (^)(NSArray *deviceList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鑾峰彇鍒嗕韩缁欑敤鎴风殑璁惧鍒楄〃鎺ュ彛
+ *
+ *  @param pageIndex  鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
+ *  @param pageSize   鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
+ *  @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞℃暟缁勫拰璁惧鎬绘暟锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getSharedDeviceList:(NSInteger)pageIndex
+                                     pageSize:(NSInteger)pageSize
+                                   completion:(void (^)(NSArray *deviceList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鏍规嵁搴忓垪鍙疯幏鍙栬澶囦俊鎭�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞★紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceInfo:(NSString *)deviceSerial
+                             completion:(void (^)(EZDeviceInfo *deviceInfo, NSError *error))completion;
+
+/**
+ *  鑾峰彇璁惧鐨勭増鏈俊鎭帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZDeviceVersion鐨勫璞′俊鎭紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceVersion:(NSString *)deviceSerial
+                                completion:(void (^)(EZDeviceVersion *version, NSError *error))completion;
+
+/**
+ *  閫氳繃璁惧楠岃瘉鐮佸紑鍏宠棰戝浘鐗囧姞瀵嗘帴鍙�
+ *
+ *  @param isEncrypt    鏄惁鍔犲瘑锛屽彧鏈塏O(鍏抽棴)鐨勬椂鍊欓渶瑕佽澶囬獙璇佺爜鐨勭浉鍏冲弬鏁�(vaildateCode)
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param verifyCode 璁惧楠岃瘉鐮�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setDeviceEncryptStatus:(NSString *)deviceSerial
+                                      verifyCode:(NSString *)verifyCode
+                                         encrypt:(BOOL)isEncrypt
+                                      completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙蜂慨鏀硅澶囧悕绉版帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param deviceName   璁惧鍚嶇О
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀轰慨鏀规垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setDeviceName:(NSString *)deviceName
+                           deviceSerial:(NSString *)deviceSerial
+                             completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙峰垹闄ゅ綋鍓嶈处鍙风殑璁惧鎺ュ彛
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀哄垹闄ゆ垚鍔�
+ *  @see 璇ユ帴鍙d笌缁堢缁戝畾鍔熻兘鐩稿叧锛屼細閬囧埌鍒犻櫎鏃舵姤106002鐨勯敊璇紝璇峰叧闂粓绔粦瀹氫互鍚庡啀璇�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)deleteDevice:(NSString *)deviceSerial
+                            completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栧瓨鍌ㄤ粙璐ㄧ姸鎬�(濡傛槸鍚﹀垵濮嬪寲锛屾牸寮忓寲杩涘害绛�)
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZStorageInfo鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getStorageStatus:(NSString *)deviceSerial
+                                completion:(void (^)(NSArray *storageStatus, NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙峰拰鍒嗗尯缂栧彿鏍煎紡鍖栧垎鍖猴紙SD鍗★級
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param storageIndex 鏌ヨ杩斿洖鐨勫垎鍖哄彿锛�0琛ㄧず鍏ㄩ儴鏍煎紡鍖栵紝鍙兘浼氭湁鍑犲潡纭洏鐨勬儏鍐�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)formatStorage:(NSString *)deviceSerial
+                           storageIndex:(NSInteger)storageIndex
+                             completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栬澶囧崌绾ф椂鐨勮繘搴︾姸鎬�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZDeviceUpgradeStatus瀵硅薄锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceUpgradeStatus:(NSString *)deviceSerial
+                                      completion:(void (^)(EZDeviceUpgradeStatus *status, NSError *error))completion;
+
+/**
+ *  閫氳繃璁惧搴忓垪鍙峰璁惧杩涜鍗囩骇鎿嶄綔锛屽墠鎻愭槸璇ヨ澶囨湁鏇存柊杞欢鐨勬彁绀�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖琛ㄧず鎿嶄綔鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)upgradeDevice:(NSString *)deviceSerial
+                             completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鑾峰彇鎶撳彇鎽勫儚澶村浘鐗囩殑url鎺ュ彛
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖url鍦板潃淇℃伅锛岄敊璇椂杩斿洖閿欒鐮�
+ *  @see 璇ユ帴鍙f瘮杈冭�楁椂锛屼笉寤鸿杩涜鎵归噺璁惧鎶撳浘锛孲DK鍐呴儴鍙敮鎸�6涓猦ttp璇锋眰骞跺彂锛岃鎺ュ彛浼氭寔缁崰鐢╤ttp璇锋眰璧勬簮锛屽鏋滈亣鍒癶ttp璇锋眰寤舵椂宸ㄥぇ闂锛屼紭鍏堣�冭檻鎶撳浘鎺ュ彛骞跺彂閫犳垚鐨勯棶棰�,
+ *  鎶撳浘灏嗗湪鏈嶅姟鍣ㄧ淇濈暀2涓皬鏃�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)captureCamera:(NSString *)deviceSerial
+                               cameraNo:(NSInteger)cameraNo
+                             completion:(void (^)(NSString *url, NSError *error))completion;
+
+/**
+ *  璁剧疆璁惧閫氶亾鐨勬竻鏅板害
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param videoLevel   閫氶亾娓呮櫚搴︼紝0-娴佺晠锛�1-鍧囪 锛�2-楂樻竻锛�3-瓒呮竻
+ *  @param completion   鍥炶皟block锛屾棤error琛ㄧず璁剧疆鎴愬姛
+ *  @see 濡傛灉鏄鍦ㄦ挱鏀炬椂璋冪敤璇ユ帴鍙o紝璁剧疆娓呮櫚搴︽垚鍔熶互鍚庡繀椤昏EZPlayer璋冪敤stopRealPlay鍐嶈皟鐢╯tartRealPlay閲嶆柊鍙栨祦鎵嶆垚瀹屾垚鐢婚潰娓呮櫚搴︾殑鍒囨崲銆�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setVideoLevel:(NSString *)deviceSerial
+                               cameraNo:(NSInteger)cameraNo
+                             videoLevel:(EZVideoLevelType)videoLevel
+                             completion:(void (^)(NSError *error))completion;
+
+/**
+ *  璁惧璁剧疆甯冮槻鐘舵�侊紝鍏煎A1鍜孖PC璁惧鐨勫竷闃�
+ *
+ *  @param defence      甯冮槻鐘舵��, IPC甯冮槻鐘舵�佸彧鏈�0鍜�1锛孉1鏈�0:鐫$湢 8:鍦ㄥ 16:澶栧嚭
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setDefence:(EZDefenceStatus)defence
+                        deviceSerial:(NSString *)deviceSerial
+                          completion:(void (^)(NSError *error))completion;
+
+#pragma mark - 浜戝彴鎺у埗Api
+
+/**
+ *  PTZ 鎺у埗鎺ュ彛
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param command      ptz鎺у埗鍛戒护
+ *  @param action       鎺у埗鍚姩/鍋滄
+ *  @param speed        浜戝彴閫熷害锛�0-鎱紝1-閫備腑锛�2-蹇�
+ *  @param resultBlock  鍥炶皟block锛屽綋error涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)controlPTZ:(NSString *)deviceSerial
+                            cameraNo:(NSInteger)cameraNo
+                             command:(EZPTZCommand)command
+                              action:(EZPTZAction)action
+                               speed:(NSInteger)speed
+                              result:(void (^)(NSError *error))resultBlock;
+
+/**
+ *  鎽勫儚澶存樉绀烘帶鍒舵帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param command      鏄剧ず鎺у埗鍛戒护
+ *  @param resultBlock  鍥炶皟block锛屽綋error涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ */
++ (void)controlVideoFlip:(NSString *)deviceSerial
+                cameraNo:(NSInteger)cameraNo
+                 command:(EZDisplayCommand)command
+                  result:(void (^)(NSError *error))resultBlock;
+
+#pragma mark - 鍛婅鐩稿叧Api
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栧憡璀︿俊鎭垪琛紝璁惧搴忓垪鍙蜂负nil鏃舵煡璇㈡暣涓处鎴蜂笅鐨勫憡璀︿俊鎭垪琛�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param pageIndex    鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
+ *  @param pageSize     鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
+ *  @param beginTime    鎼滅储鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ *  @param endTime      鎼滅储鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZAlarmInfo鐨勫璞℃暟鎹拰鏌ヨ鏃堕棿鑼冨洿鍐呯殑鍛婅涓暟鐨勬�绘暟锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getAlarmList:(NSString *)deviceSerial
+                             pageIndex:(NSInteger)pageIndex
+                              pageSize:(NSInteger)pageSize
+                             beginTime:(NSDate *)beginTime
+                               endTime:(NSDate *)endTime
+                            completion:(void (^)(NSArray *alarmList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鍛婅鍥剧墖瑙e瘑鏂规硶锛岃澶囧姞瀵�
+ *
+ *  @param data       闇�瑕佽В瀵嗙殑鏁版嵁
+ *  @param verifyCode 璁惧楠岃瘉鐮�
+ *
+ *  @return 瑙e瘑鐨凬SData瀵硅薄锛屽鏋滆繑鍥炵殑鏁版嵁鏄┖鐨勶紝璇锋鏌ュ瘑鐮佹槸鍚︽纭垨鑰呬紶鍏ョ殑鏁版嵁鏄惁姝g‘銆�
+ */
++ (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode;
+
+/**
+ *  鍛婅鍥剧墖瑙e瘑鏂规硶锛岃澶囧姞瀵�
+ *
+ *  @param data       闇�瑕佽В瀵嗙殑鏁版嵁
+ *  @param verifyCode 璁惧楠岃瘉鐮�
+ *  @param type 1:璁惧鍔犲瘑锛�2锛氬钩鍙板姞瀵�
+ *
+ *  @return 瑙e瘑鐨凬SData瀵硅薄锛屽鏋滆繑鍥炵殑鏁版嵁鏄┖鐨勶紝璇锋鏌ュ瘑鐮佹槸鍚︽纭垨鑰呬紶鍏ョ殑鏁版嵁鏄惁姝g‘銆�
+ */
++ (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode encryptType:(NSInteger)type;
+
+/**
+ *  璁剧疆鍛婅淇℃伅涓哄凡璇绘帴鍙�
+ *
+ *  @param alarmIds   鍛婅淇℃伅Id鏁扮粍(鍙互鍙湁涓�涓狪d)锛屾渶澶氫负10涓猧d,鍚﹀垯浼氭姤閿�
+ *  @param status     鍛婅娑堟伅鐘舵��
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀鸿缃垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setAlarmStatus:(NSArray *)alarmIds
+                             alarmStatus:(EZMessageStatus)status
+                              completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁alarmId鍒犻櫎鍛婅淇℃伅鎺ュ彛
+ *
+ *  @param alarmIds   鍛婅淇℃伅Id鏁扮粍(鍙互鍙湁涓�涓狪d)锛屾渶澶氫负10涓狪d锛屽惁鍒欎細鎶ラ敊
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀哄垹闄ゆ垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)deleteAlarm:(NSArray *)alarmIds
+                           completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栨湭璇绘秷鎭暟锛岃澶囧簭鍒楀彿涓虹┖鏃惰幏鍙栨墍鏈夎澶囩殑鏈娑堟伅鏁�
+ *
+ *  @param deviceSerial 闇�瑕佽幏鍙栫殑璁惧搴忓垪鍙凤紝涓虹┖鏃惰繑鍥炶处鎴蜂笅鎵�鏈夎澶囩殑鏈娑堟伅鏁�
+ *  @param type         娑堟伅绫诲瀷锛欵ZMessageTypeAlarm 鍛婅娑堟伅锛�1锛夛紝EZMessageTypeLeave 鐣欒█娑堟伅锛�2锛�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖鏈鏁伴噺锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getUnreadMessageCount:(NSString *)deviceSerial
+                                    messageType:(EZMessageType)type
+                                     completion:(void (^)(NSInteger count, NSError *error))completion;
+
+#pragma mark - 璇煶鐣欒█娑堟伅鏁版嵁Api
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栬澶囩殑鐣欒█娑堟伅鍒楄〃
+ *
+ *  @param deviceSerial 闇�瑕佽幏鍙栫殑璁惧搴忓垪鍙�
+ *  @param beginTime    寮�濮嬫椂闂�
+ *  @param endTime      缁撴潫鏃堕棿
+ *  @param pageIndex    鍒嗛〉椤电爜
+ *  @param pageSize     鍒嗛〉鍗曢〉鏁伴噺
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZLeaveMessage鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getLeaveMessageList:(NSString *)deviceSerial
+                                    pageIndex:(NSInteger)pageIndex
+                                     pageSize:(NSInteger)pageSize
+                                    beginTime:(NSDate *)beginTime
+                                      endTime:(NSDate *)endTime
+                                   completion:(void (^)(NSArray *leaveMessageList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鏍规嵁leaveId璁剧疆鐣欒█娑堟伅鐘舵��
+ *
+ *  @param leaveIds   鐣欒█娑堟伅Id鏁扮粍(鏈�澶ф暟閲忎负10锛屽厑璁稿彧鏈�1涓�)
+ *  @param status     闇�瑕佽缃殑鐣欒█鐘舵�侊紝鐩墠鍙敮鎸� EZMessageStatusRead(宸茶)
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setLeaveMessageStatus:(NSArray *)leaveIds
+                                  messageStatus:(EZMessageStatus)status
+                                     completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁leaveId鍒犻櫎鐣欒█娑堟伅
+ *
+ *  @param leaveIds   鐣欒█娑堟伅Id鏁扮粍(鏈�澶ф暟閲忎负10锛屽厑璁稿彧鏈�1涓�)
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鍒犻櫎鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)deleteLeaveMessage:(NSArray *)leaveIds
+                                  completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁EZLeaveMessage瀵硅薄淇℃伅鑾峰彇璇煶鐣欒█娑堟伅鏁版嵁鎺ュ彛
+ *  @param message    鐣欒█娑堟伅瀵硅薄
+ *  @param completion 鍥炶皟block 锛坮esultCode = 1 琛ㄧず璇煶涓嬭浇鎴愬姛锛�-1琛ㄧず涓嬭浇澶辫触锛�
+ *
+ *  @return operation
+ */
++ (NSOperation *)getLeaveMessageData:(EZLeaveMessage *)message
+                          completion:(void (^)(NSData *data, NSInteger resultCode))completion;
+
+#pragma mark - VideoTalk瑙嗛閫氳瘽鐩稿叧Api
+
+/**
+ * 鑾峰彇鎵嬭〃鏈嶅姟鐩稿叧淇℃伅
+ * @param deviceId 璁惧搴忓垪鍙�
+ * @param completion operation
+ */
++ (void)requestGetWatchServerInfo:(NSString *)deviceId
+                       completion:(void (^)(id watchServerInfo, NSError *error))completion;
+
+/**
+ * 鍒涘缓浼氳淇℃伅
+ * @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;
+
+/**
+ *  閭�璇疯澶囪繘鍏ユ埧闂�
+ *  @param roomId                                鎴块棿鍙�
+ *  @param deviceSerial                   璁惧搴忓垪鍙�
+ *  @param channelNo                         閫氶亾鍙�
+ *  @param streamType                       涓诲瓙鐮佹祦 1-涓荤爜娴侊紝2-瀛愮爜娴侊紝mode涓�2鏃跺彲涓嶄紶
+ *  @param mode                                    鍔犲叆妯″紡 1-鍙屽悜闊宠棰戞ā寮忥紙榛樿锛夛紝2-瀵硅妯″紡
+ *  @param maxActiveSeconds         鍏ヤ細鏈�闀挎椂闂达紙绉掞級
+ *  @param completion                       鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)inviteDeviceEnterMeeting:(NSString *)roomId
+                                      deviceSerial:(NSString *)deviceSerial
+                                         channelNo:(NSInteger)channelNo
+                                        streamType:(NSInteger)streamType
+                                              mode:(NSInteger)mode
+                                  maxActiveSeconds:(NSInteger)maxActiveSeconds
+                                        completion:(void (^)(NSError *error))completion;
+
+/**
+ *  寮哄埗璁惧閫�鍑烘埧闂�
+ *  @param roomId                                鎴块棿鍙�
+ *  @param deviceSerial                   璁惧搴忓垪鍙�
+ *  @param channelNo                         閫氶亾鍙�
+ *  @param completion                       鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)kickoutDeviceMoveOutRoom:(NSString *)roomId
+                                      deviceSerial:(NSString *)deviceSerial
+                                         channelNo:(NSInteger)channelNo
+                                        completion:(void (^)(NSError *error))completion;
+
+#pragma mark - WiFi閰嶇綉鐩稿叧Api
+
+/**
+ *  灏濊瘯鏌ヨ璁惧淇℃伅锛岃澶嘩ifi閰嶇疆鍓嶆煡璇竴娆¤澶囩殑淇℃伅
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param deviceType 璁惧鍨嬪彿锛屾棤娉曡幏鍙栧埌璁惧鍨嬪彿鍒欏彲浼爊il
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZProbeDeviceInfo瀵硅薄锛岄敊璇爜杩斿洖閿欒鐮�
+ *  @see 鍏ㄦ柊鐨勮澶囨槸娌℃湁娉ㄥ唽鍒板钩鍙扮殑锛屾墍浠ヤ細鍑虹幇璁惧涓嶅瓨鍦ㄧ殑鎯呭喌锛岃澶噖ifi閰嶇疆鎴愬姛浠ュ悗浼氫笂鎶ユ暟鎹埌钀ょ煶浜戝钩鍙帮紝浠ュ悗姣忔鏌ヨ灏变笉浼氬嚭鐜拌澶囦笉瀛樺湪鐨勬儏鍐典簡銆�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)probeDeviceInfo:(NSString *)deviceSerial
+                               deviceType:(NSString *)deviceType
+                               completion:(void (^)(EZProbeDeviceInfo *deviceInfo, NSError *error))completion;
+
+/**
+ *  WiFi閰嶇疆寮�濮嬫帴鍙�
+ *
+ *  @param ssid         杩炴帴WiFi SSID
+ *  @param password     杩炴帴WiFi 瀵嗙爜
+ *  @param deviceSerial 杩炴帴WiFi鐨勮澶囩殑璁惧搴忓垪鍙�
+ *  @param statusBlock  杩斿洖杩炴帴璁惧鐨刉iFi閰嶇疆鐘舵��
+ *
+ *  @return YES/NO
+ */
++ (BOOL)startConfigWifi:(NSString *)ssid
+               password:(NSString *)password
+           deviceSerial:(NSString *)deviceSerial
+           deviceStatus:(void (^)(EZWifiConfigStatus status))statusBlock;
+
+/**
+ *  WiFi閰嶇疆寮�濮嬫帴鍙�
+ *
+ *  @param ssid         杩炴帴WiFi SSID
+ *  @param password     杩炴帴WiFi 瀵嗙爜
+ *  @param deviceSerial 杩炴帴WiFi鐨勮澶囩殑璁惧搴忓垪鍙�,鎵归噺閰嶇疆鏃跺~nil
+ *  @param mode         閰嶇綉鐨勬柟寮忥紝EZWiFiConfigMode涓垪涓剧殑妯″紡杩涜浠绘剰缁勫悎,渚嬪:EZWiFiConfigSmart|EZWiFiConfigWave
+ *  @param statusBlock  杩斿洖璁惧搴忓垪鍙蜂互鍙婂綋鍓嶈繛鎺ョ姸鎬�
+ *
+ *  @return YES/NO
+ */
++ (BOOL)startConfigWifi:(NSString *)ssid
+               password:(NSString *)password
+           deviceSerial:(NSString *)deviceSerial
+                   mode:(NSInteger)mode
+           deviceStatus:(void (^)(EZWifiConfigStatus status, NSString *deviceSerial))statusBlock;
+
+/**
+ *  WiFi閰嶇疆寮�濮嬫帴鍙�
+ *
+ *  @param ssid         杩炴帴WiFi SSID
+ *  @param password     杩炴帴WiFi 瀵嗙爜
+ *  @param deviceSerial 杩炴帴WiFi鐨勮澶囩殑璁惧搴忓垪鍙�,鎵归噺閰嶇疆鏃跺~nil
+ *  @param mode         閰嶇綉鐨勬柟寮忥紝EZWiFiConfigMode涓垪涓剧殑妯″紡杩涜浠绘剰缁勫悎,渚嬪:EZWiFiConfigSmart|EZWiFiConfigWave
+ *  @param apiUrl    鎸囧畾鍘诲摢涓钩鍙版煡璇�
+ *  @param statusBlock  杩斿洖璁惧搴忓垪鍙蜂互鍙婂綋鍓嶈繛鎺ョ姸鎬�
+ *
+ *  @return YES/NO
+ */
++ (BOOL)startConfigWifi:(NSString *)ssid
+               password:(NSString *)password
+           deviceSerial:(NSString *)deviceSerial
+                   mode:(NSInteger)mode
+                 apiUrl:(NSString *)apiUrl
+           deviceStatus:(void (^)(EZWifiConfigStatus status,NSString *deviceSerial))statusBlock;
+
+/**
+ *  @since 3.0.0
+ *  Wifi閰嶇疆鍋滄鎺ュ彛
+ *
+ *  @return YES/NO
+ */
++ (BOOL)stopConfigWifi;
+
+#pragma mark - AP閰嶇綉鐩稿叧Api
+
+/**
+ * AP閰嶇綉鎺ュ彛
+ *
+ * @param ssid WiFi鐨剆sid
+ * @param password WiFi鐨勫瘑鐮�
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param callback 缁撴灉鍥炶皟锛屾敞鎰忥細杩斿洖YES浠呬粎浠h〃鎴愬姛灏哤iFi淇℃伅鍙戦�佺粰璁惧锛屼笉浠h〃璁惧閰嶇綉鎴愬姛
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startAPConfigWifiWithSsid:(NSString *)ssid
+                         password:(NSString *)password
+                     deviceSerial:(NSString *)deviceSerial
+                       verifyCode:(NSString *)verifyCode
+                           result:(void (^)(BOOL ret))callback;
+
+/**
+ * AP閰嶇綉鎺ュ彛锛堟帹鑽愶紝v5.0鏂板锛屽皝瑁呬簡璁惧鐘舵�佽疆璇㈡楠わ級
+ *
+ * @param ssid WiFi鐨剆sid
+ * @param password WiFi鐨勫瘑鐮�
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param statusBlock 缁撴灉鍥炶皟锛岃繑鍥為厤缃戣繃绋嬩腑鐨勫悇绉嶇姸鎬�
+ *
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startAPConfigWifiWithSsid:(NSString *)ssid
+                         password:(NSString *)password
+                     deviceSerial:(NSString *)deviceSerial
+                       verifyCode:(NSString *)verifyCode
+                     deviceStatus:(void (^)(EZWifiConfigStatus status, NSString *deviceSerial))statusBlock;
+
+/**
+ * 鍋滄AP閰嶇綉
+ */
++ (void)stopAPConfigWifi;
+
+#pragma mark - 鎺ヨЕ寮忛厤缃� New AP Config
+
+/**
+ * 鑾峰彇鎺ヨЕ寮廇P閰嶇綉token
+ *
+ * @param completion 鍥炶皟
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getNewApConfigToken:(void(^)(EZConfigTokenInfo *tokenInfo, NSError *error))completion;
+
+/**
+ * 寮�濮婲ewAP閰嶇綉锛堥渶杩炴帴璁惧鐑偣锛�
+ * @param token 閰嶇綉token
+ * @param ssid WiFi ssid
+ * @param password WiFi 瀵嗙爜
+ * @param lbsDomain lbs 鍩熷悕
+ * @param handler 鍥炶皟
+ *
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startNewApConfigWithToken:(NSString *)token
+                             ssid:(NSString *)ssid
+                         password:(NSString *)password
+                        lbsDomain:(NSString *)lbsDomain
+                completionHandler:(void(^)(EZNewAPConfigStatus status, NSError *error))handler;
+
+/**
+ * 鑾峰彇璁惧鐘舵�侊紙闇�杩炴帴璁惧鐑偣锛�
+ *
+ * @param handler 鍥炶皟
+ */
++ (void)getAccessDeviceInfo:(void(^)(EZAPDevInfo *devInfo, NSError *error))handler;
+
+/**
+ * 鑾峰彇璁惧褰撳墠鍛ㄨ竟WiFi鍒楄〃锛屼笂闄�20涓紙闇�杩炴帴璁惧鐑偣锛�
+ *
+ * @param handler 鍥炶皟
+ */
++ (void)getAccessDeviceWifiList:(void(^)(NSArray<EZWiFiItemInfo*> *wifiList, NSError *error))handler;
+
+/**
+ * 鏌ヨ璁惧缁戝畾鐘舵��
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZProbeDeviceInfo瀵硅薄锛岄敊璇爜杩斿洖閿欒鐮�
+ *
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (NSURLSessionDataTask *)queryPlatformBindStatus:(NSString *)deviceSerial
+                                       completion:(void(^)(EZProbeDeviceInfo *deviceInfo, NSError *error))completion;
+
+/**
+ * 璁剧疆閰嶇綉璁惧缃戝叧鍦板潃 鍙��
+ * @param devRouteDomain 璁惧缃戝叧鍦板潃
+ */
++ (void)setDevRouteDomain:(NSString *)devRouteDomain;
+
+#pragma mark - 鐢ㄦ埛鐩稿叧Api
+
+/**
+ *  鑾峰彇鐢ㄦ埛鍩烘湰淇℃伅鐨勬帴鍙�
+ *
+ *  @param completion 鍥炶皟block锛� 姝e父鏃惰繑鍥濫ZUserInfo鐨勫璞★紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getUserInfo:(void (^)(EZUserInfo *userInfo, NSError *error))completion;
+
+#pragma mark - 鍏朵粬Api
+
+/**
+ *  鑾峰彇缁堢锛堟墜鏈虹瓑锛夊敮涓�璇嗗埆鐮�
+ *
+ *  @return 缁堢鍞竴璇嗗埆鐮�
+ */
++ (NSString *)getTerminalId;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZOpenSDKFramework.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZOpenSDKFramework.h
new file mode 100644
index 0000000..8f554ab
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZOpenSDKFramework.h
@@ -0,0 +1,54 @@
+//
+//  EZOpenSDKFramework.h
+//  EZOpenSDKFramework
+//
+//  Created by JuneCheng on 2022/7/23.
+//
+
+#ifndef EZOpenSDKFramework_h
+#define EZOpenSDKFramework_h
+
+#import <EZOpenSDKFramework/EZAccessToken.h>
+#import <EZOpenSDKFramework/EZAlarmInfo.h>
+#import <EZOpenSDKFramework/EZAreaInfo.h>
+#import <EZOpenSDKFramework/EZCameraInfo.h>
+#import <EZOpenSDKFramework/EZCloudRecordDownloadTask.h>
+#import <EZOpenSDKFramework/EZCloudRecordFile.h>
+#import <EZOpenSDKFramework/EZDetectorInfo.h>
+#import <EZOpenSDKFramework/EZDeviceCloudServiceInfo.h>
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
+#import <EZOpenSDKFramework/EZDevicePtzAngleInfo.h>
+#import <EZOpenSDKFramework/EZDeviceRecordDownloadTask.h>
+#import <EZOpenSDKFramework/EZDeviceRecordFile.h>
+#import <EZOpenSDKFramework/EZDeviceUpgradeStatus.h>
+#import <EZOpenSDKFramework/EZDeviceVersion.h>
+#import <EZOpenSDKFramework/EZHCNetDeviceInfo.h>
+#import <EZOpenSDKFramework/EZHiddnsDeviceInfo.h>
+#import <EZOpenSDKFramework/EZLeaveMessage.h>
+#import <EZOpenSDKFramework/EZPlayerExParamInfo.h>
+#import <EZOpenSDKFramework/EZProbeDeviceInfo.h>
+#import <EZOpenSDKFramework/EZRecordDownloader.h>
+#import <EZOpenSDKFramework/EZRecordDownloadTask.h>
+#import <EZOpenSDKFramework/EZStorageInfo.h>
+#import <EZOpenSDKFramework/EZTokenKit.h>
+#import <EZOpenSDKFramework/EZUserInfo.h>
+#import <EZOpenSDKFramework/EZVideoQualityInfo.h>
+#import <EZOpenSDKFramework/EZVideoTransformer.h>
+#import <EZOpenSDKFramework/EzvizRecordFileInfo.h>
+#import <EZOpenSDKFramework/EzvizWatchServerInfo.h>
+
+#import <EZOpenSDKFramework/EZSADPDeviceInfo.h>
+#import <EZOpenSDKFramework/EZAPDevInfo.h>
+#import <EZOpenSDKFramework/EZConfigTokenInfo.h>
+#import <EZOpenSDKFramework/EZWiFiItemInfo.h>
+
+#import <EZOpenSDKFramework/EZConstants.h>
+#import <EZOpenSDKFramework/EZConstants_Auth.h>
+#import <EZOpenSDKFramework/EZConstants_WifiConfig.h>
+#import <EZOpenSDKFramework/EZOpenSDK.h>
+#import <EZOpenSDKFramework/EZGlobalSDK.h>
+#import <EZOpenSDKFramework/EZHCNetDeviceSDK.h>
+#import <EZOpenSDKFramework/EZPlayer.h>
+#import <EZOpenSDKFramework/EZStreamPlayer.h>
+
+#endif /* EZOpenSDKFramework_h */
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZPMPlayPrivateTokenInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZPMPlayPrivateTokenInfo.h
new file mode 100644
index 0000000..7d69b75
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZPMPlayPrivateTokenInfo.h
@@ -0,0 +1,22 @@
+//
+//  EZPMPlayPrivateTokenInfo.h
+//  EZPlay
+//
+//  Created by JuneCheng on 2022/11/24.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZPMPlayPrivateTokenInfo : NSObject
+
+@property (nonatomic, assign) BOOL enable;///<
+@property (nonatomic, copy) NSString *token;///<
+
+
+- (instancetype)initWithType:(NSInteger)type data:(NSData *)data;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZPlayer.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZPlayer.h
new file mode 100644
index 0000000..baea2e2
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZPlayer.h
@@ -0,0 +1,446 @@
+//
+//  EZPlayer.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/9/16.
+//  Copyright (c) 2015骞� Ezviz. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@class EZDeviceRecordFile;
+@class EZCloudRecordFile;
+@class EZPlayer;
+@class EZPlayerExParamInfo;
+@class EZDevicePtzAngleInfo;
+@class EZPMPlayPrivateTokenInfo;
+
+/**
+ *  棰勮娓呮櫚搴�
+ */
+typedef NS_ENUM(NSInteger, EZVideoQuality) {
+    EZVideoQualityLow    = 0,  //娴佺晠
+    EZVideoQualityMiddle = 1,  //鍧囪 
+    EZVideoQualityHigh   = 2   //楂樻竻
+};
+
+/* 鎾斁鍣‥ZPlayer鐨勭姸鎬佹秷鎭畾涔� */
+typedef NS_ENUM(NSInteger, EZMessageCode) {
+    PLAYER_REALPLAY_START = 1,        //鐩存挱寮�濮�
+    PLAYER_VIDEOLEVEL_CHANGE = 2,     //鐩存挱娴佹竻鏅板害鍒囨崲涓�
+    PLAYER_STREAM_RECONNECT = 3,      //鐩存挱娴佸彇娴佹鍦ㄩ噸杩�
+    PLAYER_VOICE_TALK_START = 4,      //瀵硅寮�濮�
+    PLAYER_VOICE_TALK_END = 5,        //瀵硅缁撴潫
+    PLAYER_STREAM_START = 10,         //褰曞儚鍙栨祦寮�濮�
+    PLAYER_PLAYBACK_START = 11,       //褰曞儚鍥炴斁寮�濮嬫挱鏀�
+    PLAYER_PLAYBACK_STOP = 12,        //褰曞儚鍥炴斁缁撴潫鎾斁
+    PLAYER_PLAYBACK_FINISHED = 13,    //褰曞儚鍥炴斁琚敤鎴峰己鍒朵腑鏂�
+    PLAYER_PLAYBACK_PAUSE = 14,       //褰曞儚鍥炴斁鏆傚仠
+    PLAYER_NET_CHANGED = 21,          //鎾斁鍣ㄦ娴嬪埌wifi鍙樻崲杩�
+    PLAYER_NO_NETWORK = 22,           //鎾斁鍣ㄦ娴嬪埌鏃犵綉缁�
+    PLAYER_CLOUD_IFRAME_CHANGED = 23, //浜戝瓨鍌ㄥ揩鏀炬椂锛岀敱鍏ㄥ抚蹇斁鍒囨崲鍒版娊甯у揩鏀剧殑鎻愮ず鍥炶皟
+    PLAYER_PLAYSPEED_LOWER = 24,      //浜戝瓨鍌ㄥ揩鏀炬椂鐨勯檷閫熼�氱煡(瀛樺湪涓ゆ闄嶉�燂細褰撳墠鍊嶉�熷ぇ浜�4鍊嶉�熸椂锛岄檷鍒�4鍊嶉�燂紱褰撳墠涓�4鍊嶉�熸椂锛岄檷涓�1鍊嶉��)
+};
+
+
+/**
+ *  鍥炴斁閫熺巼
+ */
+typedef NS_ENUM(NSInteger, EZPlaybackRate) {
+    EZOPENSDK_PLAY_RATE_1_16 = 9,  //浠�1/16鍊嶉�熷害鎾斁
+    EZOPENSDK_PLAY_RATE_1_8 = 7,   //浠�1/8鍊嶉�熷害鎾斁
+    EZOPENSDK_PLAY_RATE_1_4 = 5,   //浠�1/4鍊嶉�熷害鎾斁
+    EZOPENSDK_PLAY_RATE_1_2 = 3,   //浠�1/2鍊嶉�熸挱鏀�
+    EZOPENSDK_PLAY_RATE_1 = 1,     //浠ユ甯搁�熷害鎾斁
+    EZOPENSDK_PLAY_RATE_2 = 2,     //浠�2鍊嶉�熸挱鏀�
+    EZOPENSDK_PLAY_RATE_4 = 4,     //浠�4鍊嶉�熷害鎾斁
+    EZOPENSDK_PLAY_RATE_8 = 6,     //浠�8鍊嶉�熷害鎾斁
+    EZOPENSDK_PLAY_RATE_16 = 8,    //浠�16鍊嶉�熷害鎾斁
+    EZOPENSDK_PLAY_RATE_32 = 10,   //浠�32鍊嶉�熷害鎾斁
+};
+
+/// 钀ょ煶鎾斁鍣╠elegate鏂规硶
+@protocol EZPlayerDelegate <NSObject>
+
+@optional
+/**
+ *  鎾斁鍣ㄦ挱鏀惧け璐ラ敊璇洖璋�
+ *
+ *  @param player 鎾斁鍣ㄥ璞�
+ *  @param error  鎾斁鍣ㄩ敊璇�
+ */
+- (void)player:(EZPlayer *)player didPlayFailed:(NSError *)error;
+
+/**
+ *  鎾斁鍣ㄦ秷鎭洖璋�
+ *
+ *  @param player      鎾斁鍣ㄥ璞�
+ *  @param messageCode 鎾斁鍣ㄦ秷鎭爜锛岃瀵圭収EZOpenSDK澶存枃浠朵腑鐨凟ZMessageCode浣跨敤
+ */
+- (void)player:(EZPlayer *)player didReceivedMessage:(NSInteger)messageCode;
+
+/**
+ *  璇ユ柟娉曞簾寮冧簬v4.8.8鐗堟湰锛屽簳灞傚簱涓嶅啀鏀寔銆傝浣跨敤getStreamFlow鏂规硶
+ *  鏀跺埌鐨勬暟鎹暱搴︼紙姣忕璋冪敤涓�娆★級
+ *
+ *  @param player     鎾斁鍣ㄥ璞�
+ *  @param dataLength 鎾斁鍣ㄦ祦濯掍綋鏁版嵁鐨勯暱搴︼紙姣忕瀛楄妭鏁帮級
+ */
+- (void)player:(EZPlayer *)player didReceivedDataLength:(NSInteger)dataLength DEPRECATED_MSG_ATTRIBUTE("use getStreamFlow instead");
+
+/**
+ *  鏀跺埌鐨勭敾闈㈤暱瀹藉��
+ *
+ *  @param player 鎾斁鍣ㄥ璞�
+ *  @param height 楂樺害
+ *  @param width  瀹藉害
+ */
+- (void)player:(EZPlayer *)player didReceivedDisplayHeight:(NSInteger)height displayWidth:(NSInteger)width;
+
+/**
+ * 璁惧浜戝彴瑙掑害鏁版嵁鍥炶皟
+ *
+ * @param player 鎾斁鍣ㄥ璞�
+ * @param info 绉佹湁鏁版嵁
+ */
+- (void)player:(EZPlayer *)player didReceivedDevicePtzAngleInfo:(EZDevicePtzAngleInfo *)info;
+
+/**
+ * 鎾斁杩囩▼涓� 鍥炶皟瑙g爜鏁版嵁
+ * 閲嶈锛氳鍥炶皟浼氭瘮杈冮绻�(涓�绉掕嫢骞叉)锛屽悓鏃剁洿鎺ョ敱鎾斁搴撶嚎绋嬪洖璋冧笂鏉ワ紝璇峰嬁鍦ㄦ柟娉曚腑鍋氳�楁椂鎿嶄綔
+ * 閲嶈锛氬洖璋冪殑鏁版嵁鐨勫唴瀛樻槸鐢辨挱鏀惧簱鍐呴儴鍒嗛厤骞剁鐞嗙殑锛屽湪浣跨敤鏃讹紝璇峰悓姝ュ鐞嗗洖璋冪殑data锛涘闇�寮傛澶勭悊锛岃鎷疯礉璇ユ暟鎹�
+ *
+ * @param player 鎾斁鍣ㄥ璞�
+ * @param data 鎾斁搴撹В鐮佸嚭鐨勬暟鎹�
+ * @param width 瑙嗛瀹藉害
+ * @param height 瑙嗛楂樺害
+ */
+- (void)player:(EZPlayer *)player didDecodedData:(NSData *)data width:(NSInteger)width height:(NSInteger)height;
+
+/**
+ * 鍙栨祦鏁版嵁涓幏鍙栧紑闂╰oken鍥炶皟
+ *
+ * @param player 鎾斁鍣ㄥ璞�
+ * @param tokenInfo token瀵硅薄
+ */
+- (void)player:(EZPlayer *)player playPrivateTokenInfo:(EZPMPlayPrivateTokenInfo *)tokenInfo;
+
+@end
+
+/// 姝ょ被涓鸿悿鐭虫挱鏀惧櫒绫�
+@interface EZPlayer : NSObject
+
+/// EZPlayer鍏宠仈鐨刣elegate
+@property (nonatomic, weak) id<EZPlayerDelegate> delegate;
+
+/// 鏄惁璁╂挱鏀惧櫒澶勭悊杩涘叆鍚庡彴,YES:鑷姩澶勭悊;NO:涓嶅鐞�,榛樿涓篩ES
+@property (nonatomic, assign) BOOL backgroundModeByPlayer;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙峰拰閫氶亾鍙峰垱寤篍ZPlayer瀵硅薄
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (instancetype)createPlayerWithDeviceSerial:(NSString *)deviceSerial cameraNo:(NSInteger)cameraNo;
+//for 鍥芥爣
++ (instancetype)createPlayerWithDeviceSerial:(NSString *)deviceSerial strCameraNo:(NSString *)strCameraNo;
+/**
+ *  鏍规嵁url鏋勯�燛ZPlayer瀵硅薄 锛堜富瑕佺敤鏉ュ鐞嗚棰戝箍鍦虹殑鎾斁锛�
+ *
+ *  @param url 鎾斁url
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (instancetype)createPlayerWithUrl:(NSString *)url;
+
+
+/**
+ 灞�鍩熺綉璁惧鍒涘缓鎾斁鍣ㄦ帴鍙�
+
+ @param userId 鐢ㄦ埛id锛岀櫥褰曞眬鍩熺綉璁惧鍚庤幏鍙�
+ @param cameraNo 閫氶亾鍙�
+ @param streamType 鐮佹祦绫诲瀷 1:涓荤爜娴� 2:瀛愮爜娴�
+ @return EZPlayer瀵硅薄
+ */
++ (instancetype)createPlayerWithUserId:(NSInteger)userId cameraNo:(NSInteger)cameraNo streamType:(NSInteger)streamType;
+
+/**
+ *  @since 4.19.2
+ *  涓�涓〉闈㈠瓨鍦ㄥ涓棰戜娇鐢ㄦ渶灏忕殑鐮佹祦锛屾病鏈夊瓙鐮佹祦鐨勮瘽杩樻槸浣跨敤涓荤爜娴�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     铏氭嫙閫氶亾
+ *  @param useSubStream   鏄惁浣跨敤瀛愮爜娴�
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (instancetype)createPlayerWithDeviceSerial:(NSString *)deviceSerial cameraNo:(NSInteger)cameraNo useSubStream:(BOOL)useSubStream;
+
+/**
+ *  閿�姣丒ZPlayer
+ *
+ *  @return YES/NO;
+ */
+- (BOOL)destoryPlayer;
+
+/**
+ *  璁剧疆浣跨敤纭欢瑙g爜鍣ㄤ紭鍏堬紝闇�鍦╯tartRealPlay涔嬪墠璋冪敤
+ *
+ *  @param HDPriority 鏄惁纭В浼樺厛
+ */
+- (void)setHDPriority:(BOOL)HDPriority;
+
+/**
+ 鑾峰彇褰撳墠鐨勮蒋纭В鎯呭喌锛屽湪鐮佹祦姝e父鎾斁鍚庤皟鐢�
+ 
+ @return 1锛氳蒋瑙� 2锛氱‖瑙� 0锛氬嚭閿�
+ */
+- (int)getHDPriorityStatus;
+
+/**
+ *  璁剧疆璁惧褰掑睘涓氬姟鏉ユ簮锛岄渶瑕佸湪棰勮鍥炴斁鍓嶈皟鐢�  鍥芥爣璁惧浣跨敤
+ *
+ *  @param bizType 绫诲瀷       鍥芥爣涓� bizType='GB28181'
+ */
+- (void)setBizType:(NSString *)bizType;
+
+/**
+ *  骞冲彴id 鍥芥爣璁惧浣跨敤
+ *
+ *  @param platformId 绫诲瀷
+*/
+-(void)setPlatformId:(NSString *)platformId;
+
+/**
+ *  璁剧疆鎾斁鍣ㄧ殑view
+ *
+ *  @param playerView 鎾斁鍣╲iew
+ */
+- (void)setPlayerView:(UIView *)playerView;
+
+/**
+ *  鏄惁闈欓煶鎾斁锛宻tartRealPlay涔嬪墠璋冪敤
+ *
+ *  @param isSilencePlay 鏄惁闈欓煶鎾斁
+ */
+- (void)setSilencePlay:(BOOL)isSilencePlay;
+
+/**
+ *  寮�濮嬫挱鏀撅紝寮傛鎺ュ彛锛岃繑鍥炲�煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)startRealPlay;
+
+/**
+ *  鍋滄鎾斁锛屽紓姝ユ帴鍙o紝杩斿洖鍊煎彧鏄〃绀烘搷浣滄垚鍔�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)stopRealPlay;
+
+/**
+ *  璁剧疆鎾斁鍣ㄨВ鐮佸瘑鐮�
+ *
+ *  @param verifyCode 璁惧楠岃瘉鐮�
+ */
+- (void)setPlayVerifyCode:(NSString *)verifyCode;
+
+/**
+ *  寮�鍚0闊�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)openSound;
+
+/**
+ *  鍏抽棴澹伴煶
+ *
+ *  @return YES/NO
+ */
+- (BOOL)closeSound;
+
+/**
+ 鑾峰彇鎾斁缁勪欢鍐呴儴鐨勬挱鏀惧簱鐨刾ort
+ 
+ @return 鎾斁搴撶殑port,鍙兘涓�-1锛堟棤鏁堝�硷級
+ */
+- (int)getInnerPlayerPort;
+
+/**
+ 鑾峰彇褰撳墠宸叉挱鏀剧殑鎬绘祦閲忥紝鍗曚綅瀛楄妭
+ eg.璁$畻姣忕鐨勬祦閲忥細
+ NSInteger a = [self getStreamFlow];
+ //1s鍚庤皟鐢�
+ NSInteger b = [self getStreamFlow];
+ NSInteger perSecondFlow = b - a;
+ 
+ @return 娴侀噺鍊�
+ */
+- (NSInteger)getStreamFlow;
+
+/**
+ *  寮�濮婽TS瀵硅锛屽紓姝ユ帴鍙o紝杩斿洖鍊煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)startVoiceTalk;
+
+/**
+ *  寮�濮婽TS瀵硅锛屽紓姝ユ帴鍙o紝杩斿洖鍊煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
+ *  閽堝浜嶯VR瀵硅浣跨敤
+ *  @return YES/NO
+ */
+- (BOOL)startVoiceTalkNeedVoiceChannel:(BOOL)needVoiceChannel;
+
+/**
+ *  寮�濮婹os瀵硅锛屽紓姝ユ帴鍙o紝杩斿洖鍊煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)startVoiceTalkByQos;
+
+/**
+ *  鍋滄瀵硅锛屽紓姝ユ帴鍙o紝杩斿洖鍊煎彧鏄〃绀烘搷浣滄垚鍔�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)stopVoiceTalk;
+
+/**
+ 棰勮鏃跺紑濮嬫湰鍦板綍鍍忛褰曞埗鍔熻兘锛屽紓姝ユ柟娉�
+ 
+ @param path 鏂囦欢瀛樺偍璺緞
+ @return YES/NO
+ */
+- (BOOL)startLocalRecordWithPathExt:(NSString *)path;
+
+
+/**
+ 缁撴潫鏈湴褰曞儚棰勫綍鍒讹紝骞剁敓鎴恗p4褰曞埗鏂囦欢锛屽紓姝ユ柟娉�
+ 
+ @param complete 鎿嶄綔鏄惁鎴愬姛 YES/NO
+ */
+- (void)stopLocalRecordExt:(void (^)(BOOL ret))complete;
+
+
+/**
+ *  鍗婂弻宸ュ璁蹭笓鐢ㄦ帴鍙o紝鏄惁鍒囨崲鍒板惉璇寸姸鎬�
+ *
+ *  @param isPressed 鏄惁鍙鐘舵��
+ *
+ *  @return YES/NO
+ */
+- (BOOL)audioTalkPressed:(BOOL)isPressed;
+
+/**
+ *  寮�濮嬩簯瀛樺偍杩滅▼鍥炴斁锛屽紓姝ユ帴鍙o紝杩斿洖鍊煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
+ *  @param cloudFile 浜戝瓨鍌ㄦ枃浠朵俊鎭�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)startPlaybackFromCloud:(EZCloudRecordFile *)cloudFile;
+
+/**
+ *  寮�濮嬭繙绋婼D鍗″洖鏀撅紝寮傛鎺ュ彛锛岃繑鍥炲�煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
+ *
+ *  @param deviceFile SD鍗℃枃浠朵俊鎭�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)startPlaybackFromDevice:(EZDeviceRecordFile *)deviceFile;
+
+/**
+ *  鏆傚仠杩滅▼鍥炴斁鎾斁
+ */
+- (BOOL)pausePlayback;
+
+/**
+ *  缁х画杩滅▼鍥炴斁鎾斁
+ */
+- (BOOL)resumePlayback;
+
+/**
+ *  鏍规嵁鍋忕Щ鏃堕棿鎾斁
+ *
+ *  @param offsetTime 褰曞儚鍋忕Щ鏃堕棿
+ */
+- (void)seekPlayback:(NSDate *)offsetTime;
+
+/**
+ *  鑾峰彇褰撳墠鎾斁鏃堕棿杩涘害
+ *
+ *  @return 鎾斁杩涘害鐨凬SDate鏁版嵁
+ */
+- (NSDate *)getOSDTime;
+
+/**
+ *  鍋滄杩滅▼鍥炴斁
+ */
+- (BOOL)stopPlayback;
+
+/**
+ *  鐩存挱鐢婚潰鎶撳浘
+ *
+ *  @param quality 鎶撳浘璐ㄩ噺锛�0锝�100锛�,鏁板�艰秺澶у浘鐗囪川閲忚秺濂斤紝鍥剧墖澶у皬瓒婂ぇ
+ *
+ *  @return image
+ */
+- (UIImage *)capturePicture:(NSInteger)quality;
+
+/**
+ 鑾峰彇鍐呴儴鎾斁鍣ㄥ彞鏌勩�傚缓璁瘡娆′娇鐢ㄦ挱鏀惧櫒鍙ユ焺鏃跺潎璋冪敤姝ゆ柟娉曡幏鍙栵紝骞惰繘琛屾湁鏁堟�у垽鏂��
+
+ @return 灏忎簬0涓烘棤鏁堝�硷紝澶т簬绛変簬0涓烘湁鏁堝��
+ */
+- (int)getPlayPort;
+
+/**
+ 鑾峰彇褰撳墠鍙栨祦鏂瑰紡锛�
+
+ @return 褰撳墠鍙栨祦绫诲瀷
+ */
+- (int)getStreamFetchType;
+
+/**
+sd鍗″強浜戝瓨鍌ㄥ�嶉�熷洖鏀炬帴鍙�
+1.鏀寔鎶藉抚蹇斁鐨勮澶囨渶楂樻敮鎸�16鍊嶉�熷揩鏀撅紙鎵�鏈夊彇娴佹柟寮忥紝鍖呮嫭P2P锛�
+2.涓嶆敮鎸佹娊甯у揩鏀剧殑璁惧锛屼粎鏀寔鍐呭缃戠洿杩炲揩鏀撅紝鏈�楂樻敮鎸�8鍊�
+3.HCNetSDK鍙栨祦娌℃湁蹇斁姒傚康锛屽叏閫熸帹娴侊紝鍙敼鍙樻挱鏀惧簱閫熺巼
+4.娉ㄦ剰鍖哄埆锛�
+   鑰丼D鍗″洖鏀句互鍙奌CNetSDK鍥炴斁锛岃缃畬閫氳繃杩斿洖鍊艰繑鍥炴垚鍔熻繕鏄け璐ワ紝娌℃湁鍏朵粬娑堟伅
+   鏂板崗璁殑浜戝瓨鍌ㄥ洖鏀句互鍙婃敮鎸乻eek銆乧ontinue鐨勮澶嘾鏂癝D鍗″洖鏀撅紝璁剧疆瀹岄�氳繃杩斿洖鍊艰繑鍥炴垚鍔熻繕鏄け璐ワ紝濡傛灉鎴愬姛锛�
+   鍒欏悗缁繕鏈変竴鏉ZVideoPlayerMessageStart寮傛娑堟伅琛ㄧず鎴愬姛鍐嶆鍙栨祦
+   杩斿洖鍏朵粬閿欒鐮佽〃绀哄け璐� (鏂板崗璁簯瀛樺偍鍜屾柊SD鍗″洖鏀捐繑鍥濫Z_ERROR_NEED_RETRY 琛ㄧず闇�瑕侀噸璇曪級
+
+@param rate    鍥炴斁閫熷害锛屽叿浣撳弬鑰� EZ_PLAY_BACK_RATE
+@param mode 鍥炴斁鏃剁殑鎶藉抚鎺у埗锛屽綋鍓嶄粎浜戝瓨鍌ㄦ敮鎸併��0锛� 4鍊嶉�熷叏甯э紝8鍊嶉�熶互涓婃娊甯�   1锛氭娊甯�   2锛氬叏甯�  锛堝璁惧鍥炴斁褰撳墠涓嶆敮鎸侊紝浼犲叆0鍗冲彲锛�
+@return YES/NO
+ */
+- (BOOL)setPlaybackRate:(EZPlaybackRate) rate mode:(NSUInteger)mode;
+
+/**
+ 璁剧疆鍏ㄥ弻宸ュ璁叉椂鐨勬ā寮�,瀵硅鎴愬姛鍚庤皟鐢�
+ 
+ @param routeToSpeaker YES:浣跨敤鎵0鍣� NO:浣跨敤鍚瓛
+ */
+- (void)changeTalkingRouteMode:(BOOL)routeToSpeaker;
+
+/// //鎵╁睍鍙傛暟 UIKit涓撶敤
+/// @param exParamInfo EZPlayerExParamInfo
+- (void)setExParamInfo:(EZPlayerExParamInfo *)exParamInfo;
+
+/**
+ * 璁剧疆鎵撳紑鎾斁搴撶殑鏅鸿兘鍒嗘瀽锛屽綋鍓嶆俯鎰熺浉鏈虹殑妗嗘浣跨敤浜嗚鏅鸿兘鍒嗘瀽鏁版嵁锛岄瑙堟垚鍔熷悗璋冪敤锛屽湪鎾斁杩囩▼涓殢鏃跺紑鍏�
+ *
+ * @param enable YES锛氬紑  NO锛氬叧
+ *
+ * @return 杩斿洖鐘舵��
+ */
+- (BOOL)setIntelAnalysis:(BOOL)enable;
+
+@end
+
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZPlayerExParamInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZPlayerExParamInfo.h
new file mode 100644
index 0000000..1fe1a86
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZPlayerExParamInfo.h
@@ -0,0 +1,34 @@
+//
+//  EZPlayerExParamInfo.h
+//  EzvizOpenSDK
+//
+//  Created by linyong on 2018/4/2.
+//  Copyright 漏 2018骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+typedef enum
+{
+    EZPLAYER_STREAM_DEFAULT = 0,//榛樿
+    EZPLAYER_STREAM_MAIN,//涓荤爜娴�
+    EZPLAYER_STREAM_SUB,//瀛愮爜娴�
+    EZPLAYER_STREAM_MAX
+}EZPlayerStreamType;
+
+typedef enum
+{
+    EZPLAYER_TRANS_DEFAULT = 0, //榛樿
+    EZPLAYER_TRANS_EZVIZ,//钀ょ煶绉佹湁娴佸獟浣�
+    EZPLAYER_TRANS_RTMP,//RTMP
+    EZPLAYER_TRANS_MAX
+}EZPlayerTransportType;
+
+@interface EZPlayerExParamInfo : NSObject
+
+@property (nonatomic,copy) NSString *vtduIp; ///vtdu鏈嶅姟鍣╥p
+@property (nonatomic,assign) NSInteger vtduPort; //vtdu绔彛鍙�
+@property (nonatomic) EZPlayerStreamType streamMode; ///榛樿涓�0锛屼富鐮佹祦涓�1锛屽瓙鐮佹祦涓�2
+@property (nonatomic,assign) EZPlayerTransportType protocolType; ///浼犺緭鍗忚锛岄粯璁や负0
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZProbeDeviceInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZProbeDeviceInfo.h
new file mode 100644
index 0000000..18e7369
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZProbeDeviceInfo.h
@@ -0,0 +1,47 @@
+//
+//  EZProbeDeviceInfo.h
+//  EZWiFiConfigSDK
+//
+//  Created by DeJohn Dong on 15/12/11.
+//  Copyright 漏 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓烘煡璇㈣澶囦俊鎭璞★紙璁惧娣诲姞鍓嶄娇鐢級
+@interface EZProbeDeviceInfo : NSObject
+
+/// 灞曠ず鍚嶇О
+@property (nonatomic, copy) NSString *displayName;
+/// 璁惧澶х被鍚�
+@property (nonatomic, copy) NSString *category;
+/// 璁惧鍨嬪彿鍚�
+@property (nonatomic, copy) NSString *model;
+/// 璁惧鐭簭鍒楀彿
+@property (nonatomic, copy) NSString *subSerial;
+/// 璁惧闀垮簭鍒楀彿
+@property (nonatomic, copy) NSString *fullSerial;
+/// 璁惧鍦ㄧ嚎鐘舵�侊紝1-鍦ㄧ嚎锛屽叾浠�-涓嶅湪绾�
+@property (nonatomic) NSInteger status;
+/// 璁惧鍥剧墖
+@property (nonatomic, copy) NSString *defaultPicPath;
+/// 鏄惁鏀寔wifi锛�0-涓嶆敮鎸侊紝1-鏀寔锛�2-鏀寔甯serId鐨勬柊鐨剋ifi閰嶇疆鏂瑰紡锛�3-鏀寔smartwifi
+@property (nonatomic) NSInteger supportWifi;
+/// 鏄惁鏀寔AP閰嶇綉锛�2-鏀寔AP锛屽叾浠栧�间负涓嶆敮鎸丄P閰嶇綉
+@property (nonatomic) NSInteger supportAP;
+/// 鏄惁鏀寔澹版尝閰嶇疆,0-涓嶆敮鎸侊紝1-鏀寔
+@property (nonatomic) NSInteger supportSoundWave;
+/// 鏄惁鏀寔浜戝瓨鍌紝0-涓嶆敮鎸侊紝1-鏀寔
+@property (nonatomic) NSInteger supportCloud;
+/// 璁惧鍗忚鐗堟湰
+@property (nonatomic, copy) NSString *releaseVersion;
+/// 璁惧鐗堟湰
+@property (nonatomic, copy) NSString *version;
+/// 鍙敤浜庢坊鍔犵殑閫氶亾鏁�
+@property (nonatomic) NSInteger availiableChannelCount;
+/// N1锛孯1锛孉1绛夎澶囧叧鑱旂殑璁惧鏁�
+@property (nonatomic) NSInteger relatedDeviceCount;
+/// 鑳藉姏闆�
+@property (nonatomic, copy) NSString *supportExt;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRTCCameraParam.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRTCCameraParam.h
new file mode 100644
index 0000000..503a5b8
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRTCCameraParam.h
@@ -0,0 +1,38 @@
+//
+//  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 EZRTCCameraParam : NSObject
+
+
+/// 鎽勫儚澶撮噰闆嗛噰闆嗙敾闈㈢殑榛樿璁剧疆锛屾瘮濡侫VCaptureSessionPreset1280x720锛岃浼犲叆AVCaptureSessionPreset640x480 浠ヤ笂鐨勫垎杈ㄧ巼
+//@property (nonatomic, strong) AVCaptureSessionPreset resolutionPreset;
+
+/// 鏈�缁堣緭鍑虹殑鐢婚潰鐨勫
+//@property (nonatomic, assign) NSInteger pixelWidth;
+//
+///// 鏈�缁堣緭鍑虹殑鐢婚潰鐨勯珮
+//@property (nonatomic, assign) NSInteger pixelHeigth;
+
+/// 浼犲叆 AVCaptureVideoOrientation锛岄粯璁ょ珫灞�
+@property (nonatomic, assign) AVCaptureVideoOrientation videoOrientation;
+
+
+/// 鏄惁鏄悗缃憚鍍忓ご锛岄粯璁O
+@property (nonatomic, assign) BOOL isBackCameraSeleced;
+
+///// I甯ч棿闅� 榛樿4绉�
+//@property (nonatomic, assign) NSInteger encodeKeyFrameInterval;
+//
+///// 甯х巼
+//@property (nonatomic, assign) NSInteger fps;
+
++ (AVCaptureSessionPreset)resolutionPresetForWidth:(NSInteger)width andHeigth:(NSInteger)heigth andOri:(AVCaptureVideoOrientation)ori;
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRTCMediaSessionDefines.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRTCMediaSessionDefines.h
new file mode 100644
index 0000000..7c1a1bb
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRTCMediaSessionDefines.h
@@ -0,0 +1,107 @@
+//
+//  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 EZMediaSessionDefaultStreamWidth (480)
+#define EZMediaSessionDefaultStreamHeight (480)
+
+#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, EZAudioEncoderError) {
+    EZAudioEncoderErrorUnknown = EZMediaSessionErrorBaseAudioEncode,
+    EZAudioEncoderErrorFailToInitConverter = 30100,
+    EZAudioEncoderErrorFailToGetDataBuffer,
+    EZAudioEncoderErrorFailToEncodeBuffer,
+};
+
+typedef NS_ENUM(NSUInteger, EZVideoH264EncoderError) {
+    EZVideoH264EncoderErrorUnknown = EZMediaSessionErrorBaseVideoEncode,
+    EZVideoH264EncoderErrorInitFailed = 40100,
+    EZVideoH264EncoderErrorInvalidSample,
+    EZVideoH264EncoderErrorSampleNotReady,
+    EZVideoH264EncoderErrorNotRunning,
+    EZVideoH264EncoderErrorSetMaxBPSFailed,
+    EZVideoH264EncoderErrorSetAverageBPSFailed,
+    EZVideoH264EncoderErrorParamError,
+    EZVideoH264EncoderErrorEncodeFailed = 40200,
+};
+
+typedef NS_ENUM(NSUInteger, EZBAVStreamClientError) {
+    EZBAVStreamClientErrorUnknow = EZMediaSessionErrorBaseStreamClient,
+    EZBAVStreamClientErrorAudioEnableNotAllowed = EZMediaSessionErrorBaseStreamClient + 9000,
+    EZBAVStreamClientErrorShareEnableNotAllowed,
+
+};
+
+
+typedef NS_ENUM(NSUInteger, EZRTCAudioEncodeType) {
+    EZRTCAudioEncodeType_AAC,
+    EZRTCAudioEncodeType_Opus,
+};
+
+
+@interface EZRTCMediaSessionDefines : NSObject
+@end
+
+typedef void(^EZScreenShareResultBlock)(NSInteger ret);
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRTCSampleHandleManager.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRTCSampleHandleManager.h
new file mode 100644
index 0000000..f1d9a21
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRTCSampleHandleManager.h
@@ -0,0 +1,31 @@
+//
+//  FIAgoraSocketManager.h
+//  FIAgoraVideo
+//
+//  Created by flagadmin on 2020/5/7.
+//  Copyright 漏 2020 flagadmin. All rights reserved.
+//
+
+#import <ReplayKit/ReplayKit.h>
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef enum : NSUInteger {
+    EZSampleHandleManagerStateUnconnected,
+    EZSampleHandleManagerStateConnecting,
+    EZSampleHandleManagerStateConnected,
+    EZSampleHandleManagerStateStopped,
+} EZSampleHandleManagerState;
+
+
+@interface EZRTCSampleHandleManager : NSObject
++ (EZRTCSampleHandleManager *)sharedManager;
+@property (nonatomic, assign, readonly) EZSampleHandleManagerState state;
+- (void)setup;
+- (void)finish;
+- (void)sendVideoBuffer:(CMSampleBufferRef)sampleBuffer;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRTCVideoEncodeParam.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRTCVideoEncodeParam.h
new file mode 100644
index 0000000..b420fba
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRTCVideoEncodeParam.h
@@ -0,0 +1,30 @@
+//
+//  EZMediaSessionEncodeParam.h
+//  EZMediaSession
+//
+//  Created by kanhaiping on 2018/8/24.
+//  Copyright 漏 2018骞� hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@class EZRTCCameraParam;
+
+@interface EZRTCVideoEncodeParam : NSObject
+
+//濡傛灉缂栫爜鐨勭洰鏍囧楂樹负0锛屽垯缂栫爜杈撳嚭涓鸿緭鍏ョ殑鍘熷瀹介珮
+@property (nonatomic, assign) NSInteger pixelWidth;
+@property (nonatomic, assign) NSInteger pixelHeigth;
+@property (nonatomic, assign) NSInteger fps;
+@property (nonatomic, assign) NSInteger averageBPS;
+@property (nonatomic, assign, readonly) NSInteger maxBPS;
+@property (nonatomic, assign) NSInteger encodeKeyFrameInterval;//I甯ч棿闅旓紝鍗曚綅绉�
+
+//+ (EZRTCVideoEncodeParam *)encodeParamFromVideoParam:(EZRTCCameraParam *)videoParam;
++ (EZRTCVideoEncodeParam *)defaultEncodeParam;
++ (EZRTCVideoEncodeParam *)deviceWatchParam;
++ (EZRTCVideoEncodeParam *)deviceBabyRobotParam;
++ (EZRTCVideoEncodeParam *)encodeParamForScreenShare;
++ (EZRTCVideoEncodeParam *)encodeParamForGlobalScreenShare;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRecordCoverFetcherManager.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRecordCoverFetcherManager.h
new file mode 100644
index 0000000..c8bec6a
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRecordCoverFetcherManager.h
@@ -0,0 +1,69 @@
+//
+//  EZRecordCoverFetcherManager.h
+//  EZPlay
+//
+//  Created by JuneCheng on 2022/12/19.
+//
+
+#import <Foundation/Foundation.h>
+@class EZDeviceRecordFile;
+
+// Fetcher鍒濆鍖栦唬鐞�
+@protocol RecordCoverFetcherDelegate<NSObject>
+
+@optional
+/**
+ * SD鍗″綍鍍忓皝闈㈡彁鍙栧櫒鍒濆鍖栨垚鍔熷洖璋�
+ */
+- (void)onFetcherInitSuccess;
+
+/**
+ * SD鍗″綍鍍忓皝闈㈡彁鍙栧櫒鍒濆鍖栧け璐ュ洖璋�
+ */
+- (void)onFetcherInitFailed;
+
+/**
+ * SD鍗″綍鍍忓皝闈㈡彁鍙栧皝闈㈡垚鍔熷洖璋�
+ */
+- (void)onGetCoverSuccess:(int)seq data:(NSData *_Nonnull)data;
+
+/**
+ * SD鍗″綍鍍忓皝闈㈡彁鍙栧皝闈㈠け璐ュ洖璋�
+ */
+- (void)onGetCoverFailed:(int)errorCode;
+
+@end
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZRecordCoverFetcherManager : NSObject
+
+
+@property (nonatomic, weak) id <RecordCoverFetcherDelegate> fetcherDelegate;
+
++ (instancetype)sharedInstance;
+
+/**
+ * 涓庤澶囧缓绔嬮摼鎺ワ紙鍥藉唴鏀寔锛屾捣澶栦笉鏀寔锛�
+ *
+ * @param   deviceSerial 璁惧搴忓垪鍙�
+ * @param   cameraNo 璁惧閫氶亾鍙�
+ */
+- (void)initFetcherWithDeviceSerial:(NSString *)deviceSerial cameraNo:(NSInteger)cameraNo;
+
+
+/**
+ * 鏂紑涓庤澶囩殑閾炬帴锛堝浗鍐呮敮鎸侊紝娴峰涓嶆敮鎸侊級
+ */
+- (void)stopFetcher;
+
+
+/**
+ * 璺熻澶囪姹係D鍗″綍鍍忓皝闈紙鍥藉唴鏀寔锛屾捣澶栦笉鏀寔锛�
+ */
+- (void)requestRecordCover:(NSArray<EZDeviceRecordFile *> *)recordFiles;
+
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRecordDownloadTask.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRecordDownloadTask.h
new file mode 100644
index 0000000..ba50a2a
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRecordDownloadTask.h
@@ -0,0 +1,86 @@
+//
+//  EZRecordDownloadTask.h
+//  EZOpenSDK
+//
+//  Created by yuqian on 2019/7/2.
+//  Copyright 漏 2019 Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSInteger, EZRecordDownloaderStatus)
+{
+    EZRecordDownloaderStatusStart = 1,          //寮�濮嬩笅杞�
+    EZRecordDownloaderStatusFinish = 2,         //褰曞儚涓嬭浇缁撴潫
+    EZRecordDownloaderStatusMoreToken = 3,
+};
+
+typedef enum : NSUInteger {
+    EZRecordDownloadTaskWaitting,
+    EZRecordDownloadTaskDownloading,
+    EZRecordDownloadTaskCompleting,
+} EZRecordDownloadTaskStatus;
+
+@interface EZRecordDownloadTask : NSObject
+
+/**
+ 姣忎釜涓嬭浇浠诲姟鐨勫敮涓�鏍囪瘑
+ */
+@property (nonatomic, assign) NSUInteger taskID;
+
+
+@property (nonatomic, assign) EZRecordDownloadTaskStatus taskStatus;
+
+/**
+ 鏈湴瀛樻斁璺緞
+ */
+@property (nonatomic, strong) NSString *saveFilePath;
+
+/**
+ 缁撴潫鍥炶皟
+ */
+@property (nonatomic, copy) void(^finshed)(EZRecordDownloaderStatus statusCode);
+
+/**
+ 澶辫触鍥炶皟
+ */
+@property (nonatomic, copy) void(^failed)(NSError *error);
+
+/**
+ 宸蹭笅杞芥枃浠跺ぇ灏忓洖璋�
+ */
+@property (nonatomic, copy) void(^downloading)(NSUInteger downloadSize);
+
+/**
+ 寮�濮嬩笅杞�
+
+ @return 鎴愬姛0锛屽け璐�-1
+ */
+- (int)startRecordDownload;
+
+/**
+ 缁撴潫涓嬭浇锛屾竻鐞嗚祫婧�
+ */
+- (void)stopRecordDownload;
+
+/**
+ 璁剧疆涓嬭浇鍥炶皟
+ 
+ @param finshed 缁撴潫鍥炶皟
+ @param failed 澶辫触鍥炶皟
+ */
+- (void)setDownloadCallBackWithFinshed:(void(^)(EZRecordDownloaderStatus statusCode))finshed
+                                failed:(void(^)(NSError *error))failed;
+
+/**
+ 璁剧疆涓嬭浇杩涘害鍥炶皟
+ 
+ @param downloading 涓嬭浇鏂囦欢澶у皬鍥炶皟
+ */
+- (void)setDownloadCallBackWithDownloadSize:(void(^)(NSUInteger downloadSize))downloading;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRecordDownloader.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRecordDownloader.h
new file mode 100644
index 0000000..d815790
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZRecordDownloader.h
@@ -0,0 +1,49 @@
+//
+//  EZRecordDownloader.h
+//  EZOpenSDK
+//
+//  Created by yuqian on 2019/7/2.
+//  Copyright 漏 2019 Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class EZRecordDownloadTask;
+
+@interface EZRecordDownloader : NSObject
+
+
+/// 涓嬭浇浠诲姟闃熷垪
+@property (nonatomic, strong, readonly) NSMutableArray *tasks;
+
+/**
+ 鍒濆鍖栧崟渚�
+ 
+ @return 鍗曚緥
+ */
++ (instancetype) shareInstane;
+
+/**
+ 娣诲姞涓嬭浇浠诲姟锛屽苟寮�濮嬩笅杞�
+ 浠诲姟涓嬭浇骞跺彂鏁伴噺闄愬埗锛屾渶楂樻敮鎸� 10 涓换鍔″苟琛屼笅杞�
+ 璁惧褰曞儚涓嬭浇锛氫緷璧栬澶囨墍鏀寔鐨勬渶楂樿矾鏁伴檺鍒�
+ 
+ 
+ @param task 涓嬭浇浠诲姟
+ @return 鏄惁鍔犲叆闃熷垪鎴愬姛  0 寮�濮嬩笅杞� -1 浠诲姟涓虹┖   -2 浠诲姟宸插湪涓嬭浇 
+ */
+- (int) addDownloadTask:(EZRecordDownloadTask *)task;
+
+/**
+ 鍋滄涓嬭浇浠诲姟锛屽苟娓呴櫎涓嬭浇鍒楄〃涓殑浠诲姟銆備笅杞界粨鏉熸垨澶辫触鍧囪鎵ц锛屾竻鐞嗚祫婧�
+ 
+ @param task 涓嬭浇浠诲姟
+ @return 鏄惁绉婚櫎闃熷垪鎴愬姛
+ */
+- (int) stopDownloadTask:(EZRecordDownloadTask *)task;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZSADPDeviceInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZSADPDeviceInfo.h
new file mode 100644
index 0000000..7abbece
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZSADPDeviceInfo.h
@@ -0,0 +1,40 @@
+//
+//  EZSADPDeviceInfo.h
+//  EzvizOpenSDK
+//
+//  Created by linyong on 2017/8/15.
+//  Copyright 漏 2017骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface EZSADPDeviceInfo : NSObject
+
+///闀胯澶囧簭鍒楀彿
+@property (nonatomic,copy) NSString *deviceSerial;
+///璁惧mac鍦板潃
+@property (nonatomic,copy) NSString *deviceMac;
+///璁惧鏄惁婵�娲�
+@property (nonatomic,assign) BOOL actived;
+///璁惧鏈湴鍦板潃 IPV4
+@property (nonatomic,copy) NSString *localIp;
+///璁惧绔彛鍙�
+@property (nonatomic,assign) NSInteger localPort;
+///璁惧鏈湴鍦板潃 IPV6
+@property (nonatomic,copy) NSString *localIpV6;
+///http绔彛鍙�
+@property (nonatomic,assign) NSInteger httpPort;
+///璁惧绫诲瀷
+@property (nonatomic,assign) NSInteger deviceType;
+///璁惧绫诲瀷鎻忚堪
+@property (nonatomic,copy) NSString *deviceTypeDes;
+///璁惧鍥轰欢鐗堟湰鍙�
+@property (nonatomic,copy) NSString *firmwareVersion;
+///鎸変綅琛ㄧず,瀵瑰簲涓轰负1琛ㄧず鏀寔,0x01:鏄惁鏀寔Ipv6,0x02:鏄惁鏀寔淇敼Ipv6鍙傛暟,0x04:鏄惁鏀寔Dhcp,0x08:鏄惁鏀寔udp澶氭挱,0x10:鏄惁鍚姞瀵嗚妭鐐�,0x20:鏄惁鏀寔鎭㈠瀵嗙爜,0x40:鏄惁鏀寔閲嶇疆瀵嗙爜,0x80:鏄惁鏀寔鍚屾IPC瀵嗙爜
+@property (nonatomic,assign) NSInteger abilitySupport;
+///鏄惁鍚敤DHCP
+@property (nonatomic,assign) BOOL DHCPOn;
+///鏄惁鏄悿鐭宠澶�
+@property (nonatomic,assign) BOOL isEzvizDevice;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZStorageInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZStorageInfo.h
new file mode 100644
index 0000000..2393d5a
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZStorageInfo.h
@@ -0,0 +1,23 @@
+//
+//  EZStorageInfo.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/12/15.
+//  Copyright 漏 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓鸿澶囧瓨鍌ㄤ俊鎭璞�
+@interface EZStorageInfo : NSObject
+
+/// 瀛樺偍浠嬭川绱㈠紩
+@property (nonatomic) NSInteger index;
+/// 瀛樺偍浠嬭川鍚嶇О
+@property (nonatomic, copy) NSString *name;
+/// 瀛樺偍浠嬭川鐘舵�侊紝0姝e父銆�1瀛樺偍浠嬭川閿欍��2鏈牸寮忓寲銆�3姝e湪鏍煎紡鍖�
+@property (nonatomic) NSInteger status;
+/// 瀛樺偍浠嬭川鏍煎紡鍖栬繘搴�
+@property (nonatomic) NSInteger formatRate;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZStreamPlayer.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZStreamPlayer.h
new file mode 100644
index 0000000..408ba05
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZStreamPlayer.h
@@ -0,0 +1,118 @@
+//
+//  EZStreamPlayer.h
+//  EZOpenSDKFramework
+//
+//  Created by yuqian on 2020/4/3.
+//  Copyright 漏 2020 Hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "EZDeviceRecordFile.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class EZStreamPlayer;
+
+typedef enum : NSUInteger {
+    EZStreamPlayerMsgTypeUnknown,              //鏃犳晥绫诲瀷
+    EZStreamPlayerMsgTypeRealPlayStart,        //寮�鍚瑙堟垚鍔�
+    EZStreamPlayerMsgTypeRealPlayClose,        //鍏抽棴棰勮鎴愬姛
+    EZStreamPlayerMsgTypePlayBackStart,        //寮�鍚澶囧洖鏀炬垚鍔�
+    EZStreamPlayerMsgTypePlayBackClose,        //鍏抽棴璁惧鍥炴斁鎴愬姛
+} EZStreamPlayerMsgType;
+
+typedef enum : NSUInteger {
+    EZStreamDataTypeUnknown,                   // 鏃犳晥绫诲瀷
+    EZStreamDataTypeHeader,                    // 鎺ユ敹娴佸ご
+    EZStreamDataTypeData,                      // 鎺ユ敹鏁版嵁
+    EZStreamDataTypeStreamEnd,                 // 娴佺粨鏉�
+}EZStreamDataType;
+
+
+@protocol EZStreamPlayerDelegate <NSObject>
+
+/**
+ *  鎾斁鍣ㄦ挱鏀惧け璐ラ敊璇洖璋�
+ *
+ *  @param player 鎾斁鍣ㄥ璞�
+ *  @param error  鎾斁鍣ㄩ敊璇�
+ */
+- (void)streamPlayer:(EZStreamPlayer *)player didPlayFailed:(NSError *)error;
+
+/**
+ *  鎾斁鍣ㄦ秷鎭洖璋�
+ *
+ *  @param player      鎾斁鍣ㄥ璞�
+ *  @param msgType 鎾斁鍣ㄦ秷鎭爜
+ */
+- (void)streamPlayer:(EZStreamPlayer *)player didReceivedMessage:(EZStreamPlayerMsgType)msgType;
+
+/**
+ *  鐮佹祦鍥炶皟
+ *
+ *  @param player     鎾斁鍣ㄥ璞�
+ *  @param dataType  鏁版嵁绫诲瀷
+ *  @param data        鐮佹祦鏁版嵁
+ *  @param dataLength  闀垮害
+ */
+- (void)streamPlayer:(EZStreamPlayer *)player didReceivedData:(EZStreamDataType)dataType data:(int8_t *)data length:(int)dataLength;
+
+@end
+
+@interface EZStreamPlayer : NSObject
+
+@property (nonatomic, weak) id<EZStreamPlayerDelegate>delegate;
+
+/// 鏄惁璁╂挱鏀惧櫒澶勭悊杩涘叆鍚庡彴,YES:鑷姩澶勭悊;NO:涓嶅鐞�,榛樿涓篩ES
+@property (nonatomic) BOOL backgroundModeByPlayer;
+
+
+/**
+*  鏍规嵁璁惧搴忓垪鍙峰拰閫氶亾鍙峰垱寤篍ZPlayer瀵硅薄
+*
+*  @param deviceSerial 璁惧搴忓垪鍙�
+*  @param cameraNo     閫氶亾鍙�
+*
+*  @return EZStreamPlayer瀵硅薄
+*/
++ (instancetype)createPlayerWithDeviceSerial:(NSString *)deviceSerial cameraNo:(NSInteger)cameraNo;
+
+/**
+ *  閿�姣丒ZPlayer
+ *
+ *  @return YES/NO;
+ */
+- (BOOL)destoryPlayer;
+
+/**
+ *  寮�濮嬫挱鏀撅紝寮傛鎺ュ彛锛岃繑鍥炲�煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)startRealPlay;
+
+/**
+ *  鍋滄鎾斁锛屽紓姝ユ帴鍙�
+ *
+ */
+- (void)stopRealPlay;
+
+/**
+ *  寮�濮嬭澶囧洖鏀撅紝寮傛鎺ュ彛锛岃繑鍥炲�煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
+ *
+ *  @param deviceFile SD鍗℃枃浠朵俊鎭�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)startDevicePlayback:(EZDeviceRecordFile *)deviceFile;
+
+/// 缁撴潫璁惧鍥炴斁
+- (void)stopDevicePlayback;
+
+/// 璁剧疆璁惧楠岃瘉鐮侊紝鎾斁鍓嶈缃�
+/// @param verifyCode 璁惧楠岃瘉鐮�
+- (void)setVerifyCode:(NSString *)verifyCode;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZTokenKit.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZTokenKit.h
new file mode 100644
index 0000000..03f143f
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZTokenKit.h
@@ -0,0 +1,40 @@
+//
+//  EzvizTokenKit.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/8/31.
+//  Copyright (c) 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface EZTokenKit : NSObject
+
+@property (nonatomic, readonly) NSString *token;  //鑾峰彇绗竴涓猼oken
+@property (nonatomic, readonly) NSInteger tokenCount; //褰撳墠tokenKit閲岃繕鏈夊灏憈oken鐨勬暟閲�
+
+/**
+ *  鍗曚緥鏂规硶
+ *
+ *  @return EZTokenKit瀵硅薄
+ */
++ (instancetype)sharedKit;
+
+/**
+ *  璁剧疆TokenList鏁扮粍
+ *
+ *  @param tokenList token鏁扮粍
+ */
+- (void)setTokens:(NSArray *)tokenList;
+
+/**
+ *  娓呯┖鏁扮粍
+ */
+- (void)clearTokens;
+
+/**
+ *  棰勫姞杞藉彇娴乼oken
+ */
+- (void)prepareToken:(void (^)(NSError *error))block;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZUserInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZUserInfo.h
new file mode 100644
index 0000000..dbfafe6
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZUserInfo.h
@@ -0,0 +1,23 @@
+//
+//  EZUserInfo.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/12/11.
+//  Copyright 漏 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓虹敤鎴蜂俊鎭璞�
+@interface EZUserInfo : NSObject
+
+/// 鐢ㄦ埛鍚�
+@property (nonatomic, copy) NSString *username;
+/// 鏄电О锛屾捣澶栫増鏈瀛楁涓虹┖
+@property (nonatomic, copy) NSString *nickname;
+/// 鐢ㄦ埛澶村儚鍦板潃锛屾捣澶栫増鏈瀛楁涓虹┖
+@property (nonatomic, copy) NSString *avatarUrl;
+/// 鐢ㄦ埛鍖哄煙domain
+@property (nonatomic, copy) NSString *areaDomain;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoQualityInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoQualityInfo.h
new file mode 100644
index 0000000..f392af7
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoQualityInfo.h
@@ -0,0 +1,23 @@
+//
+//  EZVideoQualityInfo.h
+//  EzvizOpenSDK
+//
+//  Created by linyong on 2017/2/28.
+//  Copyright 漏 2017骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓洪�氶亾鏀寔鐨勬竻鏅板害淇℃伅
+@interface EZVideoQualityInfo : NSObject
+
+/// 娓呮櫚搴﹀悕绉帮紝濡傝秴娓呫�侀珮娓呫�佸潎琛°�佹祦鐣呯瓑
+@property (nonatomic,copy) NSString *videoQualityName;
+
+/// 瑙嗛璐ㄩ噺锛�0-娴佺晠锛�1-鍧囪 锛�2-楂樻竻锛�3-瓒呮竻
+@property (nonatomic,assign) NSInteger videoLevel;
+
+/// 璇ユ竻鏅板害鎵�浣跨敤鐨勭爜娴佺被鍨嬶紝1涓轰富鐮佹祦锛�2涓哄瓙鐮佹祦
+@property (nonatomic,assign) NSInteger streamType;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalk.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalk.h
new file mode 100644
index 0000000..98fda05
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalk.h
@@ -0,0 +1,179 @@
+//
+//  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 "EZRTCMediaSessionDefines.h"
+#import "EZVideoTalkView.h"
+
+@class EZVideoTalk;
+@class EZRTCCameraParam;
+@class EZRTCVideoEncodeParam;
+
+@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 闄勫姞淇℃伅锛�
+    濡傛灉鏄疎ZBAVMessagePeerEnteredRoom銆丒ZBAVMessagePeerLeaveRoom娑堟伅锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄
+    濡傛灉娑堟伅鏄� 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锛歱aram role=1 reason=0 roomid=鏀跺埌鐨剅oomid 鎺ュ惉瀹岄�氳瘽涓寕鏂皟鐢╯top
+/// B.濡傛灉涓诲姩鎷掓帴 璋冪敤 start锛歱aram role=2 reason=101 roomid=鏀跺埌鐨剅oomid 鎷掓帴瀹屾垚鍚庣珛椹皟鐢╯top
+/// C.濡傛灉鏃犱汉鎺ュ惉 璋冪敤 start锛歱aram role=2 reason=102 roomid=鏀跺埌鐨剅oomid 瀹屾垚鍚庣珛椹皟鐢╯top
+@interface EZVideoTalk : NSObject
+
+@property (nonatomic, weak) id<EZVideoTalkDelegate> delegate;
+@property (nonatomic, assign, readonly) int32_t roomID;
+
+
+/**
+ 瀵硅鏃讹紝寮哄埗閲囩敤鎵0鍣ㄦ挱鏀惧0闊筹紝榛樿涓篩ES
+ */
+@property (nonatomic, assign) BOOL forceToSpeaker;
+
+
+/// 鍒濆鍖栬棰戦�氳瘽SDK瀵硅薄
+- (instancetype)init;
+
+
+
+/// 璁剧疆鏈湴鐨勯瑙堢獥鍙�
+/// @param localWin 绐楀彛window
+- (void)setLocalWindow:(EZVideoTalkView *)localWin;
+
+
+/// 鏈湴鎽勫儚澶村紑鍚�/鍏抽棴鎺ュ彛
+/// @param enable 鏄惁寮�鍚憚鍍忓ご
+- (NSInteger)enableVideoCapture:(BOOL)enable;
+
+
+/// 鏈湴楹﹀厠椋庡紑鍚�/鍏抽棴鎺ュ彛
+/// @param enable 鏄惁寮�鍚害鍏嬮
+- (NSInteger)enableAudioCatpure:(BOOL)enable;
+
+
+// 鏄惁寮�鍚睆骞曞叡浜�
+/// @param enable 鏄惁寮�鍚�
+/// @param block 涓荤嚎绋嬪洖璋冪粨鏋�
+- (void)enableScreenShare:(BOOL)enable andName:(NSString *)name withResultBlock:(EZScreenShareResultBlock)block;
+
+
+/// 鍙戣捣鍙屽悜闊宠棰戝璁诧紝鑰楁椂鎺ュ彛锛屾垚鍔熻繑鍥� 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:閫夋嫨鍚庣疆锛孨O:閫夋嫨鍓嶇疆
+- (int32_t)switchCamera:(BOOL)backCameraSelected;
+
+
+/// 寮�鍏宠繙绋嬪0闊筹紝榛樿寮�
+/// @param open 寮�鍚�
+- (int32_t)enableRemoteSound:(BOOL)open;
+/// 寮傛鑾峰彇鏈湴鎶撳浘
+/// @param block 鎶撳浘鎴愬姛鍥炶皟锛屽け璐mage涓簄il
+//- (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;
+
+
+/// 鍙戦�侀�忎紶娑堟伅鎺ュ彛锛屽悓姝ユ帴鍙o紝鍙兘鑰楁椂
+/// @param msg 娑堟伅鍐呭锛屾瘮濡俲son鏁版嵁
+- (int)sendTransferMsg:(NSString *)msg;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkComponent.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkComponent.h
new file mode 100644
index 0000000..2eaaa0e
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkComponent.h
@@ -0,0 +1,23 @@
+//
+//  EZVideoTalkComponent.h
+//  EZOpenSDK
+//
+//  Created by JuneCheng on 2022/7/23.
+//
+
+#ifndef EZVideoTalkComponent_h
+#define EZVideoTalkComponent_h
+
+#import <EZOpenSDKFramework/EZBAVParam.h>
+#import <EZOpenSDKFramework/EZConferenceClient.h>
+#import <EZOpenSDKFramework/EZRTCCameraParam.h>
+#import <EZOpenSDKFramework/EZRTCMediaSessionDefines.h>
+#import <EZOpenSDKFramework/EZRTCSampleHandleManager.h>
+#import <EZOpenSDKFramework/EZRTCVideoEncodeParam.h>
+#import <EZOpenSDKFramework/EZVideoTalk.h>
+#import <EZOpenSDKFramework/EZVideoTalkGlobal.h>
+#import <EZOpenSDKFramework/EZVideoTalkSDK.h>
+#import <EZOpenSDKFramework/EZVideoTalkSDKDefines.h>
+#import <EZOpenSDKFramework/EZVideoTalkView.h>
+
+#endif /* EZVideoTalkComponent_h */
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkGlobal.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkGlobal.h
new file mode 100644
index 0000000..5517624
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkGlobal.h
@@ -0,0 +1,63 @@
+//
+//  EZVideoTalkGlobal.h
+//  EZVideoTalk
+//
+//  Created by yuqian on 2018/9/12.
+//  Copyright 漏 2018骞� hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "EZRTCMediaSessionDefines.h"
+
+@class EZRTCVideoEncodeParam;
+@class EZRTCCameraParam;
+
+@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;
+
+
+
+/// 璁剧疆閲囬泦鐨勬憚鍍忓ご鍙傛暟锛屾瘮濡傞噰鐢ㄥ墠缃繕鏄悗缃紝鍦ㄥ彂璧蜂换浣曡棰戞搷浣滃墠璋冪敤鐢熸晥
+/// @param cameraParam 鎽勫儚澶村弬鏁�
++ (void)setCameraParam:(EZRTCCameraParam *)cameraParam;
+
+
+/// 璁剧疆閲囬泦鐨勮棰戠殑缂栫爜鍙傛暟锛屾瘮濡傞噰闆嗘渶缁堣緭鍑虹殑鍒嗚鲸鐜囥�佺爜鐜囩瓑
+/// @param encodeParam 缂栫爜鍙傛暟
++ (void)setVideoEncodeParam:(EZRTCVideoEncodeParam *)encodeParam;
+
+
+/// 璁剧疆閲囬泦鐨勮緟娴佺殑缂栫爜鍙傛暟锛屾瘮濡傞噰闆嗘渶缁堣緭鍑虹殑鍒嗚鲸鐜囥�佺爜鐜囩瓑
+/// @param encodeParam 缂栫爜鍙傛暟
++ (void)setSmallVideoEncodeParam:(EZRTCVideoEncodeParam *)encodeParam;
+
+
++ (EZRTCAudioEncodeType)audioEncodeType;
+
+/// 璁剧疆缂栫爜绫诲瀷锛屽湪瑙嗛閫氳瘽鍙戣捣鍓嶈缃湁鏁�
++ (void)setAudioEncodeType:(EZRTCAudioEncodeType)type;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkSDK.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkSDK.h
new file mode 100644
index 0000000..353e0c0
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkSDK.h
@@ -0,0 +1,268 @@
+//
+//  EZVideoTalkSDK.h
+//  EZOpenSDK
+//
+//  Created by yuqian on 2020/3/14.
+//  Copyright 漏 2020 Hikvision. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+#import "EZRTCMediaSessionDefines.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 閫忎紶娑堟伅锛�
+    濡傛灉鏄疎ZVideoTalkMessagePeerEnteredRoom鍜孍ZVideoTalkMessagePeerLeaveRoom娑堟伅锛宮sg鏄瘂@"clientID":@(9527),@"clientName":@"寮犱笁"}
+        濡傛灉娑堟伅鏄� EZVideoTalkMessageTransferData msg鏄� msg鏄瘂@"content":@"瀹為檯鐨勯�忎紶娑堟伅"}
+ */
+- (void)videoTalk:(id)client didReceivedMessage:(int32_t)messageCode msg:(id)msg;
+
+/// 鐢婚潰鏄剧ず鍥炶皟
+/// @param client client
+/// @param width 鐢婚潰鐨勫 鍍忕礌鍗曚綅
+/// @param height 鐢婚潰鐨勯珮 鍍忕礌鍗曚綅
+/// @param userID 鐢ㄦ埛id
+- (void)videoTalk:(id)client didDisplayWidth:(int32_t)width height:(int32_t)height ofRemoteClient:(NSString *)userID;
+
+@end
+
+@interface EZVideoTalkSDK : NSObject
+
+@property (nonatomic, weak) id<EZVideoTalkSDKDelegate> delegate;
+
+/// 鍔犲叆鐨勬埧闂村彿
+@property (nonatomic, assign, readonly) int32_t roomID;
+
+/**
+ 瀵硅鏃讹紝寮哄埗閲囩敤鎵0鍣ㄦ挱鏀惧0闊筹紝榛樿涓篩ES
+ */
+@property (nonatomic, assign) BOOL forceToSpeaker;
+
+- (instancetype)init;
+
+
+/// 璁剧疆鏈湴鐨勯瑙堢獥鍙�
+/// @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:閫夋嫨鍚庣疆锛孨O:閫夋嫨鍓嶇疆
+- (int32_t)switchCamera:(BOOL)backCameraSelected;
+
+
+/// 寮�鍏宠繙绋嬪0闊筹紝榛樿寮�
+/// @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 EZRTCClient : NSObject
+
+@property (nonatomic, weak) id<EZVideoTalkSDKDelegate> delegate;
+
+/// 鍔犲叆鐨勬埧闂村彿
+@property (nonatomic, assign, readonly) int32_t roomID;
+
+/**
+ 瀵硅鏃讹紝寮哄埗閲囩敤鎵0鍣ㄦ挱鏀惧0闊筹紝榛樿涓篩ES
+ */
+@property (nonatomic, assign) BOOL forceToSpeaker;
+
+
+/// 鍒濆鍖栬棰戦�氳瘽SDK瀵硅薄
+- (instancetype)init;
+
+
+/// 鍔犲叆浼氳锛堟柊鎺ュ彛锛�
+/// @param roomId 鎴块棿鍙�
+/// @param password 瀵嗙爜
+/// @param userID 鐢ㄦ埛鑷畾涔塈D
+- (void)enterRoom:(int32_t)roomId
+     withPassword:(NSString *)password
+       withUserID:(NSString *)userID
+       withAppId:(NSString *)appId;
+
+
+/// 閫�鍑轰細璁�
+- (NSInteger)exitRoom;
+
+
+/// 瑙f暎浼氳锛岃В鏁e悗锛屽叾浠栦笌浼氳�呬細鏀跺埌浼氳琚В鏁f秷鎭�
+- (void)dissolveRoom;
+
+/// 鏈湴鎽勫儚澶村紑鍚�/鍏抽棴鎺ュ彛.
+/// @param enable 鏄惁寮�鍚憚鍍忓ご
+- (NSInteger)enableLocalVideo:(BOOL)enable;
+
+/// 璁剧疆鏈湴鐨勯瑙堢獥鍙�
+/// @param localWin 绐楀彛window
+- (void)setLocalView:(EZVideoTalkView *)localWin;
+
+/// 鏄惁寮�鍚緟娴侊紝杈呮祦鍒嗚鲸鐜囨洿浣庛�佺爜鐜囨洿灏�
+/// @param enable 鏄惁寮�鍚�
+- (NSInteger)enableLocalSmallVideo:(BOOL)enable;
+
+/// 鏈湴楹﹀厠椋庡紑鍚�/鍏抽棴鎺ュ彛
+/// @param enable 鏄惁寮�鍚害鍏嬮
+/// @param block 涓荤嚎绋嬪洖璋冪粨鏋�
+- (void)enableLocalAudio:(BOOL)enable withResultBlock:(EZAudioOpenResultBlock)block;
+
+/// 寮�鍚睆骞曞叡浜�
+/// @param name 鍏变韩鍚嶇О
+/// @param resultBlock 灞忓箷鍏变韩缁撴灉鍥炶皟
+/// @param didFinishBlock 灞忓箷鍏变韩缁撴潫鍥炶皟锛屽湪姝e父鐨勫睆骞曞叡浜粨鏉熺粨鏉熷悗鍥炶皟
+- (void)startScreenShareWithName:(NSString *)name
+                 withResultBlock:(EZScreenShareResultBlock)resultBlock
+                   andEndedBlock:(dispatch_block_t)didFinishBlock;
+
+
+/// 缁撴潫灞忓箷鍏变韩
+- (void)stopScreenShare;
+
+
+/// 璁剧疆杩滅▼绐楀彛锛�1.蹇呴』鍦ㄦ嬁鍒拌繙绔鎴风鍔犲叆鐨勬秷鎭悗璁剧疆锛�2.蹇呴』鍦ㄤ富绾跨▼璋冪敤
+/// @param window 鎾斁绐楀彛
+/// @param clientID 鍔犲叆鐨勫鎴风鐨処D
+/// @param streamType 1瑙嗛 2闊抽 4灏忔祦
+- (int32_t)setRemoteView:(nullable UIView *)window ofUser:(NSString *)userID withStream:(NSInteger)streamType;
+
+/// 璁剧疆瑙傜湅灞忓箷鍏变韩鐨勭獥鍙�,蹇呴』鍦ㄤ富绾跨▼璋冪敤
+/// @param view 绐楀彛
+- (int32_t)setScreenShareView:(UIView *_Nullable)view;
+
+/// 鍒囨崲瀵硅鏃朵娇鐢ㄧ殑鎽勫儚澶达紝榛樿閲囩敤鍓嶇疆 鍚屾鎺ュ彛
+/// @param backCameraSelected YES:閫夋嫨鍚庣疆锛孨O:閫夋嫨鍓嶇疆
+- (int32_t)switchCamera:(BOOL)backCameraSelected;
+
+#pragma mark - 褰曞埗鐩稿叧鎺ュ彛
+/// 寮�濮嬫埧闂磋棰戜細璁綍鍒�
+/// @param roomId 鎴块棿鍙�
+/// @param customId 寮�鍙戣�呰嚜瀹氫箟鐢ㄦ埛ID
+/// @param recUsers 闇�瑕佸綍鍒剁殑鎴块棿鍙備笌鑰卛d
+/// @param projectId 浜戝瓨鍌ㄩ」鐩甀D
+/// @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 涓绘寔浜虹敤鎴穒d锛堝紑鍙戣�呰嚜瀹氫箟鐨勭敤鎴穒d锛�
+/// @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
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkSDKDefines.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkSDKDefines.h
new file mode 100644
index 0000000..c3347aa
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkSDKDefines.h
@@ -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
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkView.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkView.h
new file mode 100644
index 0000000..1ab4653
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTalkView.h
@@ -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
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTransformer.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTransformer.h
new file mode 100644
index 0000000..61c9126
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZVideoTransformer.h
@@ -0,0 +1,39 @@
+//
+//  EZVideoTransformer.h
+//  EZOpenSDK
+//
+//  Created by yuqian on 2019/6/17.
+//  Copyright 漏 2019 Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef enum {
+    
+    EZVideoTransformerTypeMP4,
+    
+} EZVideoTransformerType;
+
+@interface EZVideoTransformer : NSObject
+
+/// 鏈湴PS鏂囦欢杞崲涓篗P4鏂囦欢
+/// @param psPath ps鏂囦欢璺緞
+/// @param targetPath mp4鏂囦欢璺緞
+/// @param type 杞崲绫诲瀷
+/// @param key 璁惧楠岃瘉鐮�
+/// @param succBlock 鎴愬姛鍥炶皟
+/// @param processBlock 杩涘害鍥炶皟
+/// @param failBlock 澶辫触鍥炶皟
++ (void)videoTransFormerPSPath:(NSString *)psPath
+                        toPath:(NSString *)targetPath
+                          type:(EZVideoTransformerType)type
+                       withKey:(NSString *)key
+                     succBlock:(void (^)())succBlock
+                  processBlock:(void(^)(int rate))processBlock
+                     failBlock:(void(^)(int errCode))failBlock;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZWiFiItemInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZWiFiItemInfo.h
new file mode 100644
index 0000000..3ea2418
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EZWiFiItemInfo.h
@@ -0,0 +1,21 @@
+//
+//  EZWiFiItemInfo.h
+//  EZWiFiConfigSDK
+//
+//  Created by yuqian on 2020/7/28.
+//  Copyright 漏 2020 com.ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZWiFiItemInfo : NSObject
+
+@property (nonatomic, copy) NSString *ssid;             /*蹇呭~,SSID,string*/
+@property (nonatomic, assign) NSInteger signalStrength;   /*蹇呭~,淇″彿寮哄害,"-100-0",int锛屾暟鍊艰秺澶т俊鍙疯秺寮�*/
+@property (nonatomic, copy) NSString *securityMode;     /*鍙��,瀹夊叏妯″紡: "open,WEP,WPA-personal,WPA2-personal,WPA-WPA2-personal,WPA2-enterprise",string*/
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EzvizRecordFileInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EzvizRecordFileInfo.h
new file mode 100644
index 0000000..38db6dc
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EzvizRecordFileInfo.h
@@ -0,0 +1,47 @@
+//
+//  EzvizRecordFileInfo.h
+//  EzvizOpenSDK
+//
+//  Created by linyong on 2017/5/5.
+//  Copyright 漏 2017骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+///褰曞儚鏂囦欢淇℃伅
+@interface EzvizRecordFileInfo : NSObject
+
+///璁惧搴忓垪鍙�
+@property (nonatomic,copy) NSString *deviceSerial;
+
+///璁惧閫氶亾鍙�
+@property (nonatomic,assign) NSInteger channelNo;
+
+///鍥炴斁婧愶紝0-绯荤粺鑷姩閫夋嫨锛�1-浜戝瓨鍌紝2-鏈湴褰曞儚
+@property (nonatomic,assign) NSInteger recType;
+
+///鏂囦欢寮�濮嬫椂闂�
+@property (nonatomic,strong) NSDate *startTime;
+
+///鏂囦欢缁撴潫鏃堕棿
+@property (nonatomic,strong) NSDate *endTime;
+
+///鏂囦欢绫诲瀷0锛氱洰褰�1锛氳棰戞枃浠�2锛氬浘鐗囨枃浠�3锛氶煶棰戞枃浠�
+@property (nonatomic,assign) NSInteger fileType;
+
+///鏄惁鍔犲瘑0--涓嶅姞瀵�,1--鍔犲瘑
+@property (nonatomic,assign) NSInteger crypt;
+
+///楠岃瘉鐮丮D5鍊�
+@property (nonatomic,copy) NSString *keyChecksum;
+
+///鏂囦欢ID
+@property (nonatomic,copy) NSString *fileId;
+
+///灏侀潰鍥剧墖鍦板潃
+@property (nonatomic,copy) NSString *coverPic;
+
+///涓嬭浇璺緞
+@property (nonatomic,copy) NSString *downloadPath;
+
+@end
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EzvizWatchServerInfo.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EzvizWatchServerInfo.h
new file mode 100644
index 0000000..acaf6d6
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/EzvizWatchServerInfo.h
@@ -0,0 +1,26 @@
+//
+//  EzvizWatchServerInfo.h
+//  EzvizOpenSDK
+//
+//  Created by yuqian on 2020/3/2.
+//  Copyright 漏 2020 Hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EzvizWatchServerInfo : NSObject
+
+@property (nonatomic, copy) NSString *domain;
+@property (nonatomic, copy) NSString *externalIp;
+@property (nonatomic, assign) int 	forceStreamType;
+@property (nonatomic, copy) NSString *idcType;
+@property (nonatomic, copy) NSString *internalIp;
+@property (nonatomic, assign) int isBackup;
+@property (nonatomic, copy) NSString *memo;
+@property (nonatomic, assign) int port;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/Sadp.h b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/Sadp.h
new file mode 100644
index 0000000..a6ec76d
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Headers/Sadp.h
@@ -0,0 +1,557 @@
+#ifndef _SADP_H_
+#define _SADP_H_
+
+
+#if defined _WIN32 || defined _WIN64
+#define CSADP_API  extern "C" __declspec(dllimport)
+#elif defined __linux__ || defined __APPLE__
+#define CSADP_API  extern "C"
+#endif
+
+#if defined _WIN32 || defined _WIN64
+#define CALLBACK __stdcall
+#elif defined __linux__ || defined __APPLE__
+#define CALLBACK  
+#endif
+
+#define     BOOL int
+
+//消息操作的类型
+#define SADP_ADD          1         //增加一设备
+#define SADP_UPDATE       2         //更新设备
+#define SADP_DEC          3         //设备下线
+#define SADP_RESTART      4         //设备重新启动
+#define SADP_UPDATEFAIL   5         //设备更新失败
+
+//外部命令码
+#define SADP_GET_DEVICE_CODE                1   //获取设备码,对应结构体SADP_SAFE_CODE
+#define SADP_GET_ENCRYPT_STRING             2   //获取加密串,对应结构体SADP_ENCRYPT_STRING
+#define SADP_GET_DEVICE_TYPE_UNLOCK_CODE    3   //获取设备类型解禁码,对应的结构体SADP_TYPE_UNLOCK_CODE
+#define SADP_SET_DEVICE_CUSTOM_TYPE         4   //设置设备自定义型号,对应的结构体SADP_CUSTOM_DEVICE_TYPE
+#define SADP_GET_GUID                       5   //获取GUID
+#define SADP_GET_SECURITY_QUESTION          6   //获取安全问题
+#define SADP_SET_SECURITY_QUESTION          7   //设置安全问题
+#define SADP_SET_HCPLATFORM_STATUS          8   //设置HCPLATFORM状态
+#define SADP_SET_VERIFICATION_CODE          9   //设置验证码(验证码用于萤石接入、预览、控制的唯一密码)
+#define SADP_GET_BIND_LIST                  12  //获取绑定设备列表
+#define SADP_SET_BIND_LIST                  13  //设置绑定设备列表
+#define SADP_RESTORE_INACTIVE               14  //恢复未激活
+#define SADP_SET_WIFI_REGION                15  //设置wifi区域
+#define SADP_SET_CHANNEL_DEFAULT_PASSWORD   16  //设置通道默认密码
+#define SADP_GET_SELF_CHECK                 17  //获取设备自检状态
+#define SADP_DISK_LOCATE                    18  //坏盘定位
+#define SADP_EHOME_ENABLE                   19  //EHome使能
+#define SADP_SET_USER_MAILBOX               20  //设置用户邮箱
+#define SADP_GET_QR_CODES                   21  //获取二维码数据
+#define SADP_GET_PASSWORD_RESET_TYPE        27  //获取重置密码方式参数
+
+
+
+#define SADP_MAX_VERIFICATION_CODE_LEN  12   //最大验证码长度
+#define MAX_PASS_LEN                    16   //设备最大密码长度
+#define MAX_QUESTION_LIST_LEN           32   //最多问题列表个数
+#define SADP_MAX_BIND_NUM               32   //最大绑定设备个数
+#define MAX_CPU_LEN                     32   //CPU长度
+#define MAX_MEMORY_LEN                  32   //内存长度
+#define MAX_USERNAME_LEN                32   //用户名最大长度
+#define SADP_MAX_SERIALNO_LEN           64   //最大设备序列号长度
+#define MAX_DEVICE_CODE                 128  //设备返回码长度,暂定最大128
+#define MAX_MAILBOX_LEN                 128  //邮箱长度,暂定最大128
+#define MAX_GUID_LEN                    128  //GUID长度
+#define MAX_EXCHANGE_CODE               256  //交换码长度
+#define MAX_ENCRYPT_CODE                256  //设备返回码加密后长度
+#define MAX_UNLOCK_CODE_KEY             256  //解禁密钥
+#define MAX_QR_CODES                    256  //二维码数据长度,暂定最大256
+#define MAX_ANSWER_LEN                  256  //最大答案长度
+#define MAX_UNLOCK_CODE_RANDOM_LEN      256  //解禁码随机串
+#define MAX_FILE_PATH_LEN               260  //文件最大路径长度
+
+
+
+
+// 错误码
+#define SADP_ERROR_BASE                 2000
+#define SADP_NOERROR                    0                     // 没有错误
+#define SADP_ALLOC_RESOURCE_ERROR       (SADP_ERROR_BASE+1)   // 资源分配错误
+#define SADP_NOT_START_ERROR            (SADP_ERROR_BASE+2)   // SADP未启动
+#define SADP_NO_ADAPTER_ERROR           (SADP_ERROR_BASE+3)   // 无网卡
+#define SADP_GET_ADAPTER_FAIL_ERROR     (SADP_ERROR_BASE+4)   // 获取网卡信息失败
+#define SADP_PARAMETER_ERROR            (SADP_ERROR_BASE+5)   // 参数错误
+#define SADP_OPEN_ADAPTER_FAIL_ERROR    (SADP_ERROR_BASE+6)   // 打开网卡失败
+#define SADP_SEND_PACKET_FAIL_ERROR     (SADP_ERROR_BASE+7)   // 发送数据失败
+#define SADP_SYSTEM_CALL_ERROR          (SADP_ERROR_BASE+8)   // 系统接口调用失败
+#define SADP_DEVICE_DENY                (SADP_ERROR_BASE+9)   // 设备拒绝处理
+#define SADP_NPF_INSTALL_ERROR          (SADP_ERROR_BASE+10)  // 安装NPF服务失败
+#define SADP_TIMEOUT                    (SADP_ERROR_BASE+11)  // 设备超时
+#define SADP_CREATE_SOCKET_ERROR        (SADP_ERROR_BASE+12)  // 创建socket失败
+#define SADP_BIND_SOCKET_ERROR          (SADP_ERROR_BASE+13)  // 绑定socket失败
+#define SADP_JOIN_MULTI_CAST_ERROR      (SADP_ERROR_BASE+14)  // 加入多播组失败
+#define SADP_NETWORK_SEND_ERROR         (SADP_ERROR_BASE+15)  // 发送出错
+#define SADP_NETWORK_RECV_ERROR         (SADP_ERROR_BASE+16)  // 接收出错
+#define SADP_XML_PARSE_ERROR            (SADP_ERROR_BASE+17)  // 多播XML解析出错
+#define SADP_LOCKED                     (SADP_ERROR_BASE+18)  // 设备锁定
+#define SADP_NOT_ACTIVATED              (SADP_ERROR_BASE+19)  // 设备未激活
+#define SADP_RISK_PASSWORD              (SADP_ERROR_BASE+20)  // 风险高的密码
+#define SADP_HAS_ACTIVATED              (SADP_ERROR_BASE+21)  // 设备已激活
+#define SADP_EMPTY_ENCRYPT_STRING       (SADP_ERROR_BASE+22)  // 加密串为空
+#define SADP_EXPORT_FILE_OVERDUE        (SADP_ERROR_BASE+23)  // 导出文件超期
+#define SADP_PASSWORD_ERROR             (SADP_ERROR_BASE+24)  // 密码错误
+#define SADP_LONG_SECURITY_ANSWER       (SADP_ERROR_BASE+25)  // 安全问题答案太长
+#define SADP_INVALID_GUID               (SADP_ERROR_BASE+26)  // 无效的GUID
+#define SADP_ANSWER_ERROR               (SADP_ERROR_BASE+27)  // 答案错误
+#define SADP_QUESTION_NUM_ERR           (SADP_ERROR_BASE+28)  // 安全问题个数配置错误
+#define SADP_LOAD_WPCAP_FAIL            (SADP_ERROR_BASE+30)  // 加载Wpcap失败
+#define SADP_ILLEGAL_VERIFICATION_CODE  (SADP_ERROR_BASE+33)  // 非法验证码
+#define SADP_BIND_ERROR_DEV             (SADP_ERROR_BASE+34)  // 绑定错误的设备
+#define SADP_EXTED_MAX_BIND_NUM         (SADP_ERROR_BASE+35)  // 超过最大绑定个数
+#define SADP_MAILBOX_NOT_EXIST          (SADP_ERROR_BASE+36)  // 邮箱不存在
+#define SADP_MAILBOX_NOT_SET            (SADP_ERROR_BASE+38)  // [add] <2019/01/08> by yangzheng 邮箱重置密码未设置邮箱
+#define SADP_INVALID_RESET_CODE         (SADP_ERROR_BASE+39)    // 重置密码  重置口令错误
+
+
+//SADP设备过滤规则类型
+//按位表示,为1表示过滤,0表示不过滤;
+//bit 1:是否过滤萤石;bit 2:是否过滤OEM;
+#define SADP_DISPLAY_ALL           0            //显示所有设备
+#define SADP_FILTER_EZVIZ          0x01         //过滤萤石设备
+#define SADP_FILTER_OEM            0x02         //过滤OEM设备
+#define SADP_FILTER_EZVIZ_OEM      0x03         //同时过滤萤石和OEM设备
+#define SADP_ONLY_DISPLAY_OEM      0xfffffffd   //仅显示OEM设备,对应结构体SADP_DISPLAY_OEM_CFG
+#define SADP_ONLY_DISPLAY_EZVIZ    0xfffffffe   //仅显示萤石设备
+// 结构体
+
+typedef struct tagSADP_DEVICE_INFO
+{
+    char            szSeries[12];          //设备系列(保留)
+    char            szSerialNO[48];        //设备序列号
+    char            szMAC[20];             //设备物理地址
+    char            szIPv4Address[16];     //设备IPv4地址
+    char            szIPv4SubnetMask[16];  //设备IPv4子网掩码
+    unsigned int    dwDeviceType;          //设备类型,具体数值代表的设备型号
+    unsigned int    dwPort;                //设备网络SDK服务端口号(默认8000)
+    unsigned int    dwNumberOfEncoders;    //设备编码器个数,即设备编码通道个数。对于解码器,其值设为0
+    unsigned int    dwNumberOfHardDisk;    //设备硬盘数目
+    char            szDeviceSoftwareVersion[48];  //设备软件版本号
+    char            szDSPVersion[48];      //设备DSP版本号
+    char            szBootTime[48];        //开机时间
+    int             iResult;               
+                    //信息类型: 1.设备上线  2.设备更新  3.设备下线  4.设备重启  5.设备更新失败
+                    //SADP_ADD        1   新设备上线,之前在SADP库列表中未出现的设备
+                    //SADP_UPDATE     2   在线的设备的网络参数或者某些状态改变
+                    //SADP_DEC        3   设备下线,设备自动发送下线消息或120秒内检测不到设备
+                    //SADP_RESTART    4   之前SADP库列表中出现过之后下线的设备再次上线
+                    //SADP_UPDATEFAIL 5   设备更新失败
+    char            szDevDesc[24];         //设备类型描述 与dwDeviceType对应
+    char            szOEMinfo[24];         //OEM产商信息
+    char            szIPv4Gateway[16];     //IPv4网关
+    char            szIPv6Address[46];     //IPv6地址
+    char            szIPv6Gateway[46];     //IPv6网关
+    unsigned char   byIPv6MaskLen;         //IPv6子网前缀长度
+    unsigned char   bySupport;           
+                    //按位表示,对应为为1表示支持
+                    //0x01:是否支持Ipv6
+                    //0x02:是否支持修改Ipv6参数
+                    //0x04:是否支持Dhcp	
+                    //0x08:是否支持udp多播 
+                    //0x10:是否含加密节点
+                    //0x20:是否支持恢复密码
+                    //0x40:是否支持重置密码
+                    //0x80:是否支持同步IPC密码
+    unsigned char   byDhcpEnabled;         //Dhcp状态, 0 不启用 1 启用
+    unsigned char   byDeviceAbility;       //设备能力
+                                           //0:设备不支持“‘设备类型描述’ 'OEM厂商' 'IPv4网关' ‘IPv6地址’ 'IPv6网关' ‘IPv6子网前缀’‘DHCP’”  
+                                           //1:支持上诉功能
+    unsigned short  wHttpPort;             //Http 端口
+    unsigned short  wDigitalChannelNum;    //数字通道数
+    char            szCmsIPv4[16];         //CMS注册服务器IPv4地址
+    unsigned short  wCmsPort;              //CMS注册服务器监听端口
+    unsigned char   byOEMCode;             //0-基线设备 1-OEM设备
+    unsigned char   byActivated;           //设备是否激活;0-激活,1-未激活(老的设备都是已激活状态)
+    char            szBaseDesc[24];        //基线短型号,不随定制而修改的型号,用于萤石平台进行型号对比
+    unsigned char   bySupport1; 
+                    //按位表示,  1表示支持,0表示不支持
+                    //0x01:是否支持重置密码方式2 
+                    //0x02;是否支持设备锁定功能
+                    //0x04:是否支持导入GUID重置密码
+                    //0x08:是否支持安全问题重置密码
+                    //0x10:是否支持OEM更换Logo
+                    //0x20:是否支持绑定操作
+                    //0x40:是否支持恢复未激活
+                    //0x80:是否支持wifi信号增强模式
+    unsigned char   byHCPlatform;          //是否支持HCPlatform 0-保留, 1-支持, 2-不支持   
+    unsigned char   byEnableHCPlatform;    //是否启用HCPlatform  0-保留, 1-启用, 2-不启用
+    unsigned char   byEZVIZCode;           //0-基线设备, 1-萤石设备
+    unsigned int    dwDetailOEMCode;       //详细OEMCode信息:oemcode由客户序号(可变位,从1开始,1~429496)+菜单风格(2位)+区域号(2位)三部分构成。	
+                                           //规则说明:oemcode最大值为4294967295,最多是十位数。
+                                           //0: 老设备
+                                           //1: 新基线设备
+                                           //10101: 有具体OEM code的为OEM设备
+    unsigned char   byModifyVerificationCode; //是否修改验证码 0-保留, 1-修改验证码, 2-不修改验证码
+    unsigned char   byMaxBindNum;          //支持绑定的最大个数(目前只有NVR支持该字段)
+    unsigned short  wOEMCommandPort;       //OEM命令端口
+    unsigned char   bySupportWifiRegion;
+                    //设备支持的wifi区域列表,按位表示,1表示支持,0表示不支持
+                    //0x01:是否支持default(默认功率和北美一致)
+                    //0x02:是否支持china
+                    //0x04:是否支持nothAmerica
+                    //0x08:是否支持japan
+                    //0x10:是否支持europe
+                    //0x20:是否支持world
+    unsigned char   byEnableWifiEnhancement;//是否启用wifi增强模式,0-不启用,1-启用
+    unsigned char   byWifiRegion;           //设备当前区域,0-default,1-china,2-nothAmerica,3-japan,4-europe,5-world
+    unsigned char   bySupport2; 
+                    //按位表示,  1表示支持,0表示不支持
+                    //0x01:是否支持通道默认密码配置(该密码用于nvr添加IPC, 默认使用的是nvr admin密码,会单独保存在本地)
+                    //0x02:是否支持邮箱重置密码
+                    //0x04:是否支持未激活配置SSID和Password
+}SADP_DEVICE_INFO, *LPSADP_DEVICE_INFO;
+
+typedef struct tagSADP_DEVICE_INFO_V40
+{
+    SADP_DEVICE_INFO struSadpDeviceInfo;
+    unsigned char   byLicensed;          //设备是否授权:0-保留,1-设备未授权,2-设备已授权
+    unsigned char   bySystemMode;        //系统模式 0-保留,1-单控,2-双控,3-单机集群,4-双控集群
+    unsigned char   byControllerType;    //控制器类型 0-保留,1-A控,2-B控
+    char            szEhmoeVersion[16];  //Ehmoe版本号
+    unsigned char   bySpecificDeviceType;//设备类型,1-中性设备  2-海康设备
+    unsigned int    dwSDKOverTLSPort;    //私有协议中 SDK Over TLS 命令端口
+    unsigned char   bySecurityMode;      //设备安全模式:0-standard,1-high-A,2-high-B,3-custom
+    unsigned char   bySDKServerStatus;   //设备SDK服务状态, 0-开启,1-关闭
+    unsigned char   bySDKOverTLSServerStatus;         //设备SDKOverTLS服务状态, 0-关闭,1-开启
+    char            szUserName[MAX_USERNAME_LEN + 1]; //管理员用户的用户名(设备安全模式在非标准模式下是允许用户设置管理员用户的用户名,标准模式默认为admin)
+    char            szWifiMAC[20];       //设备所连wifi的Mac地址
+    unsigned char   byDataFromMulticast; //0-链路 1-多播
+    unsigned char   bySupportEzvizUnbind; //是否支持萤石解绑 0-不支持 1-支持
+    unsigned char   bySupportCodeEncrypt; //是否支持重置口令AES128_ECB解密  0-不支持 1-支持
+    unsigned char   bySupportPasswordResetType; //是否支持获取密码重置方式参数  0-不支持 1-支持
+    unsigned char   byEZVIZBindStatus; //设备萤石云绑定状态,0-未知,1-已绑定,2-未绑定
+    char            szPhysicalAccessVerification[16]; //设备支持的物理接触式添加方式,1#AP配网传递,2#用户令牌(用户token)绑定,3#物理按键接触,4#扫码绑定(设备token)
+    unsigned char   byRes[411];
+}SADP_DEVICE_INFO_V40, *LPSADP_DEVICE_INFO_V40;
+
+//待修改的设备网络参数
+typedef struct tagSADP_DEV_NET_PARAM
+{
+    char            szIPv4Address[16];      // IPv4地址
+    char            szIPv4SubNetMask[16];   // IPv4子网掩码
+    char            szIPv4Gateway[16];      // IPv4网关
+    char            szIPv6Address[128];     // IPv6地址
+    char            szIPv6Gateway[128];     // IPv6网关
+    unsigned short  wPort;                  // 设备网络SDK服务端口号(默认8000)
+    unsigned char   byIPv6MaskLen;          // IPv6掩码长度
+    unsigned char   byDhcpEnable;           // DHCP使能
+    unsigned short  wHttpPort;              // HTTP端口
+    unsigned int    dwSDKOverTLSPort;       // 私有协议中 SDK Over TLS 命令端口
+    unsigned char   byRes[122];
+}SADP_DEV_NET_PARAM, *LPSADP_DEV_NET_PARAM;
+
+
+//设备返回网络参数信息
+typedef struct tagSADP_DEV_RET_NET_PARAM
+{
+    unsigned char   byRetryModifyTime;  //剩余可尝试修改网络参数次数
+    unsigned char   bySurplusLockTime;  //剩余时间,单位:分钟,用户锁定时此参数有效
+    unsigned char   byRes[126];
+}SADP_DEV_RET_NET_PARAM, *LPSADP_DEV_RET_NET_PARAM;
+
+// CMS参数
+typedef struct tagSADP_CMS_PARAM
+{
+    char            szPUID[32];         // 预分配的PUID
+    char            szPassword[16];     // 设置的登录密码
+    char            szCmsIPv4[16];      // CMS服务器IPv4地址
+    char            szCmsIPv6[128];     // CMS服务器IPv6地址
+    unsigned short  wCmsPort;           // CMS服务器监听端口
+    unsigned char   byRes[30];
+}SADP_CMS_PARAM, *LPSADP_CMS_PARAM;
+
+//设备安全码,对应配置命令SADP_GET_DEVICE_CODE,接口SADP_GetDeviceConfig
+typedef struct tagSADP_SAFE_CODE
+{
+    unsigned int    dwCodeSize;
+    char            szDeviceCode[MAX_DEVICE_CODE];
+    unsigned char   byRes[128];
+}SADP_SAFE_CODE, *LPSADP_SAFE_CODE;
+
+//设备二维码
+typedef struct tagSADP_QR_CODES
+{
+    unsigned int    dwCodeSize;
+    unsigned int    dwMailBoxSize;
+    unsigned int    dwServiceMailBoxSize;
+    char            szQrCodes[MAX_QR_CODES];
+    char            szMailBoxAddr[MAX_MAILBOX_LEN];         //要设置的邮箱地址
+    char            szServiceMailBoxAddr[MAX_MAILBOX_LEN];  //服务的邮箱地址
+    unsigned char   byRes[128];
+}SADP_QR_CODES, *LPSADP_QR_CODES;
+
+//加密串结构体,对应配置命令SADP_GET_ENCRYPT_STRING,接口SADP_GetDeviceConfig
+typedef struct tagSADP_ENCRYPT_STRING
+{
+    unsigned int    dwEncryptStringSize;               //加密串长度
+    char            szEncryptString[MAX_ENCRYPT_CODE]; //加密串内容
+    unsigned char   byRes[128];
+}SADP_ENCRYPT_STRING, *LPSADP_ENCRYPT_STRING;
+//恢复/重置密码结构体
+typedef struct tagSADP_RESET_PARAM
+{
+    char            szCode[MAX_ENCRYPT_CODE];     //日期转换过的特殊字符串或加密工具加密后的字符串 - 为兼容老接口
+    char            szAuthFile[MAX_FILE_PATH_LEN];//重置授权文件
+    char            szPassword[MAX_PASS_LEN];     //用户密码
+    unsigned char   byEnableSyncIPCPW;            //是否启用同步IPC密码。0 - 不启用, 1- 启用
+    unsigned char   byRes[511];
+}SADP_RESET_PARAM, *LSADP_RESET_PARAM;
+
+//显示OEM配置结构体
+typedef struct tagSADP_DISPLAY_OEM_CFG
+{
+    unsigned int    dwDisplayOEM;   //0-显示所有OEM,其它值为要显示的某一种类型的OEMCode,具体详见dwDetailOEMCode	
+    unsigned char   byRes[32];      //保留
+}SADP_DISPLAY_OEM_CFG, *LPSADP_DISPLAY_OEM_CFG;
+
+typedef struct tagSADP_TYPE_UNLOCK_CODE
+{
+    unsigned int   dwCodeSize;
+    char           szDeviceTypeUnlockCode[MAX_UNLOCK_CODE_RANDOM_LEN/*256*/];//设备型号解禁码
+    unsigned char  byRes[128];
+}SADP_TYPE_UNLOCK_CODE, *LPSADP_TYPE_UNLOCK_CODE;
+
+typedef struct tagSADP_CUSTOM_DEVICE_TYPE
+{
+    unsigned int   dwCodeSize;
+    char           szDeviceTypeSecretKey[MAX_UNLOCK_CODE_KEY/*256*/];//类型解禁秘钥
+    unsigned char  byRes[128];
+}SADP_CUSTOM_DEVICE_TYPE, *LPSADP_CUSTOM_DEVICE_TYPE;
+
+//获取GUID参数结构体
+typedef struct tagSADP_GUID_FILE_COND
+{
+    char           szPassword[MAX_PASS_LEN];  //用户密码
+    unsigned char  byRes[128];
+}SADP_GUID_FILE_COND, *LPSADP_GUID_FILE_COND;
+
+//GUID结构体
+typedef struct tagSADP_GUID_FILE
+{
+    unsigned int    dwGUIDSize;
+    char            szGUID[MAX_GUID_LEN];
+    unsigned char   byRetryGUIDTime;    //剩余可导入/导出GUID次数
+    unsigned char   bySurplusLockTime;  //剩余时间,单位:分钟,用户锁定时此参数有效
+    unsigned char   byRes[254];
+}SADP_GUID_FILE, *LPSADP_GUID_FILE;
+
+typedef struct tagSADP_SINGLE_SECURITY_QUESTION_CFG
+{
+    unsigned int    dwSize;
+    unsigned int    dwId;//序号
+    char            szAnswer[MAX_ANSWER_LEN/*256*/];//答案,只在设置时有效,获取时无效
+    unsigned char   byMark;//标记该序号的问题是否被设置  0-未设置 1-已设置
+    unsigned char   byRes[127];
+}SADP_SINGLE_SECURITY_QUESTION_CFG, *LPSADP_SINGLE_SECURITY_QUESTION_CFG;
+
+typedef struct tagSADP_SECURITY_QUESTION_CFG
+{
+    unsigned int   dwSize;
+    SADP_SINGLE_SECURITY_QUESTION_CFG  struSecurityQuestion[MAX_QUESTION_LIST_LEN/*32*/];//安全问题列表
+    char           szPassword[MAX_PASS_LEN];  //用户密码
+    unsigned char  byRes[512];
+}SADP_SECURITY_QUESTION_CFG, *LPSADP_SECURITY_QUESTION_CFG;
+
+typedef struct tagSADP_SECURITY_QUESTION
+{
+    unsigned char   byRetryAnswerTime;  //剩余可设置安全问题次数
+    unsigned char   bySurplusLockTime;  //剩余时间,单位:分钟,用户锁定时此参数有效
+    unsigned char   byRes[254];
+}SADP_SECURITY_QUESTION, *LPSADP_SECURITY_QUESTION;
+
+typedef struct tagSADP_RESET_PARAM_V40
+{
+    unsigned int    dwSize;
+    unsigned char   byResetType;              //密码重置类型 0-保留,1- 通过设备序列号恢复默认密码,2-导入/导出文件重置密码,3-二维码重置, 4-GUID重置,5-安全问题重置 6-邮箱重置密码
+    unsigned char   byEnableSyncIPCPW;        //是否同时将密码启用为NVR同步IPC密码。0 - 不启用, 1- 启用
+    unsigned char   byRes2[2];                //保留
+    char            szPassword[MAX_PASS_LEN]; //用户密码
+    char            szCode[MAX_ENCRYPT_CODE]; //日期转换过的特殊字符串或加密工具加密后的字符串 - byResetType 为1、3时有效
+    char            szAuthFile[MAX_FILE_PATH_LEN];//重置授权文件, byResetType 为2时有效
+    char            szGUID[MAX_GUID_LEN];     //GUID, byResetType 为4时有效
+    SADP_SECURITY_QUESTION_CFG struSecurityQuestionCfg;//安全问题结构体, byResetType 为5时有效
+    unsigned char   byRes[512];
+}SADP_RESET_PARAM_V40, *LPSADP_RESET_PARAM_V40;
+
+typedef struct tagSADP_RET_RESET_PARAM_V40
+{
+    unsigned char   byRetryGUIDTime;    //剩余可设置次数
+    unsigned char   bySurplusLockTime;  //剩余时间,单位:分钟,用户锁定时此参数有效
+    unsigned char   bRetryTimeValid; //byRetryGUIDTime字段是否有效  0-无效,1-有效
+    unsigned char   bLockTimeValid; //bySurplusLockTime字段是否有效  0-无效,1-有效
+    unsigned char   byRes[252];
+}SADP_RET_RESET_PARAM_V40, *LPSADP_RET_RESET_PARAM_V40;
+
+//HCPlatform状态
+typedef struct tagSADP_HCPLATFORM_STATUS_INFO
+{
+    unsigned int    dwSize;
+    unsigned char   byEnableHCPlatform;        //是否启用HCPlatform。0 - 保留, 1- 启用, 2-不启用
+    unsigned char   byRes[3];                  //保留
+    char            szPassword[MAX_PASS_LEN];  //用户密码
+    unsigned char   byRes2[128];
+}SADP_HCPLATFORM_STATUS_INFO, *LPSADP_HCPLATFORM_STATUS_INFO;
+
+typedef struct tagSADP_USER_MAILBOX
+{
+    unsigned int    dwSize;
+    char            szPassword[MAX_PASS_LEN];        //设备admin用户密码
+    char            szMailBoxAddr[MAX_MAILBOX_LEN];  //预留邮箱地址,用于接收密码服务器返回的安全码
+    unsigned char   byRes[128];
+}SADP_USER_MAILBOX, *LPSADP_USER_MAILBOX;
+//设备验证码
+typedef struct tagSADP_VERIFICATION_CODE_INFO
+{
+    unsigned int    dwSize;
+    char            szVerificationCode[SADP_MAX_VERIFICATION_CODE_LEN];  //验证码(验证码用于萤石接入、预览、控制的唯一密码)
+    char            szPassword[MAX_PASS_LEN];  //用户密码
+    unsigned char   byRes[128];
+}SADP_VERIFICATION_CODE_INFO, *LPSADP_VERIFICATION_CODE_INFO;
+
+//设备锁定信息
+typedef struct tagSADP_DEV_LOCK_INFO
+{
+    unsigned char   byRetryTime;       //剩余可尝试次数
+    unsigned char   bySurplusLockTime; //剩余时间,单位:分钟,用户锁定时此参数有效
+    unsigned char   byRes[126];
+}SADP_DEV_LOCK_INFO, *LPSADP_DEV_LOCK_INFO;
+
+//被绑定设备信息结构体
+typedef struct tagSADP_BIND_INFO
+{
+    char            szSerialNO[SADP_MAX_SERIALNO_LEN]; //被绑定设备的序列号
+    unsigned char   byiBind; //设备是否绑定 0-未绑定;1-已绑定
+    unsigned char   byRes[127];
+}SADP_BIND_INFO, *LPSADP_BIND_INFO;
+
+typedef struct tagSADP_BIND_LIST
+{
+    SADP_BIND_INFO   struBindInfo[SADP_MAX_BIND_NUM]; //绑定设备信息列表
+    char             szPassword[MAX_PASS_LEN]; //用户密码
+    unsigned char    byUnbindAll; //是否解绑所有设备 0-不解绑所有设备;1-解绑所有设备
+    unsigned char    byRes[127];
+}SADP_BIND_LIST, *LPSADP_BIND_LIST;
+
+typedef struct tagSADP_INACTIVE_INFO
+{
+    char             szPassword[MAX_PASS_LEN];  //用户密码
+    unsigned char    byRes[128];
+}SADP_INACTIVE_INFO, *LPSADP_INACTIVE_INFO;
+
+//wifi Region
+typedef struct tagSADP_WIFI_REGION_INFO
+{
+    unsigned char   byMode;                  //模式,0-保留,1-wifi区域配置模式,2-wifi增强模式
+    unsigned char   byWifiRegion;            //wifi区域,当byMode为1时,该字段有效。0 -default, 1- china, 2-nothAmerica,3-japan,4-europe,5-world
+    unsigned char   byWifiEnhancementEnabled;//是否启用wifi增强模式,当byMode为2时,该字段有效 0 -不启用, 1- 启用
+    unsigned char   byRes;                   //保留
+    char            szPassword[MAX_PASS_LEN];//用户密码
+    unsigned char   byRes2[128];
+}SADP_WIFI_REGION_INFO, *LPSADP_WIFI_REGION_INFO;
+
+//通道默认密码信息
+typedef struct tagSADP_CHANNEL_DEFAULT_PASSWORD
+{
+    char             szPassword[MAX_PASS_LEN]; //设备admin用户密码
+    char             szChannelDefaultPassword[MAX_PASS_LEN]; //通道默认密码(用户NVR激活,添加IPC)
+    unsigned char    byRes[128];
+}SADP_CHANNEL_DEFAULT_PASSWORD, *LPSADP_CHANNEL_DEFAULT_PASSWORD;
+
+
+//设备自检状态结构体
+typedef struct tagSADP_SELF_CHECK_STATE
+{
+    unsigned int    dwSize;
+    int             dwTotalDisk;               //磁盘总数(默认值为-1)
+    int             dwGoodDisk;                //好盘数(默认值为-1)
+    char            szCPU[MAX_CPU_LEN];        //CPU
+    char            szMemory[MAX_MEMORY_LEN];  //内存
+    unsigned char   byProgress;                //自检进度,0-100
+    unsigned char   byTemperatureState;        //温度状态,0-无效;1-正常;2-异常
+    unsigned char   byFanState;                //风扇状态,0-无效;1-正常;2-异常
+    unsigned char   byPowerState;              //电源状态,0-无效;1-正常;2-异常
+    unsigned char   bySASConnectState;         //SAS连接状态,0-无效;1-连接;2-未连接
+    char            byTotalNetworkPort;        //网口总数(默认值为-1)
+    char            byConnectNetworkPort;      //网口连接数(默认值为-1)
+    unsigned char   byRes[129];
+}SADP_SELF_CHECK_STATE, *LPSADP_SELF_CHECK_STATE;
+
+//EHome使能参数
+typedef struct tagSADP_EHOME_ENABLE_PARAM
+{
+    unsigned int    dwSize;
+    char            szDevID[MAX_PASS_LEN];     //设备ID
+    char            szEhomeKey[MAX_PASS_LEN];  //Ehome Key
+    char            szPassword[MAX_PASS_LEN];  //设备密码
+    unsigned char   byRes[64];
+}SADP_EHOME_ENABLE_PARAM, *LPSADP_EHOME_ENABLE_PARAM;
+
+//WIFI参数配置结构体
+typedef struct tagSADP_WIFI_CONFIG_PARAM
+{
+    unsigned int    dwSize;
+    char            szSSID[SADP_MAX_SERIALNO_LEN];      //SSID
+    char            szPassword[SADP_MAX_SERIALNO_LEN];  //Password
+    unsigned char   byWifiMode;  //wifi模式,0-默认,1-Station, 2-AP
+    unsigned char   byRes[64];
+}SADP_WIFI_CONFIG_PARAM, *LPSADP_WIFI_CONFIG_PARAM;
+
+//已配置重置密码类型参数配置结构体
+typedef struct tagSADP_PASSWORD_RESET_TYPE_PARAM
+{
+    unsigned int    dwSize;
+    unsigned char   byEnable;  //0-未配置  1-(GUID,安全问题,安全邮箱,HC)配置过一种或多种 
+    unsigned char   byGuidEnabled;  //0-未导出过GUID  1-导出过GUID
+    unsigned char   bySecurityQuestionEnabled;  //0-未配置过安全问题  1-配置过安全问题
+    unsigned char   bySecurityMailBoxEnabled;  //0-未配置过安全邮箱  1-配置过安全邮箱
+    unsigned char   byHikConnectEnabled;  //0-未绑定HikConnect账号  1-绑定过HikConnect账号
+    unsigned char   byRes1[3];
+    unsigned char   byRes[64];
+}SADP_PASSWORD_RESET_TYPE_PARAM, *LPSADP_PASSWORD_RESET_TYPE_PARAM;
+
+
+// 接口
+typedef void (CALLBACK *PDEVICE_FIND_CALLBACK)(const SADP_DEVICE_INFO *lpDeviceInfo, void *pUserData);
+CSADP_API BOOL CALLBACK SADP_Start_V30(PDEVICE_FIND_CALLBACK pDeviceFindCallBack, int bInstallNPF = 0, void* pUserData = NULL);
+typedef void (CALLBACK *PDEVICE_FIND_CALLBACK_V40)(const SADP_DEVICE_INFO_V40 *lpDeviceInfo, void *pUserData);
+CSADP_API BOOL CALLBACK SADP_Start_V40(PDEVICE_FIND_CALLBACK_V40 pDeviceFindCallBack, int bInstallNPF = 0, void* pUserData = NULL);
+CSADP_API BOOL CALLBACK SADP_SendInquiry(void);
+CSADP_API BOOL CALLBACK SADP_Stop(void);
+CSADP_API BOOL CALLBACK SADP_ModifyDeviceNetParam(const char* sMAC, const char* sPassword, const SADP_DEV_NET_PARAM *lpNetParam);
+CSADP_API unsigned int CALLBACK SADP_GetSadpVersion(void);
+CSADP_API BOOL CALLBACK SADP_SetLogToFile(int nLogLevel=0, char const *strLogDir = NULL, int bAutoDel = 1);		
+CSADP_API unsigned int CALLBACK SADP_GetLastError(void);
+CSADP_API BOOL CALLBACK SADP_ResetDefaultPasswd(const char* sDevSerialNO, const char* sCommand);
+CSADP_API BOOL CALLBACK SADP_SetCMSInfo(const char* sMac, const SADP_CMS_PARAM *lpCmsParam);
+CSADP_API BOOL CALLBACK SADP_Clearup(void);
+CSADP_API void CALLBACK SADP_SetAutoRequestInterval(unsigned int dwInterval); //设置自动搜索时间间隔(单位秒,为0则不自动请求,默认60s)
+
+CSADP_API BOOL CALLBACK SADP_GetDeviceConfig(const char* sDevSerialNO, unsigned int dwCommand, void* lpInBuffer, unsigned int  dwinBuffSize, void *lpOutBuffer, unsigned int  dwOutBuffSize);
+CSADP_API BOOL CALLBACK SADP_SetDeviceConfig(const char* sDevSerialNO, unsigned int dwCommand, void* lpInBuffer, unsigned int  dwInBuffSize, void* lpOutBuffer, unsigned int  dwOutBuffSize);
+CSADP_API BOOL CALLBACK SADP_GetDeviceConfigByMAC(const char* sDevMAC, unsigned int dwCommand, void* lpInBuffer, unsigned int  dwinBuffSize, void *lpOutBuffer, unsigned int  dwOutBuffSize);
+//激活设备
+CSADP_API BOOL CALLBACK SADP_ActivateDevice(const char* sDevSerialNO, const char* sCommand);
+
+//重置密码接口,兼容之前的恢复默认密码接口
+CSADP_API BOOL CALLBACK SADP_ResetPasswd(const char* sDevSerialNO, const SADP_RESET_PARAM *pResetParam);
+//重置密码接口V40,兼容之前的SADP_ResetPasswd
+CSADP_API BOOL CALLBACK SADP_ResetPasswd_V40(const char* sDevSerialNO, const SADP_RESET_PARAM_V40 *pResetParam, SADP_RET_RESET_PARAM_V40 *pRetResetParam);
+
+
+//设置设备过滤规则
+//dwFilterRule,按位表示,为1表示过滤,全0表示不过滤;0x01:过滤萤石设备;0x02:过滤OEM设备;0x03:过滤萤和OEM设备;0xfffffffe:仅显示萤石设备;0xfffffffd:仅显示OEM设备
+CSADP_API BOOL CALLBACK SADP_SetDeviceFilterRule( unsigned int dwFilterRule, const void *lpInBuff, unsigned int dwInBuffLen);
+//修改网络参数V40
+CSADP_API BOOL CALLBACK SADP_ModifyDeviceNetParam_V40(const char* sMAC, const char* sPassword, const SADP_DEV_NET_PARAM *lpNetParam, SADP_DEV_RET_NET_PARAM *lpRetNetParam, unsigned int  dwOutBuffSize);
+//点灯
+CSADP_API BOOL CALLBACK SADP_SendLamp(const char* sMAC, unsigned int dwCommand);
+#endif
+
+
+
+
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Info.plist b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Info.plist
new file mode 100644
index 0000000..7d15dcc
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Info.plist
Binary files differ
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Modules/module.modulemap b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Modules/module.modulemap
new file mode 100644
index 0000000..b77c28a
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/EZOpenSDKFramework.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module EZOpenSDKFramework {
+  umbrella header "EZOpenSDKFramework.h"
+
+  export *
+  module * { export * }
+}
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/libEZSDK.a b/EZSDK.IOS/EZSDK.IOS/Library/libEZSDK.a
index f7daae4..824db6d 100644
--- a/EZSDK.IOS/EZSDK.IOS/Library/libEZSDK.a
+++ b/EZSDK.IOS/EZSDK.IOS/Library/libEZSDK.a
Binary files differ
diff --git a/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_nav_back@2x.png b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_nav_back@2x.png
new file mode 100644
index 0000000..360b01c
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_nav_back@2x.png
Binary files differ
diff --git a/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_nav_back@3x.png b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_nav_back@3x.png
new file mode 100644
index 0000000..b9a32a4
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_nav_back@3x.png
Binary files differ
diff --git a/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_unlock@2x.png b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_unlock@2x.png
new file mode 100644
index 0000000..0dee5f5
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_unlock@2x.png
Binary files differ
diff --git a/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_unlock@3x.png b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_unlock@3x.png
new file mode 100644
index 0000000..f1525fc
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_unlock@3x.png
Binary files differ
diff --git a/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_unlock_disable@2x.png b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_unlock_disable@2x.png
new file mode 100644
index 0000000..f8fd633
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_unlock_disable@2x.png
Binary files differ
diff --git a/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_unlock_disable@3x.png b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_unlock_disable@3x.png
new file mode 100644
index 0000000..2927b9a
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_ic_unlock_disable@3x.png
Binary files differ
diff --git a/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_list_next@2x.png b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_list_next@2x.png
new file mode 100644
index 0000000..b2b29ec
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_list_next@2x.png
Binary files differ
diff --git a/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_list_next@3x.png b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_list_next@3x.png
new file mode 100644
index 0000000..fac62dd
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_list_next@3x.png
Binary files differ
diff --git a/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_temp_add@2x.png b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_temp_add@2x.png
new file mode 100644
index 0000000..db56906
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_temp_add@2x.png
Binary files differ
diff --git a/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_temp_add@3x.png b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_temp_add@3x.png
new file mode 100644
index 0000000..94c2b96
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_temp_add@3x.png
Binary files differ
diff --git a/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_temp_pass_word@2x.png b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_temp_pass_word@2x.png
new file mode 100644
index 0000000..f679fe7
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_temp_pass_word@2x.png
Binary files differ
diff --git a/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_temp_pass_word@3x.png b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_temp_pass_word@3x.png
new file mode 100644
index 0000000..57093d5
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_temp_pass_word@3x.png
Binary files differ
diff --git a/EZSDK/EZSDK.xcodeproj/project.pbxproj b/EZSDK/EZSDK.xcodeproj/project.pbxproj
index b8b15a7..41e05c3 100644
--- a/EZSDK/EZSDK.xcodeproj/project.pbxproj
+++ b/EZSDK/EZSDK.xcodeproj/project.pbxproj
@@ -3,10 +3,11 @@
 	archiveVersion = 1;
 	classes = {
 	};
-	objectVersion = 50;
+	objectVersion = 52;
 	objects = {
 
 /* Begin PBXBuildFile section */
+		AE31FE1F29CC2D2200678568 /* EZOpenSDKFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AE31FE1E29CC2D2200678568 /* EZOpenSDKFramework.framework */; platformFilter = ios; };
 		AE5068D829B9DB5E009EA09A /* HDLEZTemInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = AE5068D729B9DB5E009EA09A /* HDLEZTemInfoModel.m */; };
 		AEC306D229B9F2B5000B3861 /* HDLEZVisitorRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = AEC306D129B9F2B5000B3861 /* HDLEZVisitorRecordView.m */; };
 		AEC306D529B9F2DB000B3861 /* HDLEZVisitorRecordCell.m in Sources */ = {isa = PBXBuildFile; fileRef = AEC306D429B9F2DB000B3861 /* HDLEZVisitorRecordCell.m */; };
@@ -22,7 +23,6 @@
 		AEDD438929BEF0CD001D9477 /* HDLEZNormalCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = AEDD438829BEF0CD001D9477 /* HDLEZNormalCellView.m */; };
 		AEDD438C29BF2C50001D9477 /* HDLEZInputViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AEDD438B29BF2C50001D9477 /* HDLEZInputViewController.m */; };
 		AEDD438F29BF2C78001D9477 /* HDLEZInputView.m in Sources */ = {isa = PBXBuildFile; fileRef = AEDD438E29BF2C78001D9477 /* HDLEZInputView.m */; };
-		AEDD944129B0329D00EAA2CA /* libEZOpenSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AEDD940729B0329D00EAA2CA /* libEZOpenSDK.a */; };
 		AEE4704529C03DA300480163 /* FQDateTimeSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AEE4704429C03DA300480163 /* FQDateTimeSDK.framework */; };
 		AEE4704C29C061AC00480163 /* HDLEZTempDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AEE4704B29C061AC00480163 /* HDLEZTempDetailViewController.m */; };
 		AEE4704F29C061DF00480163 /* HDLEZTempDetailView.m in Sources */ = {isa = PBXBuildFile; fileRef = AEE4704E29C061DF00480163 /* HDLEZTempDetailView.m */; };
@@ -184,6 +184,7 @@
 /* End PBXCopyFilesBuildPhase section */
 
 /* Begin PBXFileReference section */
+		AE31FE1E29CC2D2200678568 /* EZOpenSDKFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = EZOpenSDKFramework.framework; sourceTree = "<group>"; };
 		AE5068D629B9DB5E009EA09A /* HDLEZTemInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HDLEZTemInfoModel.h; sourceTree = "<group>"; };
 		AE5068D729B9DB5E009EA09A /* HDLEZTemInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HDLEZTemInfoModel.m; sourceTree = "<group>"; };
 		AEC306D029B9F2B5000B3861 /* HDLEZVisitorRecordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLEZVisitorRecordView.h; sourceTree = "<group>"; };
@@ -214,61 +215,6 @@
 		AEDD438B29BF2C50001D9477 /* HDLEZInputViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HDLEZInputViewController.m; sourceTree = "<group>"; };
 		AEDD438D29BF2C78001D9477 /* HDLEZInputView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HDLEZInputView.h; sourceTree = "<group>"; };
 		AEDD438E29BF2C78001D9477 /* HDLEZInputView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HDLEZInputView.m; sourceTree = "<group>"; };
-		AEDD940729B0329D00EAA2CA /* libEZOpenSDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libEZOpenSDK.a; sourceTree = "<group>"; };
-		AEDD940929B0329D00EAA2CA /* EZConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZConstants.h; sourceTree = "<group>"; };
-		AEDD940A29B0329D00EAA2CA /* EZHCNetDeviceSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZHCNetDeviceSDK.h; sourceTree = "<group>"; };
-		AEDD940B29B0329D00EAA2CA /* EZStreamPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZStreamPlayer.h; sourceTree = "<group>"; };
-		AEDD940C29B0329D00EAA2CA /* EZOpenSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZOpenSDK.h; sourceTree = "<group>"; };
-		AEDD940D29B0329D00EAA2CA /* EZConstants_Auth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZConstants_Auth.h; sourceTree = "<group>"; };
-		AEDD940E29B0329D00EAA2CA /* EZPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZPlayer.h; sourceTree = "<group>"; };
-		AEDD940F29B0329D00EAA2CA /* EZGlobalSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZGlobalSDK.h; sourceTree = "<group>"; };
-		AEDD941129B0329D00EAA2CA /* EZDeviceVersion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDeviceVersion.h; sourceTree = "<group>"; };
-		AEDD941229B0329D00EAA2CA /* EZUserInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZUserInfo.h; sourceTree = "<group>"; };
-		AEDD941329B0329D00EAA2CA /* EZDeviceUpgradeStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDeviceUpgradeStatus.h; sourceTree = "<group>"; };
-		AEDD941429B0329D00EAA2CA /* EZAccessToken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZAccessToken.h; sourceTree = "<group>"; };
-		AEDD941529B0329D00EAA2CA /* EZPlayerExParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZPlayerExParamInfo.h; sourceTree = "<group>"; };
-		AEDD941729B0329D00EAA2CA /* EZRTCCameraParam.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZRTCCameraParam.h; sourceTree = "<group>"; };
-		AEDD941829B0329D00EAA2CA /* EZRTCMediaSessionDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZRTCMediaSessionDefines.h; sourceTree = "<group>"; };
-		AEDD941929B0329D00EAA2CA /* EZVideoTalkSDKDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoTalkSDKDefines.h; sourceTree = "<group>"; };
-		AEDD941A29B0329D00EAA2CA /* EZVideoTalkView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoTalkView.h; sourceTree = "<group>"; };
-		AEDD941B29B0329D00EAA2CA /* EZConferenceClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZConferenceClient.h; sourceTree = "<group>"; };
-		AEDD941C29B0329D00EAA2CA /* EZVideoTalkGlobal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoTalkGlobal.h; sourceTree = "<group>"; };
-		AEDD941D29B0329D00EAA2CA /* EZVideoTalk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoTalk.h; sourceTree = "<group>"; };
-		AEDD941E29B0329D00EAA2CA /* EZVideoTalkSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoTalkSDK.h; sourceTree = "<group>"; };
-		AEDD941F29B0329D00EAA2CA /* EZRTCSampleHandleManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZRTCSampleHandleManager.h; sourceTree = "<group>"; };
-		AEDD942029B0329D00EAA2CA /* EZBAVParam.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZBAVParam.h; sourceTree = "<group>"; };
-		AEDD942129B0329D00EAA2CA /* EZRTCVideoEncodeParam.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZRTCVideoEncodeParam.h; sourceTree = "<group>"; };
-		AEDD942229B0329D00EAA2CA /* EZAPDevInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZAPDevInfo.h; sourceTree = "<group>"; };
-		AEDD942329B0329D00EAA2CA /* EzvizWatchServerInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EzvizWatchServerInfo.h; sourceTree = "<group>"; };
-		AEDD942429B0329D00EAA2CA /* EZDeviceRecordDownloadTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDeviceRecordDownloadTask.h; sourceTree = "<group>"; };
-		AEDD942529B0329D00EAA2CA /* EzvizRecordFileInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EzvizRecordFileInfo.h; sourceTree = "<group>"; };
-		AEDD942629B0329D00EAA2CA /* EZDeviceRecordFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDeviceRecordFile.h; sourceTree = "<group>"; };
-		AEDD942729B0329D00EAA2CA /* EZLeaveMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZLeaveMessage.h; sourceTree = "<group>"; };
-		AEDD942829B0329D00EAA2CA /* EZWiFiItemInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZWiFiItemInfo.h; sourceTree = "<group>"; };
-		AEDD942929B0329D00EAA2CA /* EZRecordCoverFetcherManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZRecordCoverFetcherManager.h; sourceTree = "<group>"; };
-		AEDD942A29B0329D00EAA2CA /* EZHiddnsDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZHiddnsDeviceInfo.h; sourceTree = "<group>"; };
-		AEDD942B29B0329D00EAA2CA /* Sadp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Sadp.h; sourceTree = "<group>"; };
-		AEDD942C29B0329D00EAA2CA /* EZDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDeviceInfo.h; sourceTree = "<group>"; };
-		AEDD942D29B0329D00EAA2CA /* EZRecordDownloader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZRecordDownloader.h; sourceTree = "<group>"; };
-		AEDD942E29B0329D00EAA2CA /* EZRecordDownloadTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZRecordDownloadTask.h; sourceTree = "<group>"; };
-		AEDD942F29B0329D00EAA2CA /* EZVideoTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoTransformer.h; sourceTree = "<group>"; };
-		AEDD943029B0329D00EAA2CA /* EZTokenKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZTokenKit.h; sourceTree = "<group>"; };
-		AEDD943129B0329D00EAA2CA /* EZPMPlayPrivateTokenInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZPMPlayPrivateTokenInfo.h; sourceTree = "<group>"; };
-		AEDD943229B0329D00EAA2CA /* EZDetectorInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDetectorInfo.h; sourceTree = "<group>"; };
-		AEDD943329B0329D00EAA2CA /* EZHCNetDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZHCNetDeviceInfo.h; sourceTree = "<group>"; };
-		AEDD943429B0329D00EAA2CA /* EZCameraInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZCameraInfo.h; sourceTree = "<group>"; };
-		AEDD943529B0329D00EAA2CA /* EZCloudRecordFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZCloudRecordFile.h; sourceTree = "<group>"; };
-		AEDD943629B0329D00EAA2CA /* EZCloudRecordDownloadTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZCloudRecordDownloadTask.h; sourceTree = "<group>"; };
-		AEDD943729B0329D00EAA2CA /* EZAreaInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZAreaInfo.h; sourceTree = "<group>"; };
-		AEDD943829B0329D00EAA2CA /* EZProbeDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZProbeDeviceInfo.h; sourceTree = "<group>"; };
-		AEDD943929B0329D00EAA2CA /* EZDevicePtzAngleInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDevicePtzAngleInfo.h; sourceTree = "<group>"; };
-		AEDD943A29B0329D00EAA2CA /* EZDeviceCloudServiceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDeviceCloudServiceInfo.h; sourceTree = "<group>"; };
-		AEDD943B29B0329D00EAA2CA /* EZVideoQualityInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoQualityInfo.h; sourceTree = "<group>"; };
-		AEDD943C29B0329D00EAA2CA /* EZAlarmInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZAlarmInfo.h; sourceTree = "<group>"; };
-		AEDD943D29B0329D00EAA2CA /* EZConfigTokenInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZConfigTokenInfo.h; sourceTree = "<group>"; };
-		AEDD943E29B0329D00EAA2CA /* EZSADPDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZSADPDeviceInfo.h; sourceTree = "<group>"; };
-		AEDD943F29B0329D00EAA2CA /* EZStorageInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZStorageInfo.h; sourceTree = "<group>"; };
-		AEDD944029B0329D00EAA2CA /* EZConstants_WifiConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZConstants_WifiConfig.h; sourceTree = "<group>"; };
 		AEE4704429C03DA300480163 /* FQDateTimeSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FQDateTimeSDK.framework; sourceTree = "<group>"; };
 		AEE4704A29C061AC00480163 /* HDLEZTempDetailViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HDLEZTempDetailViewController.h; sourceTree = "<group>"; };
 		AEE4704B29C061AC00480163 /* HDLEZTempDetailViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HDLEZTempDetailViewController.m; sourceTree = "<group>"; };
@@ -661,8 +607,8 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				AEDD944129B0329D00EAA2CA /* libEZOpenSDK.a in Frameworks */,
 				AEE4704529C03DA300480163 /* FQDateTimeSDK.framework in Frameworks */,
+				AE31FE1F29CC2D2200678568 /* EZOpenSDKFramework.framework in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -730,83 +676,6 @@
 				AEDBFBA729C30DEF005F6512 /* HDLEZDevMsgListModel.m */,
 			);
 			path = Models;
-			sourceTree = "<group>";
-		};
-		AEDD940829B0329D00EAA2CA /* include */ = {
-			isa = PBXGroup;
-			children = (
-				AEDD940929B0329D00EAA2CA /* EZConstants.h */,
-				AEDD940A29B0329D00EAA2CA /* EZHCNetDeviceSDK.h */,
-				AEDD940B29B0329D00EAA2CA /* EZStreamPlayer.h */,
-				AEDD940C29B0329D00EAA2CA /* EZOpenSDK.h */,
-				AEDD940D29B0329D00EAA2CA /* EZConstants_Auth.h */,
-				AEDD940E29B0329D00EAA2CA /* EZPlayer.h */,
-				AEDD940F29B0329D00EAA2CA /* EZGlobalSDK.h */,
-				AEDD941029B0329D00EAA2CA /* modules */,
-				AEDD944029B0329D00EAA2CA /* EZConstants_WifiConfig.h */,
-			);
-			path = include;
-			sourceTree = "<group>";
-		};
-		AEDD941029B0329D00EAA2CA /* modules */ = {
-			isa = PBXGroup;
-			children = (
-				AEDD941129B0329D00EAA2CA /* EZDeviceVersion.h */,
-				AEDD941229B0329D00EAA2CA /* EZUserInfo.h */,
-				AEDD941329B0329D00EAA2CA /* EZDeviceUpgradeStatus.h */,
-				AEDD941429B0329D00EAA2CA /* EZAccessToken.h */,
-				AEDD941529B0329D00EAA2CA /* EZPlayerExParamInfo.h */,
-				AEDD941629B0329D00EAA2CA /* EZVideoTalk */,
-				AEDD942229B0329D00EAA2CA /* EZAPDevInfo.h */,
-				AEDD942329B0329D00EAA2CA /* EzvizWatchServerInfo.h */,
-				AEDD942429B0329D00EAA2CA /* EZDeviceRecordDownloadTask.h */,
-				AEDD942529B0329D00EAA2CA /* EzvizRecordFileInfo.h */,
-				AEDD942629B0329D00EAA2CA /* EZDeviceRecordFile.h */,
-				AEDD942729B0329D00EAA2CA /* EZLeaveMessage.h */,
-				AEDD942829B0329D00EAA2CA /* EZWiFiItemInfo.h */,
-				AEDD942929B0329D00EAA2CA /* EZRecordCoverFetcherManager.h */,
-				AEDD942A29B0329D00EAA2CA /* EZHiddnsDeviceInfo.h */,
-				AEDD942B29B0329D00EAA2CA /* Sadp.h */,
-				AEDD942C29B0329D00EAA2CA /* EZDeviceInfo.h */,
-				AEDD942D29B0329D00EAA2CA /* EZRecordDownloader.h */,
-				AEDD942E29B0329D00EAA2CA /* EZRecordDownloadTask.h */,
-				AEDD942F29B0329D00EAA2CA /* EZVideoTransformer.h */,
-				AEDD943029B0329D00EAA2CA /* EZTokenKit.h */,
-				AEDD943129B0329D00EAA2CA /* EZPMPlayPrivateTokenInfo.h */,
-				AEDD943229B0329D00EAA2CA /* EZDetectorInfo.h */,
-				AEDD943329B0329D00EAA2CA /* EZHCNetDeviceInfo.h */,
-				AEDD943429B0329D00EAA2CA /* EZCameraInfo.h */,
-				AEDD943529B0329D00EAA2CA /* EZCloudRecordFile.h */,
-				AEDD943629B0329D00EAA2CA /* EZCloudRecordDownloadTask.h */,
-				AEDD943729B0329D00EAA2CA /* EZAreaInfo.h */,
-				AEDD943829B0329D00EAA2CA /* EZProbeDeviceInfo.h */,
-				AEDD943929B0329D00EAA2CA /* EZDevicePtzAngleInfo.h */,
-				AEDD943A29B0329D00EAA2CA /* EZDeviceCloudServiceInfo.h */,
-				AEDD943B29B0329D00EAA2CA /* EZVideoQualityInfo.h */,
-				AEDD943C29B0329D00EAA2CA /* EZAlarmInfo.h */,
-				AEDD943D29B0329D00EAA2CA /* EZConfigTokenInfo.h */,
-				AEDD943E29B0329D00EAA2CA /* EZSADPDeviceInfo.h */,
-				AEDD943F29B0329D00EAA2CA /* EZStorageInfo.h */,
-			);
-			path = modules;
-			sourceTree = "<group>";
-		};
-		AEDD941629B0329D00EAA2CA /* EZVideoTalk */ = {
-			isa = PBXGroup;
-			children = (
-				AEDD941729B0329D00EAA2CA /* EZRTCCameraParam.h */,
-				AEDD941829B0329D00EAA2CA /* EZRTCMediaSessionDefines.h */,
-				AEDD941929B0329D00EAA2CA /* EZVideoTalkSDKDefines.h */,
-				AEDD941A29B0329D00EAA2CA /* EZVideoTalkView.h */,
-				AEDD941B29B0329D00EAA2CA /* EZConferenceClient.h */,
-				AEDD941C29B0329D00EAA2CA /* EZVideoTalkGlobal.h */,
-				AEDD941D29B0329D00EAA2CA /* EZVideoTalk.h */,
-				AEDD941E29B0329D00EAA2CA /* EZVideoTalkSDK.h */,
-				AEDD941F29B0329D00EAA2CA /* EZRTCSampleHandleManager.h */,
-				AEDD942029B0329D00EAA2CA /* EZBAVParam.h */,
-				AEDD942129B0329D00EAA2CA /* EZRTCVideoEncodeParam.h */,
-			);
-			path = EZVideoTalk;
 			sourceTree = "<group>";
 		};
 		AEE84D3C29BAC3CA0078FDAD /* Base */ = {
@@ -1378,8 +1247,7 @@
 		B9BC997425C0FFBC00C024FE /* SDK */ = {
 			isa = PBXGroup;
 			children = (
-				AEDD940829B0329D00EAA2CA /* include */,
-				AEDD940729B0329D00EAA2CA /* libEZOpenSDK.a */,
+				AE31FE1E29CC2D2200678568 /* EZOpenSDKFramework.framework */,
 			);
 			path = SDK;
 			sourceTree = "<group>";
@@ -1833,6 +1701,7 @@
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
 					"$(PROJECT_DIR)/EZSDK/EZ/Venders",
+					"$(PROJECT_DIR)/EZSDK/SDK",
 				);
 				GCC_C_LANGUAGE_STANDARD = gnu99;
 				GCC_NO_COMMON_BLOCKS = YES;
@@ -1860,6 +1729,7 @@
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
 					"$(PROJECT_DIR)/EZSDK/EZ/Venders",
+					"$(PROJECT_DIR)/EZSDK/SDK",
 				);
 				GCC_C_LANGUAGE_STANDARD = gnu99;
 				GCC_NO_COMMON_BLOCKS = YES;
diff --git a/EZSDK/EZSDK/DeviceInfo.h b/EZSDK/EZSDK/DeviceInfo.h
index 294fbff..352bcb1 100644
--- a/EZSDK/EZSDK/DeviceInfo.h
+++ b/EZSDK/EZSDK/DeviceInfo.h
@@ -6,7 +6,7 @@
 //
 
 #import <Foundation/Foundation.h>
-#import "EZDeviceInfo.h"
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
diff --git a/EZSDK/EZSDK/EZ/Base/HDLEZBaseViewController.m b/EZSDK/EZSDK/EZ/Base/HDLEZBaseViewController.m
index 6ca2e86..f33b8dc 100755
--- a/EZSDK/EZSDK/EZ/Base/HDLEZBaseViewController.m
+++ b/EZSDK/EZSDK/EZ/Base/HDLEZBaseViewController.m
@@ -44,7 +44,7 @@
         make.right.equalTo(self.view).offset(-20);
         make.height.mas_equalTo(60);
     }];
-    [_noDataV setHidden:YES];
+//    [_noDataV setHidden:YES];
 
 }
 
@@ -54,6 +54,8 @@
 -(void)showNoDataViewWithMessage:(NSString *)message {
     [_noDataV setHidden:NO];
     _noDataV.tipMsg=message;
+    
+    [self.view bringSubviewToFront:_noDataV];
 }
 
 
diff --git a/EZSDK/EZSDK/EZ/CustomUI/EZRecordCell.m b/EZSDK/EZSDK/EZ/CustomUI/EZRecordCell.m
index fa113e6..2755161 100644
--- a/EZSDK/EZSDK/EZ/CustomUI/EZRecordCell.m
+++ b/EZSDK/EZSDK/EZ/CustomUI/EZRecordCell.m
@@ -7,8 +7,8 @@
 //
 
 #import "EZRecordCell.h"
-#import "EZDeviceRecordFile.h"
-#import "EZCloudRecordFile.h"
+#import <EZOpenSDKFramework/EZDeviceRecordFile.h>
+#import <EZOpenSDKFramework/EZCloudRecordFile.h>
 #import "UIImageView+AFNetworking.h"
 #import "DDKit.h"
 
diff --git a/EZSDK/EZSDK/EZ/EZOpenSDK+EZPrivateHeader.h b/EZSDK/EZSDK/EZ/EZOpenSDK+EZPrivateHeader.h
index 4701f98..af837ca 100644
--- a/EZSDK/EZSDK/EZ/EZOpenSDK+EZPrivateHeader.h
+++ b/EZSDK/EZSDK/EZ/EZOpenSDK+EZPrivateHeader.h
@@ -6,7 +6,7 @@
 //  Copyright 漏 2015骞� Hikvision. All rights reserved.
 //
 
-#import "EZOpenSDK.h"
+#import <EZOpenSDKFramework/EZOpenSDK.h>
 #import "EZTransferMessage.h"
 
 @interface EZOpenSDK (EZPrivateHeader)
diff --git a/EZSDK/EZSDK/EZ/Global/EZHttpUtil.m b/EZSDK/EZSDK/EZ/Global/EZHttpUtil.m
index 3fc0474..71d32d8 100644
--- a/EZSDK/EZSDK/EZ/Global/EZHttpUtil.m
+++ b/EZSDK/EZSDK/EZ/Global/EZHttpUtil.m
@@ -131,8 +131,9 @@
     
     [self requestHttpsPost:API_POST_EZ_AddDevice parameters:parameters completion:^(ResponseData *responseData) {
         if (responseData.success){//娣诲姞鎴愬姛锛岃Е鍙戜唬鐞�
-            if ([EZSDK sharedInstance].delegate&&[[EZSDK sharedInstance].delegate respondsToSelector:@selector(addDeviceSuccessed)]) {
-                [[EZSDK sharedInstance].delegate addDeviceSuccessed];
+            if ([EZSDK sharedInstance].delegate&&[[EZSDK sharedInstance].delegate respondsToSelector:@selector(addDeviceSuccessed:)]) {
+//                HDLEZLog(@"娣诲姞璁惧璁惧鎴愬姛鍥炶皟:%@",parameters[@"deviceSerial"]);
+                [[EZSDK sharedInstance].delegate addDeviceSuccessed:parameters[@"deviceSerial"]];
             }
         }
         
@@ -497,6 +498,9 @@
     [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
     [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
     [request setValue:GlobalKit.shareKit.hdlAccessToken forHTTPHeaderField:@"Authorization"];
+    //璇█绫诲瀷
+    [manager.requestSerializer setValue:[self getCurrentLanguage] forHTTPHeaderField:@"language"];
+    
     //4.dataTaskWithRequest
     [[manager dataTaskWithRequest:request completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {
         if (completion) {
@@ -608,6 +612,23 @@
     return true;
 }
 
+/*鑾峰彇褰撳墠绯荤粺璇█
+ */
+-(NSString *)getCurrentLanguage{
+    NSArray *languages = [NSLocale preferredLanguages];
+    NSString *currentLocaleLanguageCode=@"en";
+    if (languages.count>0) {
+        currentLocaleLanguageCode = languages.firstObject;
+        if ([currentLocaleLanguageCode hasPrefix:@"zh"]) {//涓枃
+            currentLocaleLanguageCode = @"cn";
+        }else {//鍏跺畠璇█
+            currentLocaleLanguageCode = @"en";
+        }
+    }
+    return currentLocaleLanguageCode;
+}
+
+
 
 @end
 
diff --git a/EZSDK/EZSDK/EZ/PrefixHeader.pch b/EZSDK/EZSDK/EZ/PrefixHeader.pch
index f684773..f29ff43 100644
--- a/EZSDK/EZSDK/EZ/PrefixHeader.pch
+++ b/EZSDK/EZSDK/EZ/PrefixHeader.pch
@@ -21,8 +21,11 @@
 #import "DDKit.h"
 #import "YYModel.h"
 
-#import "EZOpenSDK.h"
-#import "EZGlobalSDK.h"
+#import <EZOpenSDKFramework/EZOpenSDK.h>
+#import <EZOpenSDKFramework/EZGlobalSDK.h>
+
+//#import <EZOpenSDKFramework/EZOpenSDK.h>
+//#import "EZGlobalSDK.h"
 #import "GlobalKit.h"
 #import "EZHttpUtil.h"
 #import "EZSDK.h"
diff --git a/EZSDK/EZSDK/EZ/TableViewCells/CameraListCell.h b/EZSDK/EZSDK/EZ/TableViewCells/CameraListCell.h
index 71e424f..179a437 100644
--- a/EZSDK/EZSDK/EZ/TableViewCells/CameraListCell.h
+++ b/EZSDK/EZSDK/EZ/TableViewCells/CameraListCell.h
@@ -7,8 +7,8 @@
 //
 
 #import <UIKit/UIKit.h>
-#import "EZDeviceInfo.h"
-#import "EZCameraInfo.h"
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
+#import <EZOpenSDKFramework/EZCameraInfo.h>
 
 @interface CameraListCell : UITableViewCell
 {
diff --git a/EZSDK/EZSDK/EZ/TableViewCells/CameraListCell.m b/EZSDK/EZSDK/EZ/TableViewCells/CameraListCell.m
index 9845160..140b7d3 100644
--- a/EZSDK/EZSDK/EZ/TableViewCells/CameraListCell.m
+++ b/EZSDK/EZSDK/EZ/TableViewCells/CameraListCell.m
@@ -8,7 +8,7 @@
 
 #import "CameraListCell.h"
 #import "DDKit.h"
-#import "EZOpenSDK.h"
+#import <EZOpenSDKFramework/EZOpenSDK.h>
 #import "UIImageView+WebCache.h"
 
 @implementation CameraListCell
diff --git a/EZSDK/EZSDK/EZ/TableViewCells/DeviceListCell.h b/EZSDK/EZSDK/EZ/TableViewCells/DeviceListCell.h
index 8a9e40b..8aeeb3f 100644
--- a/EZSDK/EZSDK/EZ/TableViewCells/DeviceListCell.h
+++ b/EZSDK/EZSDK/EZ/TableViewCells/DeviceListCell.h
@@ -7,7 +7,7 @@
 //
 
 #import <UIKit/UIKit.h>
-#import "EZDeviceInfo.h"
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
 
 @interface DeviceListCell : UITableViewCell
 {
diff --git a/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZVisitorRecordViewController.m b/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZVisitorRecordViewController.m
index ef6ab69..d558857 100755
--- a/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZVisitorRecordViewController.m
+++ b/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZVisitorRecordViewController.m
@@ -47,7 +47,7 @@
 }
 
 -(void)addSubViews{
-    
+    [super addSubViews];
     //
     _visitorRecordV=[[HDLEZVisitorRecordView alloc] init];
     [self.view addSubview:_visitorRecordV];
@@ -80,9 +80,11 @@
         [weakSelf.header endRefreshing];
         if (responseData.success) {
             weakSelf.visitorRecordV.temPList=[NSArray yy_modelArrayWithClass:[HDLEZTemInfoModel class] json:responseData.data];
-//            if (weakSelf.visitorRecordV.temPList.count==0) {
-//
-//            }
+            if (weakSelf.visitorRecordV.temPList.count==0) {//灞曠ず鏃犳暟鎹�
+                [weakSelf showNoDataViewWithMessage:HDLEZLocallizedString(@"hdl_ez_common_no_data")];
+            }else{
+                [weakSelf hideNoDataView];
+            }
         }else{
             [weakSelf.view makeToast:responseData.message
                             duration:1.5
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZAPConfigResultViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZAPConfigResultViewController.m
index 1645fb3..98abe9e 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZAPConfigResultViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZAPConfigResultViewController.m
@@ -8,8 +8,8 @@
 
 #import "EZAPConfigResultViewController.h"
 #import "GlobalKit.h"
-#import "EZOpenSDK.h"
-#import "EZProbeDeviceInfo.h"
+#import <EZOpenSDKFramework/EZOpenSDK.h>
+#import <EZOpenSDKFramework/EZProbeDeviceInfo.h>
 #import "Toast+UIView.h"
 #import "EZDeviceTableViewController.h"
 
@@ -88,8 +88,8 @@
         
         if ([vc isKindOfClass:[EZAddByQRCodeViewController class]])
         {//璺宠浆鍒版壂鐮侀〉
-            ((EZAddByQRCodeViewController *)vc).shouldPop = YES;
-            [self.navigationController popToViewController:vc animated:YES];
+//            ((EZAddByQRCodeViewController *)vc).shouldPop = YES;
+            [self.navigationController popToViewController:((EZAddByQRCodeViewController *)vc).prevController animated:YES];
             break;
         }
         
@@ -116,7 +116,8 @@
                     completion:^(ResponseData *responseData) {
         
         if (!responseData.success){
-            [self.view makeToast:NSLocalizedString(@"wifi_add_fail", @"娣诲姞澶辫触") duration:2.0 position:@"center"];
+//            [self.view makeToast:NSLocalizedString(@"wifi_add_fail", @"娣诲姞澶辫触") duration:2.0 position:@"center"];
+            [self.view makeToast:responseData.message duration:2.0 position:@"center"];
         }
         else
         {
@@ -202,7 +203,7 @@
                         [self.loadingIndicator stopAnimating];
                         self.msgLabel.text = NSLocalizedString(@"ad_result_verify_local_lock",@"璇峰湪2鍒嗛挓涔嬪唴鏍¢獙宸叉坊鍔犵殑涓荤敤鎴锋寚绾广�佸瘑閽ユ垨鎰熷簲鍗★紝鏍¢獙瀹屾垚璇风偣鍑诲凡鏍¢獙鎸夐挳");
                         [self.verifiedBtn setHidden:NO];
-                        
+                        [self stopTimer];
                     }else{
                         [self addErrorProcessWithError:responseData];
                     }
@@ -324,6 +325,9 @@
     self.successImageView.hidden = NO;
     self.doneBtn.hidden = NO;
     self.msgLabel.hidden = YES;
+    
+    [self.verifiedBtn setHidden:YES];
+
 }
 
 
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZAPWiFiConfigViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZAPWiFiConfigViewController.m
index 0e3dc8c..37e9a63 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZAPWiFiConfigViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZAPWiFiConfigViewController.m
@@ -9,7 +9,7 @@
 #import "EZAPWiFiConfigViewController.h"
 #import "GlobalKit.h"
 #import <SystemConfiguration/CaptiveNetwork.h>
-#import "EZHCNetDeviceSDK.h"
+#import <EZOpenSDKFramework/EZHCNetDeviceSDK.h>
 #import "EZAPConfigResultViewController.h"
 #import "Toast+UIView.h"
 
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.h b/EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.h
index 6942a93..cc7e10b 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.h
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.h
@@ -10,9 +10,11 @@
 #import "EZSDK.h"
 @interface EZAddByQRCodeViewController : UIViewController
 
+@property (nonatomic, weak) UIViewController *prevController;//涓婁竴涓猚ontroller锛堢敤浜庢坊鍔犲畬鎴愬悗璺冲洖璇ラ〉闈級
+
 @property (nonatomic, assign) HDLEZDeviceType deviceType;//璁惧绫诲瀷
 
-@property (nonatomic, assign) bool shouldPop;//闇�瑕佽繑鍥�
+//@property (nonatomic, assign) bool shouldPop;//闇�瑕佽繑鍥�
 
 
 @end
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.m
index 27f7e85..b1592e9 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.m
@@ -66,14 +66,19 @@
         [alert show];
     }
     self.qrView.hidden = YES;
+    
+    self.prevController = (UIViewController *)[self.navigationController.viewControllers objectAtIndex: ([self.navigationController.viewControllers count] -2)];
+    HDLEZLog(@"瀵艰埅鏍忓瓙view锛�%@",self.prevController );
+
+
 }
 
 - (void)viewWillAppear:(BOOL)animated
 {
     [super viewWillAppear:animated];
-    if(self.shouldPop){//閫�鍑虹晫闈�
-        [self.navigationController popViewControllerAnimated:YES];
-    }
+//    if(self.shouldPop){//閫�鍑虹晫闈�
+//        [self.navigationController popViewControllerAnimated:YES];
+//    }
     
     [[GlobalKit shareKit] clearDeviceInfo];
     if (authStatus == AVAuthorizationStatusDenied ||
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZCameraTableViewController.h b/EZSDK/EZSDK/EZ/UIViewControllers/EZCameraTableViewController.h
index ca0cac2..bfd8979 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZCameraTableViewController.h
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZCameraTableViewController.h
@@ -7,7 +7,7 @@
 //
 
 #import <UIKit/UIKit.h>
-#import "EZDeviceInfo.h"
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
 
 @interface EZCameraTableViewController : UITableViewController
 
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZCameraTableViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZCameraTableViewController.m
index d63add0..7fa6972 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZCameraTableViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZCameraTableViewController.m
@@ -9,7 +9,7 @@
 #import "EZCameraTableViewController.h"
 #import "EZLivePlayViewController.h"
 #import "EZPlaybackViewController.h"
-#import "EZCameraInfo.h"
+#import <EZOpenSDKFramework/EZCameraInfo.h>
 #import "DDKit.h"
 
 @interface EZCameraTableViewController ()
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZDdnsDeviceTableViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZDdnsDeviceTableViewController.m
index 0d98ecf..718c737 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZDdnsDeviceTableViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZDdnsDeviceTableViewController.m
@@ -9,11 +9,11 @@
 #import "EZDdnsDeviceTableViewController.h"
 #import "EZLocalRealPlayViewController.h"
 #import "EZLocalCameraListViewController.h"
-#import "EZHiddnsDeviceInfo.h"
-#import "EZHCNetDeviceSDK.h"
-#import "EZHCNetDeviceInfo.h"
-#import "EZAccessToken.h"
-#import "EZAreaInfo.h"
+#import <EZOpenSDKFramework/EZHiddnsDeviceInfo.h>
+#import <EZOpenSDKFramework/EZHCNetDeviceSDK.h>
+#import <EZOpenSDKFramework/EZHCNetDeviceInfo.h>
+#import <EZOpenSDKFramework/EZAccessToken.h>
+#import <EZOpenSDKFramework/EZAreaInfo.h>
 #import "MJRefresh.h"
 #import "Toast+UIView.h"
 #import "MBProgressHUD.h"
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceResultViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceResultViewController.m
index 500c658..90b5895 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceResultViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceResultViewController.m
@@ -9,7 +9,7 @@
 #import "EZDeviceResultViewController.h"
 #import "UIImage+GIF.h"
 
-#import "EZProbeDeviceInfo.h"
+#import <EZOpenSDKFramework/EZProbeDeviceInfo.h>
 #import "DDKit.h"
 #import "EZWifiConfigViewController.h"
 #import "EZWifiTipsViewController.h"
@@ -284,7 +284,8 @@
     }
     else
     {
-        [UIView dd_showMessage:NSLocalizedString(@"wifi_add_fail",@"娣诲姞澶辫触")];
+//        [UIView dd_showMessage:NSLocalizedString(@"wifi_add_fail",@"娣诲姞澶辫触")];
+        [UIView dd_showMessage:responseData.message];
     }
 }
 
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceTableViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceTableViewController.m
index c27e2b8..609e952 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceTableViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceTableViewController.m
@@ -8,7 +8,7 @@
 
 #import "EZDeviceTableViewController.h"
 
-#import "EZAccessToken.h"
+#import <EZOpenSDKFramework/EZAccessToken.h>
 #import "MJRefresh.h"
 #import "DeviceListCell.h"
 #import "DDKit.h"
@@ -17,8 +17,8 @@
 #import "EZMessageListViewController.h"
 #import "EZSettingViewController.h"
 #import "EZCameraTableViewController.h"
-#import "EZAreaInfo.h"
-#import "EZUserInfo.h"
+#import <EZOpenSDKFramework/EZAreaInfo.h>
+#import <EZOpenSDKFramework/EZUserInfo.h>
 #import "Toast+UIView.h"
 //#import "EZVideoTalkViewcontroller.h"
 #import "EZMultiChannelRealPlayVC.h"
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceUpgradeViewController.h b/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceUpgradeViewController.h
index a03a328..b3de99d 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceUpgradeViewController.h
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceUpgradeViewController.h
@@ -7,7 +7,7 @@
 //
 
 #import <UIKit/UIKit.h>
-#import "EZDeviceVersion.h"
+#import <EZOpenSDKFramework/EZDeviceVersion.h>
 
 @interface EZDeviceUpgradeViewController : UIViewController
 
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceUpgradeViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceUpgradeViewController.m
index 2289b87..81a85fb 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceUpgradeViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceUpgradeViewController.m
@@ -8,8 +8,8 @@
 
 #import "EZDeviceUpgradeViewController.h"
 
-#import "EZDeviceUpgradeStatus.h"
-#import "EZStorageInfo.h"
+#import <EZOpenSDKFramework/EZDeviceUpgradeStatus.h>
+#import <EZOpenSDKFramework/EZStorageInfo.h>
 
 @interface EZDeviceUpgradeViewController ()
 
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZEditViewController.h b/EZSDK/EZSDK/EZ/UIViewControllers/EZEditViewController.h
index b0c133d..a4d664c 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZEditViewController.h
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZEditViewController.h
@@ -7,7 +7,7 @@
 //
 
 #import <UIKit/UIKit.h>
-#import "EZDeviceInfo.h"
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
 
 @interface EZEditViewController : UIViewController
 
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZHubDebugViewController.h b/EZSDK/EZSDK/EZ/UIViewControllers/EZHubDebugViewController.h
index 1d5590c..58fc664 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZHubDebugViewController.h
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZHubDebugViewController.h
@@ -7,7 +7,7 @@
 //
 
 #import <UIKit/UIKit.h>
-#import "EZDeviceInfo.h"
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.h b/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.h
index fdcaf09..ec2b1fd 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.h
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.h
@@ -7,7 +7,7 @@
 //
 
 #import <UIKit/UIKit.h>
-#import "EZDeviceInfo.h"
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
 
 @interface EZLivePlayViewController : UIViewController
 
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m
index f648436..14f7798 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m
@@ -11,18 +11,18 @@
 #import <Photos/Photos.h>
 #import "EZLivePlayViewController.h"
 #import "UIViewController+EZBackPop.h"
-#import "EZDeviceInfo.h"
-#import "EZPlayer.h"
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
+#import <EZOpenSDKFramework/EZPlayer.h>
 #import "DDKit.h"
 #import "Masonry.h"
 #import "HIKLoadView.h"
 #import "MBProgressHUD.h"
-#import "EZCameraInfo.h"
+#import <EZOpenSDKFramework/EZCameraInfo.h>
 #import <AVFoundation/AVFoundation.h>
 #import "Toast+UIView.h"
-#import "EZStreamPlayer.h"
+#import <EZOpenSDKFramework/EZStreamPlayer.h>
 #import "MBProgressHUD.h"
-#import "EZPMPlayPrivateTokenInfo.h"
+#import <EZOpenSDKFramework/EZPMPlayPrivateTokenInfo.h>
 #import "HDLEZAlertInputView.h"
 #define MinimumZoomScale 1.0
 #define MaximumZoomScale 4.0
@@ -415,9 +415,9 @@
     self.scrollView.multipleTouchEnabled = YES;
     self.scrollView.pagingEnabled = NO;
     
-    if ([GlobalKit shareKit].deviceType==HDLEZDeviceType_Door) {//涓洪棬閿佹椂锛屽彧鏄剧ず楹﹀厠椋庡拰寮�闂ㄦ寜閽�
-        self.captureButton.hidden=YES;
-        self.localRecordButton.hidden=YES;
+    if ([GlobalKit shareKit].deviceType==HDLEZDeviceType_Door) {//涓洪棬閿佹椂锛屾樉绀洪害鍏嬮
+//        self.captureButton.hidden=YES;
+//        self.localRecordButton.hidden=YES;
         self.controlButton.hidden=YES;
         
         //閲嶈鎺у埗鍙版寜閽�
@@ -859,6 +859,11 @@
         self.localRecordButton.enabled = NO;
         self.captureButton.enabled = NO;
         self.playerPlayButton.hidden = NO;
+        
+        //寮�闂ㄦ寜閽疆鐏帮紝涓嶇粰鐐瑰嚮锛堟殏鍋滅殑鎯呭喌涓嬩笉缁欏紑闂級
+        [_unlockButton setImage:[UIImage imageNamed:@"hdl_ez_ic_unlock_disable"] forState:UIControlStateNormal];
+        _unlockButton.enabled=NO;
+        
     }
     else
     {
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZLocalCameraListViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZLocalCameraListViewController.m
index 3b11666..b4ef687 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZLocalCameraListViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZLocalCameraListViewController.m
@@ -7,7 +7,7 @@
 //
 
 #import "EZLocalCameraListViewController.h"
-#import "EZHCNetDeviceInfo.h"
+#import <EZOpenSDKFramework/EZHCNetDeviceInfo.h>
 #import "EZLocalRealPlayViewController.h"
 
 #define CAMERA_LIST_ID @"CAMERA_LIST_ID"
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZLocalDeviceListViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZLocalDeviceListViewController.m
index d4bf894..af936e1 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZLocalDeviceListViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZLocalDeviceListViewController.m
@@ -7,9 +7,9 @@
 //
 
 #import "EZLocalDeviceListViewController.h"
-#import "EZHCNetDeviceInfo.h"
-#import "EZHCNetDeviceSDK.h"
-#import "EZSADPDeviceInfo.h"
+#import <EZOpenSDKFramework/EZHCNetDeviceInfo.h>
+#import <EZOpenSDKFramework/EZHCNetDeviceSDK.h>
+#import <EZOpenSDKFramework/EZSADPDeviceInfo.h>
 #import "Toast+UIView.h"
 #import "EZLocalRealPlayViewController.h"
 #import "EZLocalCameraListViewController.h"
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZLocalRealPlayViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZLocalRealPlayViewController.m
index aa829f4..8549ff2 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZLocalRealPlayViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZLocalRealPlayViewController.m
@@ -7,9 +7,9 @@
 //
 
 #import "EZLocalRealPlayViewController.h"
-#import "EZPlayer.h"
-#import "EZHCNetDeviceSDK.h"
-#import "EZHCNetDeviceInfo.h"
+#import <EZOpenSDKFramework/EZPlayer.h>
+#import <EZOpenSDKFramework/EZHCNetDeviceSDK.h>
+#import <EZOpenSDKFramework/EZHCNetDeviceInfo.h>
 
 @interface EZLocalRealPlayViewController () <EZPlayerDelegate>
 
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZMessageListViewController.h b/EZSDK/EZSDK/EZ/UIViewControllers/EZMessageListViewController.h
index ca5148d..c2db1c7 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZMessageListViewController.h
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZMessageListViewController.h
@@ -7,7 +7,7 @@
 //
 
 #import <UIKit/UIKit.h>
-#import "EZDeviceInfo.h"
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
 
 @interface EZMessageListViewController : UITableViewController
 
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZMessagePhotoViewController.h b/EZSDK/EZSDK/EZ/UIViewControllers/EZMessagePhotoViewController.h
index 41a08a9..0c85c6f 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZMessagePhotoViewController.h
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZMessagePhotoViewController.h
@@ -7,8 +7,8 @@
 //
 
 #import "MWPhotoBrowser.h"
-//#import "EZAlarmInfo.h"
-#import "EZDeviceInfo.h"
+//#import <EZOpenSDKFramework/EZAlarmInfo.h>
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
 #import "HDLAlarmInfo.h"
 
 @interface EZMessagePhotoViewController : MWPhotoBrowser
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZMessagePlaybackViewController.h b/EZSDK/EZSDK/EZ/UIViewControllers/EZMessagePlaybackViewController.h
index 95d7ac3..29f6102 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZMessagePlaybackViewController.h
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZMessagePlaybackViewController.h
@@ -7,8 +7,8 @@
 //
 
 #import <UIKit/UIKit.h>
-#import "EZAlarmInfo.h"
-#import "EZDeviceInfo.h"
+#import <EZOpenSDKFramework/EZAlarmInfo.h>
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
 
 @interface EZMessagePlaybackViewController : UIViewController
 
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZMessagePlaybackViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZMessagePlaybackViewController.m
index d88edd7..4c5fae3 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZMessagePlaybackViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZMessagePlaybackViewController.m
@@ -9,12 +9,12 @@
 #import "EZMessagePlaybackViewController.h"
 #import "UIViewController+EZBackPop.h"
 
-#import "EZPlayer.h"
+#import <EZOpenSDKFramework/EZPlayer.h>
 #import "HIKLoadView.h"
 #import "Masonry.h"
 #import "DDKit.h"
-#import "EZDeviceRecordFile.h"
-#import "EZCloudRecordFile.h"
+#import <EZOpenSDKFramework/EZDeviceRecordFile.h>
+#import <EZOpenSDKFramework/EZCloudRecordFile.h>
 
 @interface EZMessagePlaybackViewController ()<EZPlayerDelegate, UIAlertViewDelegate>
 {
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZMultiChannelRealPlayVC.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZMultiChannelRealPlayVC.m
index 2ef268d..7afdfdc 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZMultiChannelRealPlayVC.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZMultiChannelRealPlayVC.m
@@ -10,8 +10,10 @@
 #import "EZOnlineCameraCell.h"
 #import "EZOfflineCameraCell.h"
 #import "EZEncryptCameraCell.h"
-#import "EZDeviceInfo.h"
-#import "EZCameraInfo.h"
+//#import <EZOpenSDKFramework/EZDeviceInfo.h>
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
+//#import <EZOpenSDKFramework/EZCameraInfo.h>
+#import <EZOpenSDKFramework/EZCameraInfo.h>
 #import "UIAlertController+TextField.h"
 #import "EZLivePlayViewController.h"
 #import "UIView+Toast.h"
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZOnlineCameraCell.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZOnlineCameraCell.m
index 5ab2e8a..feb37f3 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZOnlineCameraCell.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZOnlineCameraCell.m
@@ -7,7 +7,8 @@
 //
 
 #import "EZOnlineCameraCell.h"
-#import "EZPlayer.h"
+//#import <EZOpenSDKFramework/EZPlayer.h>
+#import <EZOpenSDKFramework/EZPlayer.h>
 #import "HIKLoadView.h"
 #import "Masonry.h"
 #import "UIAlertController+TextField.h"
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZPlaybackViewController.h b/EZSDK/EZSDK/EZ/UIViewControllers/EZPlaybackViewController.h
index 12fb65c..7473277 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZPlaybackViewController.h
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZPlaybackViewController.h
@@ -7,7 +7,7 @@
 //
 
 #import <UIKit/UIKit.h>
-#import "EZDeviceInfo.h"
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
 
 @interface EZPlaybackViewController : UIViewController
 
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZPlaybackViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZPlaybackViewController.m
index c61081c..0f12198 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZPlaybackViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZPlaybackViewController.m
@@ -10,21 +10,21 @@
 #import "UIViewController+EZBackPop.h"
 #import "DDCollectionViewFlowLayout.h"
 #import "MJRefresh.h"
-#import "EZRecordDownloader.h"
-#import "EZDeviceRecordDownloadTask.h"
-#import "EZCloudRecordDownloadTask.h"
+#import <EZOpenSDKFramework/EZRecordDownloader.h>
+#import <EZOpenSDKFramework/EZDeviceRecordDownloadTask.h>
+#import <EZOpenSDKFramework/EZCloudRecordDownloadTask.h>
 #import "EZRecordCell.h"
 #import "DDKit.h"
-#import "EZCloudRecordFile.h"
-#import "EZDeviceRecordFile.h"
-#import "EZPlayer.h"
+#import <EZOpenSDKFramework/EZCloudRecordFile.h>
+#import <EZOpenSDKFramework/EZDeviceRecordFile.h>
+#import <EZOpenSDKFramework/EZPlayer.h>
 #import "HIKLoadView.h"
 #import "Masonry.h"
-#import "EZCameraInfo.h"
+#import <EZOpenSDKFramework/EZCameraInfo.h>
 #import "MBProgressHUD.h"
 #import "Toast+UIView.h"
 #import "EZCustomTableView.h"
-#import "EZStreamPlayer.h"
+#import <EZOpenSDKFramework/EZStreamPlayer.h>
 
 
 @interface EZPlaybackViewController ()<DDCollectionViewDelegateFlowLayout, UICollectionViewDataSource,EZPlayerDelegate, UIAlertViewDelegate, EZRecordCellDelegate, EZCustomTableViewDelegate,EZStreamPlayerDelegate>
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZSettingViewController.h b/EZSDK/EZSDK/EZ/UIViewControllers/EZSettingViewController.h
index abe7114..43a796f 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZSettingViewController.h
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZSettingViewController.h
@@ -7,7 +7,8 @@
 //
 
 #import <UIKit/UIKit.h>
-#import "EZDeviceInfo.h"
+//#import <EZOpenSDKFramework/EZDeviceInfo.h>
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
 
 @interface EZSettingViewController : UITableViewController
 
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZSettingViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZSettingViewController.m
index 2719447..a4071bb 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZSettingViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZSettingViewController.m
@@ -13,9 +13,9 @@
 
 #import "EZDeviceTableViewController.h"
 #import "EZEditViewController.h"
-#import "EZDeviceVersion.h"
+#import <EZOpenSDKFramework/EZDeviceVersion.h>
 #import "EZDeviceUpgradeViewController.h"
-#import "EZStorageInfo.h"
+#import <EZOpenSDKFramework/EZStorageInfo.h>
 #import "Toast+UIView.h"
 
 //#import "EzvizDeviceManager.h"
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZWifiConfigViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZWifiConfigViewController.m
index 336c9ec..90c2019 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZWifiConfigViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZWifiConfigViewController.m
@@ -810,8 +810,8 @@
         
         if ([vc isKindOfClass:[EZAddByQRCodeViewController class]])
         {//璺宠浆鍒版壂鐮侀〉
-            ((EZAddByQRCodeViewController *)vc).shouldPop = YES;
-            [self.navigationController popToViewController:vc animated:YES];
+//            ((EZAddByQRCodeViewController *)vc).shouldPop = YES;
+            [self.navigationController popToViewController:((EZAddByQRCodeViewController *)vc).prevController animated:YES];
             break;
         }
     }
diff --git a/EZSDK/EZSDK/EZSDK.h b/EZSDK/EZSDK/EZSDK.h
index 5afdf36..76dbc29 100644
--- a/EZSDK/EZSDK/EZSDK.h
+++ b/EZSDK/EZSDK/EZSDK.h
@@ -6,14 +6,17 @@
 //
 
 #import <Foundation/Foundation.h>
-#import "EZDeviceInfo.h"
+//#import <EZOpenSDKFramework/EZDeviceInfo.h>
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
 
 
 
 @protocol EZSDKDelegate <NSObject>
 
-//娣诲姞璁惧鎴愬姛
--(void)addDeviceSuccessed;
+/*娣诲姞璁惧鎴愬姛
+ @param deviceSerial 璁惧搴忓垪鍙�
+ */
+-(void)addDeviceSuccessed:(NSString*)deviceSerial;
 
 @end
 
diff --git a/EZSDK/EZSDK/EZSDK.m b/EZSDK/EZSDK/EZSDK.m
index d7c2c54..91fa7ce 100644
--- a/EZSDK/EZSDK/EZSDK.m
+++ b/EZSDK/EZSDK/EZSDK.m
@@ -7,17 +7,17 @@
 
 #import "EZSDK.h"
 //#import "DeviceInfo.h"
-#import "EZDeviceInfo.h"
-#import "EZOpenSDK.h"
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
+#import <EZOpenSDKFramework/EZOpenSDK.h>
 #import "GlobalKit.h"
-#import "EZAccessToken.h"
+#import <EZOpenSDKFramework/EZAccessToken.h>
 #import "NSArray+DDKit.h"
 #import "EZAddByQRCodeViewController.h"
 #import "EZLivePlayViewController.h"
 #import "EZSettingViewController.h"
 #import "EZPlaybackViewController.h"
 #import "EZDeviceTableViewController.h"
-#import "EZHCNetDeviceSDK.h"
+#import <EZOpenSDKFramework/EZHCNetDeviceSDK.h>
 #import "EZMessagePhotoViewController.h"
 #import "HDLEZVisitorRecordViewController.h"
 #import "HDLEZDeviceMsgListViewController.h"
@@ -146,6 +146,7 @@
     instanceVC.filterTypes=filterTepes;
     //push鎽勫儚澶村垪琛ㄧ殑viewController
     [[self getCurrentVC] setNavigationBarHidden:NO];
+//    [[self getCurrentVC].navigationBar setHidden:NO];
     [[self getCurrentVC] pushViewController:instanceVC animated:YES];
 }
 
@@ -179,6 +180,7 @@
         EZAddByQRCodeViewController *rootViewController = [addDeviceStoryBoard instantiateViewControllerWithIdentifier:@"AddByQRCode"];
         rootViewController.deviceType=type;
         [[self getCurrentVC] setNavigationBarHidden:NO];
+        [[self getCurrentVC].navigationBar setHidden:NO];
         [[self getCurrentVC] pushViewController:rootViewController animated:YES];
     } else {
         //        [UIView dd_showMessage:@"iOS 7.0浠ヤ笅鎵爜鍔熻兘璇疯嚜琛屽疄鐜�"];
@@ -198,7 +200,7 @@
     rootViewController.deviceInfo=(EZDeviceInfo *)deviceInfo;
     NSLog(@"play--iphone--deviceName -%@",rootViewController.deviceInfo.deviceName);
 //            rootViewController.cameraIndex=0;
-    [[self getCurrentVC] setNavigationBarHidden:NO];
+    [[self getCurrentVC].navigationBar setHidden:NO];
     [[self getCurrentVC] pushViewController:rootViewController animated:YES];
     
     
@@ -233,6 +235,7 @@
     vc.deviceId=deviceId;
     vc.deviceSerial=deviceSerial;
     [[self getCurrentVC] setNavigationBarHidden:NO];
+    [[self getCurrentVC].navigationBar setHidden:NO];
     [[self getCurrentVC] pushViewController:vc animated:YES];
 }
 
@@ -245,6 +248,7 @@
     EZSettingViewController *settingVC=[settingStoryBoard instantiateViewControllerWithIdentifier:@"EZSettingViewController"];
     settingVC.deviceInfo=(EZDeviceInfo *)deviceInfo;
     [[self getCurrentVC] setNavigationBarHidden:NO];
+    [[self getCurrentVC].navigationBar setHidden:NO];
     [[self getCurrentVC] pushViewController:settingVC animated:YES];
 }
 
@@ -257,6 +261,7 @@
     EZPlaybackViewController *playBackVC=[playBackStoryBoard instantiateViewControllerWithIdentifier:@"EZPlaybackViewController"];
     playBackVC.deviceInfo=(EZDeviceInfo *)deviceInfo;
     [[self getCurrentVC] setNavigationBarHidden:NO];
+    [[self getCurrentVC].navigationBar setHidden:NO];
     [[self getCurrentVC] pushViewController:playBackVC animated:YES];
 }
 
@@ -266,7 +271,8 @@
 - (void)toTemPassView:(NSString*)deviceId{
     HDLEZVisitorRecordViewController *vc=[[HDLEZVisitorRecordViewController alloc] init];
     vc.deviceId=deviceId;
-    [[self getCurrentVC] setNavigationBarHidden:YES];
+//    [[self getCurrentVC] setNavigationBarHidden:YES];
+    [[self getCurrentVC].navigationBar setHidden:YES];
     [[self getCurrentVC] pushViewController:vc animated:YES];
 }
 
@@ -276,7 +282,8 @@
 - (void)toDeviceMsgListView:(NSString*)deviceId{
     HDLEZDeviceMsgListViewController *vc=[[HDLEZDeviceMsgListViewController alloc] init];
     vc.deviceId=deviceId;
-    [[self getCurrentVC] setNavigationBarHidden:YES];
+//    [[self getCurrentVC] setNavigationBarHidden:YES];
+    [[self getCurrentVC].navigationBar setHidden:YES];
     [[self getCurrentVC] pushViewController:vc animated:YES];
 
 }
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/EZOpenSDKFramework b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/EZOpenSDKFramework
new file mode 100755
index 0000000..c29f125
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/EZOpenSDKFramework
Binary files differ
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZAPDevInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZAPDevInfo.h
new file mode 100644
index 0000000..d1b5e38
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZAPDevInfo.h
@@ -0,0 +1,23 @@
+//
+//  EZAPDevInfo.h
+//  EZWiFiConfigSDK
+//
+//  Created by yuqian on 2020/7/28.
+//  Copyright 漏 2020 com.ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZAPDevInfo : NSObject
+
+@property (nonatomic, copy) NSString *apVersion;//鐗堟湰锛屽綋鍓峚p鐗堟湰1.0
+@property (nonatomic, copy) NSString *devSubserial;//璁惧搴忓垪鍙凤紝鏈�澶�64
+@property (nonatomic, copy) NSString *devType;//璁惧鍨嬪彿锛屾渶澶�64
+@property (nonatomic, copy) NSString *devFirmwareversion;//璁惧鍥轰欢鐗堟湰鍙凤紝鏈�澶�64
+@property (nonatomic, copy) NSString *macAddr;//璁惧mac鍦板潃
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZAccessToken.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZAccessToken.h
new file mode 100644
index 0000000..21379c3
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZAccessToken.h
@@ -0,0 +1,19 @@
+//
+//  EZAccessToken.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/10/19.
+//  Copyright 漏 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓鸿悿鐭冲紑鏀惧钩鍙版巿鏉冪櫥褰曚互鍚庣殑鍑瘉淇℃伅
+@interface EZAccessToken : NSObject
+
+/// accessToken 鐧诲綍鍑瘉
+@property (nonatomic, copy) NSString *accessToken;
+/// accessToken杩囨湡鐨勬椂闂寸偣,鐩稿浜�1970骞寸殑姣鏁�
+@property (nonatomic, assign) NSInteger expire;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZAlarmInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZAlarmInfo.h
new file mode 100644
index 0000000..9e763ef
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZAlarmInfo.h
@@ -0,0 +1,60 @@
+//
+//  EZAlarmInfo.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/9/16.
+//  Copyright (c) 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓哄憡璀︿俊鎭璞�
+@interface EZAlarmInfo : NSObject
+
+/// 鍛婅ID
+@property (nonatomic, copy) NSString *alarmId;
+/// 璁惧搴忓垪鍙�
+@property (nonatomic, copy) NSString *deviceSerial;
+/// 閫氶亾鍙�
+@property (nonatomic) NSInteger cameraNo;
+/// 鍛婅鍚嶇О
+@property (nonatomic, copy) NSString *alarmName;
+/// 鍛婅鍥剧墖
+@property (nonatomic, copy) NSString *alarmPicUrl;
+/// 鍛婅寮�濮嬫椂闂�
+@property (nonatomic, strong) NSDate *alarmStartTime;
+/// 鍛婅绫诲瀷
+@property (nonatomic) NSInteger alarmType;
+/// 鏄惁鍔犲瘑
+//@property (nonatomic) BOOL isEncrypt;
+
+
+/// 鍛婅鍥剧墖鍔犲瘑淇℃伅 crypt 0-涓嶇‘瀹� 1-璁惧鍔犲瘑 2-骞冲彴鍔犲瘑
+/// 濡傛灉鏄�2锛岃〃鏄庢槸骞冲彴鍔犲瘑鐨勫浘鐗囷紝璇蜂娇鐢ㄤ笅闈㈢殑checksum浣滀负瑙e瘑绉橀挜瑙e瘑鍥剧墖
+/// 濡傛灉鏄�1锛岃〃鏄庢槸璁惧鍔犲瘑鐨勫浘鐗囷紝璇蜂娇鐢ㄨ澶囩殑楠岃瘉鐮佷綔涓鸿В瀵嗙閽ヨВ瀵嗗浘鐗�
+/// 濡傛灉鏄�0锛岃〃鏄庢湭鐭ョ殑鍔犲瘑淇℃伅锛岃閫氳繃涓婇潰鎶ヨ鍥剧墖URL锛坅larmPicUrl锛変腑鐨� isEncrypted 瀛楁锛屽垽鏂浘鐗囨槸 0锛氭湭鍔犲瘑 1锛氳澶囧姞瀵�
+/// 鎶ヨ鍥剧墖鐨刄RL绀轰緥锛�
+/// 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-钀ょ煶鍜宻d鍗★紝6-鐧惧害鍜宻d鍗�
+@property (nonatomic) NSInteger recState;
+/// 鍛婅褰曞儚缁撴潫鏃堕棿鏃堕棿寤跺悗鍋忕Щ閲忥紝閫氳繃alarmStartTime鍔犱笂寤跺悗鍋忕Щ閲忚幏寰楀憡璀﹀綍鍍忕殑鍏蜂綋缁撴潫鏃堕棿
+@property (nonatomic) NSInteger delayTime;
+/// 鍛婅褰曞儚寮�濮嬫椂闂存彁鍓嶅亸绉婚噺锛岄�氳繃alarmStartTime鍑忓幓鎻愬墠鍋忕Щ閲忚幏寰楀憡璀﹀綍鍍忕殑鍏蜂綋寮�濮嬫椂闂�
+@property (nonatomic) NSInteger preTime;
+/// 璁惧鍚嶇О
+@property (nonatomic, copy) NSString *deviceName;
+/// 璁惧澶х被
+@property (nonatomic, copy) NSString *category;
+
+/// 4530 鎵╁睍瀛楁
+@property (nonatomic, copy) NSString *customerType;
+/// 4530 鎵╁睍瀛楁
+@property (nonatomic, copy) NSString *customerInfo;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZAreaInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZAreaInfo.h
new file mode 100644
index 0000000..ebbd210
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZAreaInfo.h
@@ -0,0 +1,19 @@
+//
+//  EZAreaInfo.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 16/7/19.
+//  Copyright 漏 2016骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ゅ璞′负鍖哄煙瀵硅薄锛屾捣澶栧紑鏀惧钩鍙颁笓鐢ㄥ璞�
+@interface EZAreaInfo : NSObject
+
+@property (nonatomic) NSInteger id; ///鍖哄煙ID
+@property (nonatomic, copy) NSString *name; ///鍖哄煙鍚嶇О
+@property (nonatomic, copy) NSString *region; ///鍖哄煙鏍囪瘑
+@property (nonatomic) NSInteger telephoneCode; ///鍖哄煙鎵嬫満鍥介檯鍙�
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZBAVParam.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZBAVParam.h
new file mode 100644
index 0000000..b3d1e94
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZBAVParam.h
@@ -0,0 +1,196 @@
+//
+//  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;                                            //蹇呭~    鍔犲叆鏂筩lientId
+     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 EZRTCJoinParam : NSObject
+@property (nonatomic, assign) int32_t m_iRoomId; /**<蹇呭~    闇�瑕佸姞鍏ユ埧闂村彿 */
+@property (nonatomic, assign) int32_t m_uClientId; /**< 蹇呭~    鍔犲叆鏂筩lientId */
+@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;//蹇呭~    瑙嗛浼氳蹇呭~ 浼氭帶鏈嶅姟绔痥鍙�
+@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 鏄疦PQ锛岃蛋UDP */
+@property (nonatomic, assign) int32_t m_iCltType; /**< 蹇呭~    瀹㈡埛绔被鍨� */
+
+@property (nonatomic, strong) NSString *m_szVcAddr;//蹇呭~    瑙嗛浼氳蹇呭~ 浼氭帶鏈嶅姟鍦板潃
+@property (nonatomic, assign) int32_t m_iVcPort;//蹇呭~    瑙嗛浼氳蹇呭~ 浼氭帶鏈嶅姟绔痥鍙�
+@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;/**< 閫夋嫨  鍙傝�傿AV_QOS_TYPE */
+//
+//@property (nonatomic, assign) int32_t m_iVideo;/**< 閫夋嫨  鏄惁寮�鍚棰慟os 1 寮�鍚� 0 涓嶅紑鍚� */
+//
+//@property (nonatomic, assign) int32_t m_iAudio;/**< 閫夋嫨  鏄惁寮�鍚煶棰慟os 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;//閫夊~  涓夋柟闊宠棰戞椂锛孖PC璁惧闇�瑕佸~鍐�
+@property (nonatomic, assign) int32_t m_iDevStreamType;//閫夊~  璁惧涓诲瓙鐮佹祦
+
+@property (nonatomic, strong) NSString *m_szExtensionParas; /**< 閫夋嫨    鎵╁睍瀛楁淇℃伅 */
+
+
+@end
+
+
+
+/// 涓庝細鑰呬俊鎭�
+@interface EZRTCParticipantsInfo : 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) uint8_t m_iCltType; //鐢ㄤ互鍖哄垎鏄惁鏄澶� 111:璁惧 
+@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 upNetState;//缃戠粶鐘舵��
+@property (nonatomic, assign) int8_t downNetState;//缃戠粶鐘舵��
+
+@end
+
+
+@interface EZRTCParticipantVolume : NSObject
+@property (nonatomic, assign) uint32_t m_uClientId;
+@property (nonatomic, strong) NSString *m_sCustomId;
+@property (nonatomic, assign) uint8_t m_sVolume;    //闊抽噺寮哄害0-10 10涓烘渶寮� 0涓烘渶寮�
+@end
+
+
+@interface EZRTCStatistic : NSObject
+@property (nonatomic, assign) int32_t type;//0锛氬瓙琛� 1锛氫富琛�
+@property (nonatomic, strong) NSDictionary *statisticInfo;
+@end
+
+///鏈湴鐨勯煶瑙嗛缁熻
+@interface EZRTCLocalStatistics : NSObject
+///瑙嗛鎸囨爣鍙傛暟
+@property (nonatomic, assign) uint32_t videoSentBitrate; //瑙嗛浼犺緭鐮佺巼(涓婅)
+@property (nonatomic, assign) uint32_t videoSentFrameRate; //甯х巼澶у皬
+@property (nonatomic, assign) uint16_t videoPacketLossRate; //瑙嗛涓㈠寘鐜�
+@property (nonatomic, assign) uint16_t videoStreamType; //娴佺被鍨�
+///闊抽鎸囨爣鍙傛暟
+@property (nonatomic, assign) uint32_t audioSentBitrate;//闊抽浼犺緭鐮佺巼
+@property (nonatomic, assign) uint16_t audioPacketLossRate;//闊抽涓㈠寘鐜�
+@end
+
+///杩滅鐨勯煶瑙嗛缁熻
+@interface  EZRTCRemoteStatistics : NSObject
+///瑙嗛鎸囨爣鍙傛暟
+@property (nonatomic, assign) uint32_t videoClientId; //杩滅瑙嗛clientId
+@property (nonatomic, assign) uint32_t videoReceivedBitrate;//杩滅瑙嗛浼犺緭鐮佺巼锛堜笅琛岋級
+@property (nonatomic, assign) uint32_t videoReceivedFrameRate;//杩滅甯х巼澶у皬
+@property (nonatomic, assign) uint16_t videoPacketLossRate;//杩滅瑙嗛涓㈠寘鐜�(涓嬭)
+@property (nonatomic, assign) uint16_t videoTotalFrozenTime;//杩滅瑙嗛鎬荤殑鍗¢】鏃堕暱
+@property (nonatomic, assign) uint16_t videoFrozenRate; //杩滅瑙嗛鍗¢】姣�
+@property (nonatomic, assign) uint16_t streamType; //杩滅娴佺被鍨�
+///闊抽鎸囨爣鍙傛暟
+@property (nonatomic, assign) uint32_t audioClientId; //杩滅闊抽clientId
+@property (nonatomic, assign) uint32_t audioReceivedBitrate;//杩滅闊抽浼犺緭鐮佺巼锛堜笅琛岋級
+@property (nonatomic, assign) uint16_t audioPacketLossRate;//杩滅闊抽涓㈠寘鐜�(涓嬭)
+@property (nonatomic, assign) uint16_t audioTotalFrozenTime;//杩滅闊抽鎬荤殑鍗¢】鏃堕暱
+@property (nonatomic, assign) uint16_t audioFrozenRate; //杩滅闊抽鍗¢】姣�
+
+@end
+
+@interface EZRTCVideoSize : NSObject
+
+@property (nonatomic, assign) int width;//瀹�
+@property (nonatomic, assign) int height;//楂�
+
+@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 EZBAVMessageStatistic;
+
+extern int32_t const EZBAVForcedQuitReasonRepeatJoin;//宸插湪鍏朵粬鍦版柟鍔犲叆鎴块棿
+extern int32_t const EZBAVForcedQuitReasonMovedOut;//琚鐞嗗憳绉诲嚭鎴块棿
+extern int32_t const EZBAVForcedQuitReasonRoomDissolved;//鎴块棿瑙f暎
+
+extern int32_t const  EZBAVMessageLocalVideoStats;//缁熻鏈湴瑙嗛瀹炴椂鏁版嵁
+extern int32_t const  EZBAVMessageLocalAudioStats;//缁熻鏈湴闊抽瀹炴椂鏁版嵁
+extern int32_t const  EZBAVMessageRemoteVideoStats;//缁熻杩滅瑙嗛瀹炴椂鏁版嵁
+extern int32_t const  EZBAVMessageRemoteAudioStats;//缁熻杩滅闊抽瀹炴椂鏁版嵁
+
+
+
+typedef void(^EZAudioOpenResultBlock)(NSInteger ret);
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZCameraInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZCameraInfo.h
new file mode 100644
index 0000000..9054b1e
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZCameraInfo.h
@@ -0,0 +1,35 @@
+//
+//  EZCameraInfo.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/9/15.
+//  Copyright (c) 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓洪�氶亾淇℃伅瀵硅薄
+@interface EZCameraInfo : NSObject
+
+/// 鎽勫儚澶村悕绉�
+@property (nonatomic, copy) NSString *cameraName;
+/// 閫氶亾鍙�
+@property (nonatomic) NSInteger cameraNo;
+/// 璁惧搴忓垪鍙�
+@property (nonatomic, copy) NSString *deviceSerial;
+/// 鍒嗕韩鐘舵�侊細0銆佹湭鍒嗕韩锛�1銆佸垎浜墍鏈夎�咃紝2銆佸垎浜帴鍙楄�咃紙琛ㄧず姝ゆ憚鍍忓ご鏄埆浜哄垎浜粰鎴戠殑锛�
+@property (nonatomic) NSInteger isShared;
+/// 閫氶亾灏侀潰
+@property (nonatomic, copy) NSString *cameraCover;
+/// 瑙嗛璐ㄩ噺锛�0-娴佺晠锛�1-鍧囪 锛�2-楂樻竻锛�3-瓒呮竻
+@property (nonatomic) NSInteger videoLevel;
+//鏉冮檺
+@property (nonatomic) NSInteger permission;
+/// 閫氶亾鏀寔鐨勬竻鏅板害淇℃伅鍒楄〃锛孍ZVideoQualityInfo瀵硅薄鍒楄〃銆�(/api/device/list 杩斿洖鐨�"videoQualityInfos" 鏈夎锛屼互/api/device/detail 鎺ュ彛杩斿洖涓哄噯)
+@property (nonatomic, strong) NSArray *videoQualityInfos;
+
+/// 璁惧鏄惁寮�鍚姞瀵�
+@property (nonatomic) BOOL isEncrypt;
+/// 璁惧鐘舵�侊紝1-鍦ㄧ嚎锛�2-涓嶅湪绾�
+@property (nonatomic) NSInteger status;
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZCloudRecordDownloadTask.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZCloudRecordDownloadTask.h
new file mode 100644
index 0000000..174ee40
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZCloudRecordDownloadTask.h
@@ -0,0 +1,34 @@
+//
+//  EZCloudRecordDownloadTask.h
+//  EZOpenSDK
+//
+//  Created by yuqian on 2019/7/2.
+//  Copyright 漏 2019 Ezviz. All rights reserved.
+//
+
+#import "EZRecordDownloadTask.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class EZCloudRecordFile;
+
+@interface EZCloudRecordDownloadTask : EZRecordDownloadTask
+
+/**
+ 浜戝瓨鍌ㄥ綍鍍忎笅杞戒换鍔″垵濮嬪寲銆�
+ 涓嬭浇鐨勫綍鍍忎负PS鏂囦欢锛屽闇�杞崲MP4锛岃鑷璋冪敤EZVideoTransformer绫荤殑杞皝瑁呮柟娉�
+ 
+ @param taskID 涓嬭浇浠诲姟鍞竴鏍囪瘑ID
+ @param recordFile 浜戝瓨鍌ㄥ綍鍍忔枃浠�
+ @param verifyCode 璁惧楠岃瘉鐮�
+ @param savePath 涓嬭浇瀛樺偍璺緞
+ @return 鍒濆鍖栨垚鍔熻繑鍥炲疄渚嬶紝澶辫触杩斿洖nil
+ */
+- (instancetype) initTaskWithID:(NSUInteger)taskID
+                cloudRecordFile:(EZCloudRecordFile *)recordFile
+                     verifyCode:(NSString *)verifyCode
+                       savePath:(NSString *)savePath;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZCloudRecordFile.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZCloudRecordFile.h
new file mode 100644
index 0000000..f8c693f
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZCloudRecordFile.h
@@ -0,0 +1,36 @@
+//
+//  EZCloudFile.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/9/17.
+//  Copyright (c) 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓轰簯瀛樺偍褰曞儚鏂囦欢瀵硅薄
+@interface EZCloudRecordFile : NSObject
+
+/// 璁惧搴忓垪鍙�
+@property (nonatomic, copy) NSString *deviceSerial;
+/// 璁惧閫氶亾鍙�
+@property (nonatomic, assign) NSInteger cameraNo;
+/// 浜戝瓨鍌ㄥ綍鍍忔枃浠禝d
+@property (nonatomic, copy) NSString *fileId;
+/// 浜戝瓨鍌ㄥ綍鍍忔枃浠跺紑濮嬫椂闂�
+@property (nonatomic, strong) NSDate *startTime;
+/// 浜戝瓨鍌ㄥ綍鍍忔枃浠剁粨鏉熸椂闂�
+@property (nonatomic, strong) NSDate *stopTime;
+/// 浜戝瓨鍌ㄥ綍鍍忔埅鍥惧湴鍧�
+@property (nonatomic, copy) NSString *coverPic;
+/// 浜戝瓨鍌ㄥ綍鍍忎笅杞藉湴鍧�
+@property (nonatomic, copy) NSString *downloadPath;
+/// 浜戝瓨鍌ㄥ浘鐗囧姞瀵嗗瘑鐮侊紝濡傛灉鏄痆NSNull null]鎴栬�卬il鎸囬拡鍒欏浘鐗囦笉鍔犲瘑
+@property (nonatomic, copy) NSString *encryption;
+/// 鏂囦欢澶у皬
+@property (nonatomic, assign) NSUInteger fileSize;
+
+@property (nonatomic, assign) int32_t istorageVersion; //浜戝瓨鍌ㄧ被鍒�:1 鍗曟枃浠跺瓨鍌ㄦā寮忥紱2 杩炵画瀛樺偍妯″紡锛�3 寰呭畾
+@property (nonatomic, assign) int32_t videoType;//浜戝瓨鍌ㄥ綍鍍忕被鍨嬶紝榛樿涓�0锛岃〃绀轰笉灞炰簬浜戝瓨鍌ㄥ綍鍍�
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConferenceClient.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConferenceClient.h
new file mode 100644
index 0000000..43d478e
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConferenceClient.h
@@ -0,0 +1,238 @@
+//
+//  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 "EZRTCMediaSessionDefines.h"
+#import "EZVideoTalkView.h"
+
+
+
+@class EZConferenceClient;
+@class EZRTCCameraParam;
+@class EZRTCVideoEncodeParam;
+
+@protocol EZConferenceClientDelegate<NSObject>
+
+
+/// 閿欒鍥炶皟
+/// @param client client
+/// @param errorCode 鍑洪敊鐨勯敊璇爜
+- (void)bavClient:(EZConferenceClient *)client didReceivedError:(int32_t)errorCode;
+
+/**
+ 鍥炶皟娑堟伅
+
+ @param client client
+ @param messageCode 娑堟伅鐮� 鍙傝EZBAVMessage
+ @param msg 闄勫姞淇℃伅锛�
+    濡傛灉鏄疎ZBAVMessagePeerEnteredRoom锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄锛屼絾鏄彧鏈塵_uClientId銆乵_szUserName瀛楁鏈夋晥
+    濡傛灉鏄疎ZBAVMessagePeerLeaveRoom娑堟伅锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄锛屼絾鏄彧鏈塵_uClientId瀛楁鏈夋晥
+    濡傛灉鏄疎ZBAVMessageClientVolume娑堟伅锛宮sg鏄疎ZBAVParticipantVolume瀵硅薄
+    濡傛灉娑堟伅鏄� EZBAVMessageTransferData msg鏄� msg鏄瓧绗︿覆 @"瀹為檯鐨勯�忎紶娑堟伅"
+    濡傛灉娑堟伅鏄疎ZBAVMessageClientAudioAvailable锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄锛屼絾鏄彧鏈塵_uClientId鍜宎udioState瀛楁鏈夋晥
+    濡傛灉娑堟伅鏄疎ZBAVMessageClientVideoAvailable 锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄锛屼絾鏄彧鏈塵_uClientId鍜寁ideoState瀛楁鏈夋晥
+    濡傛灉娑堟伅鏄疎ZBAVMessageNetworkQuality 锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄锛屼絾鏄彧鏈塵_uClientId鍜宯etState瀛楁鏈夋晥
+    濡傛灉娑堟伅鏄疎ZBAVMessageJoinRoomOK 锛宮sg鏄痭il
+    濡傛灉娑堟伅鏄疎ZBAVMessageForcedQuit 锛宮sg鏄疦SNumber锛屾瘮濡侤(EZBAVForcedQuitReasonMovedOut)
+    濡傛灉娑堟伅鏄疎ZBAVMessageStatistic锛宮sg鏄疎ZRTCStatistic
+ 
+ */
+- (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;
+
+/**
+ 鏈湴瑙嗛鏁版嵁鍥炶皟
+ 
+ @param localVideoStatistics 瑙嗛鐩稿叧鍙傛暟
+ @param width    瀹藉害
+ @param height  楂樺害
+ */
+- (void)onLocalVideoStats:(EZRTCLocalStatistics *)localVideoStatistics width:(int)width height:(int)height;
+
+/**
+ 鏈湴闊抽鏁版嵁鍥炶皟
+ 
+ @param localAudioStatistics 闊抽鐩稿叧鍙傛暟
+ */
+- (void)onLocalAudioStats:(EZRTCLocalStatistics *)localAudioStatistics;
+
+/**
+ 杩滅瑙嗛鏁版嵁鍥炶皟
+ 
+ @param remoteVideoStatistics 瑙嗛鐩稿叧鍙傛暟
+ @param width    瀹藉害
+ @param height  楂樺害
+ */
+- (void)onRemoteVideoStats:(EZRTCRemoteStatistics *)remoteVideoStatistics width:(int)width height:(int)height;
+
+/**
+ 杩滅闊抽鏁版嵁鍥炶皟
+ 
+ @param remoteAudioStatistics 闊抽鐩稿叧鍙傛暟
+ */
+- (void)onRemoteAudioStats:(EZRTCRemoteStatistics *)remoteAudioStatistics;
+
+
+@end
+
+@interface EZConferenceClient : NSObject
+
+@property (nonatomic, weak) id<EZConferenceClientDelegate> delegate;
+@property (nonatomic, assign, readonly) int32_t roomID;
+@property (nonatomic, assign, readonly) int32_t clientID;
+
+
+/**
+ 瀵硅鏃讹紝寮哄埗閲囩敤鎵0鍣ㄦ挱鏀惧0闊筹紝榛樿涓篩ES
+ */
+@property (nonatomic, assign) BOOL forceToSpeaker;
+
+
+/// 鍒濆鍖栬棰戦�氳瘽SDK瀵硅薄
+- (instancetype)init;
+
+/// 鍔犲叆浼氳锛堟柊鎺ュ彛锛�
+/// @param param 鍙傛暟
+- (NSInteger)enterRoom:(EZRTCJoinParam *)param;
+
+
+/// 閫�鍑轰細璁�
+- (NSInteger)exitRoom;
+
+
+/// 瑙f暎浼氳锛岃В鏁e悗锛屽叾浠栦笌浼氳�呬細鏀跺埌浼氳琚В鏁f秷鎭�
+- (void)dissolveRoom;
+
+/// 鏈湴鎽勫儚澶村紑鍚�/鍏抽棴鎺ュ彛
+/// @param enable 鏄惁寮�鍚憚鍍忓ご
+- (NSInteger)enableLocalVideo:(BOOL)enable;
+
+/// 璁剧疆鏈湴鐨勯瑙堢獥鍙�
+/// @param localWin 绐楀彛window
+- (void)setLocalView:(nullable EZVideoTalkView *)localWin;
+
+/// 鏈湴楹﹀厠椋庡紑鍚�/鍏抽棴鎺ュ彛
+/// @param enable 鏄惁寮�鍚害鍏嬮
+/// @param block 涓荤嚎绋嬪洖璋冪粨鏋�
+- (void)enableLocalAudio:(BOOL)enable withResultBlock:(EZAudioOpenResultBlock)block;
+
+/// 鏄惁寮�鍚緟娴侊紝杈呮祦鍒嗚鲸鐜囨洿浣庛�佺爜鐜囨洿灏�
+/// @param enable 鏄惁寮�鍚�
+/// @param encodeParam 缂栫爜鍙傛暟锛屽彲浠ヤ紶鍏il
+- (NSInteger)enableLocalSmallVideo:(BOOL)enable;
+
+
+/// 寮�鍚睆骞曞叡浜�
+/// @param name 鍏变韩鍚嶇О
+/// @param resultBlock 灞忓箷鍏变韩缁撴灉鍥炶皟
+/// @param didFinishBlock 灞忓箷鍏变韩缁撴潫鍥炶皟锛屽湪姝e父鐨勫睆骞曞叡浜粨鏉熺粨鏉熷悗鍥炶皟
+- (void)startScreenShareWithName:(NSString *)name
+                 withResultBlock:(EZScreenShareResultBlock)resultBlock
+                   andEndedBlock:(dispatch_block_t)didFinishBlock;
+
+
+/// 缁撴潫灞忓箷鍏变韩
+- (void)stopScreenShare;
+
+
+/// 璁剧疆杩滅▼绐楀彛锛�1.蹇呴』鍦ㄦ嬁鍒拌繙绔鎴风鍔犲叆鐨勬秷鎭悗璁剧疆锛�2.蹇呴』鍦ㄤ富绾跨▼璋冪敤
+/// @param window 鎾斁绐楀彛
+/// @param clientID 鍔犲叆鐨勫鎴风鐨処D
+/// @param streamType 1瑙嗛 4灏忔祦
+- (int32_t)setRemoteView:(nullable UIView *)window ofClient:(int32_t)clientID withStream:(NSInteger)streamType;
+
+/// 璁剧疆瑙傜湅灞忓箷鍏变韩鐨勭獥鍙�,蹇呴』鍦ㄤ富绾跨▼璋冪敤
+/// @param view 绐楀彛
+- (int32_t)setScreenShareView:(UIView *_Nullable)view;
+
+
+/// 閭�璇疯澶囧姞鍏ヤ細璁�
+/// @param dev 璁惧淇℃伅
+- (int32_t)inviteDev:(EZBAVDevInfo *_Nonnull)dev;
+
+
+/// 鍒囨崲瀵硅鏃朵娇鐢ㄧ殑鎽勫儚澶达紝榛樿閲囩敤鍓嶇疆 鍚屾鎺ュ彛
+/// @param backCameraSelected YES:閫夋嫨鍚庣疆锛孨O:閫夋嫨鍓嶇疆
+- (int32_t)switchCamera:(BOOL)backCameraSelected;
+
+
+- (EZRTCStatistic *_Nullable)getStatistic;
+
+#pragma 闄勫姞鎺ュ彛
+
+/// 寮�鍏充細璁腑鏌愪釜涓庝細鑰呯殑澹伴煶锛岄粯璁ゅ紑
+/// @param open YES:寮�锛孨O:鍏�
+- (int32_t)soundCtrl:(BOOL)open forClient:(int32_t)clientID;
+
+
+
+/// 寮傛鑾峰彇鏈湴鎶撳浘
+/// @param block 鎶撳浘鎴愬姛鍥炶皟锛屽け璐mage涓簄il
+//- (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;
+
+
+/// 鍙戦�侀�忎紶娑堟伅鎺ュ彛锛屽悓姝ユ帴鍙o紝鍙兘鑰楁椂
+/// @param msg 娑堟伅鍐呭锛屾瘮濡俲son鏁版嵁
+- (int)sendTransferMsg:(NSString *)msg;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConfigTokenInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConfigTokenInfo.h
new file mode 100644
index 0000000..9b9a949
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConfigTokenInfo.h
@@ -0,0 +1,21 @@
+//
+//  EZConfigTokenInfo.h
+//  EZWiFiConfigSDK
+//
+//  Created by yuqian on 2020/7/30.
+//  Copyright 漏 2020 com.ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZConfigTokenInfo : NSObject
+
+@property (nonatomic, copy) NSString *userId;
+@property (nonatomic, copy) NSString *token;
+@property (nonatomic, copy) NSString *lbsDomain;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConstants.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConstants.h
new file mode 100644
index 0000000..edc3b24
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConstants.h
@@ -0,0 +1,222 @@
+//
+//  EZConstants.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 16/7/20.
+//  Copyright 漏 2016骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+//钀ょ煶寮�鏀惧钩鍙板鎵樻柟娉�
+@protocol EZOpenSDKDelegate <NSObject>
+
+@optional
+
+/**
+ 钀ょ煶鐧诲綍鏄惁鎴愬姛
+ 
+ @param result 鏄惁鎴愬姛
+ */
+- (void)ezvizLoginResult:(BOOL)result;
+
+@end
+
+/* EZOpenSDK鐨勯敊璇畾涔� */
+typedef NS_ENUM(NSInteger, EZErrorCode) {
+    /**
+     *  瀵硅閿欒鐮�
+     */
+    EZ_DEVICE_TTS_REQUEST_TIMEOUT = 360001,           //瀹㈡埛绔姹傝秴鏃�
+    EZ_DEVICE_TTS_TALKING_TIMEOUT = 360002,           //瀵硅鍙戣捣瓒呮椂
+    EZ_DEVICE_TTS_DEVICE_CONNECT_ERROR = 360003,      //TTS鐨勮澶囩鍙戠敓閿欒
+    EZ_DEVICE_TTS_INTER_ERROR = 360004,               //TTS鍐呴儴鍙戠敓閿欒
+    EZ_DEVICE_TTS_SEND_ERROR = 360005,                //瀹㈡埛绔彂閫佺殑娑堟伅閿欒
+    EZ_DEVICE_TTS_RECEIVE_ERROR = 360006,             //瀹㈡埛绔帴鏀跺彂鐢熼敊璇�
+    EZ_DEVICE_TTS_CLOSE_CONNECT = 360007,             //TTS鍏抽棴浜嗕笌瀹㈡埛绔殑杩炴帴
+    EZ_DEVICE_TTS_TALKING = 360010,                   //璁惧姝e湪瀵硅涓�
+    EZ_DEVICE_TTS_PRIVACY_PROTECT = 360013,           //璁惧寮�鍚簡闅愮淇濇姢
+    EZ_DEVICE_TTS_INIT_ERROR = 360102,                //TTS鍒濆鍖栧け璐�
+    
+    
+    /**
+     *  鍙栨祦閿欒鐮�
+     */
+    EZ_DEVICE_IS_PRIVACY_PROTECTING = 380011,         //璁惧闅愮淇濇姢涓�
+    EZ_DEVICE_CONNECT_COUNT_LIMIT = 380045,           //璁惧鐩磋繛鍙栨祦杩炴帴鏁伴噺杩囧ぇ
+    EZ_DEVICE_COMMAND_NOT_SUPPORT = 380047,           //璁惧涓嶆敮鎸佽鍛戒护
+    EZ_DEVICE_CAS_TALKING = 380077,                   //璁惧姝e湪瀵硅涓�
+    EZ_DEVICE_CAS_REC_ERROR = 380102,                 //鏁版嵁鎺ユ敹寮傚父
+    EZ_DEVICE_CAS_PARSE_ERROR = 380205,               //璁惧妫�娴嬪叆鍙傚紓甯�
+    EZ_PLAY_TIMEOUT = 380209,                         //缃戠粶杩炴帴瓒呮椂
+    EZ_DEVICE_TIMEOUT = 380212,                       //璁惧绔綉缁滆繛鎺ヨ秴鏃�
+    EZ_STREAM_CLIENT_TIMEOUT = 390038,                //鍚屾椂`390037`鎵嬫満缃戠粶寮曡捣鐨勫彇娴佽秴鏃�
+    EZ_STREAM_CLIENT_NOT_FIND_FILE = 395402,          //鍥炴斁鎵句笉鍒板綍鍍忔枃浠讹紝妫�鏌ヤ紶鍏ョ殑鍥炴斁鏂囦欢鏄惁姝g‘
+    EZ_STREAM_CLIENT_OFFLINE = 395404,                //璁惧涓嶅湪绾�
+    EZ_STREAM_CLIENT_TOKEN_INVALID = 395406,          //鍙栨祦token楠岃瘉澶辨晥
+    EZ_STREAM_CLIENT_PRIVACY_PROTECT = 395409,        //棰勮寮�鍚殣绉佷繚鎶�,鍙互鍦ㄨ悿鐭充簯APP涓叧闂�
+    EZ_STREAM_CLIENT_DEVICE_COUNT_LIMIT = 395410,     //璁惧杩炴帴鏁拌繃澶�,鏈夎繃澶氱殑缁堢姝e湪瀵硅璁惧杩涜鍙栨祦鎿嶄綔
+    EZ_STREAM_CLIENT_TOKEN_LIMIT  = 395411,           //token鏃犳潈闄�
+    EZ_STREAM_CLIENT_CAMERANO_ERROR = 395415,         //璁惧閫氶亾閿�
+    EZ_STREAM_CLIENT_TYPE_UNSUPPORT = 395451,         //璁惧涓嶆敮鎸佺殑鐮佹祦绫诲瀷
+    EZ_STREAM_CLIENT_CONNECT_SERVER_ERROR = 395452,   //璁惧杩炴帴棰勮娴佸獟浣撴湇鍔″櫒澶辫触
+    EZ_STREAM_CLIENT_SESSION_NOT_EXIST = 395454,      //浼氳瘽涓嶅瓨鍦�
+    EZ_STREAM_CLIENT_SAME_REQUEST = 395491,           //鐩稿悓璇锋眰姝e湪澶勭悊锛屾嫆缁濇湰娆″鐞�
+    EZ_STREAM_CLIENT_INNER_ERROR = 395500,            //娴佸獟浣撴湇鍔″櫒鍐呴儴澶勭悊閿欒
+    EZ_STREAM_CLIENT_NO_SOURCE = 395544,              //璁惧杩斿洖鏃犺棰戞簮
+    EZ_STREAM_CLIENT_VIDEO_OUT_SHARE_TIME = 395545,   //瑙嗛鍒嗕韩鏃堕棿宸茬粡缁撴潫
+    EZ_STREAM_CLIENT_LIMIT = 395546,                  //璁惧鍙栨祦鍙楀埌闄愬埗锛屽崌绾т紒涓氱増鍙斁寮�闄愬埗
+    EZ_STREAM_CLIENT_DEVICE_OUT_SHARE_TIME = 395600,  //鍒嗕韩璁惧涓嶅湪鍒嗕韩鏃堕棿鍐�
+    
+    /**
+     *  HTTP 閿欒鐮�
+     */
+    EZ_HTTPS_PARAM_ERROR = 110001,                    //璇锋眰鍙傛暟閿欒
+    EZ_HTTPS_ACCESS_TOKEN_INVALID = 110002,           //AccessToken鏃犳晥
+    EZ_HTTPS_ACCESS_TOKEN_EXPIRE = 110003,            //AccessToken杩囨湡
+    EZ_HTTPS_REGIST_USER_NOT_EXSIT = 110004,          //娉ㄥ唽鐢ㄦ埛涓嶅瓨鍦�
+    EZ_HTTPS_APPKEY_ERROR = 110005,                   //AppKey寮傚父
+    EZ_HTTPS_IP_LIMIT = 110006,                       //ip鍙楅檺
+    EZ_HTTPS_INVOKE_LIMIT = 110007,                   //璋冪敤娆℃暟杈惧埌涓婇檺
+    EZ_HTTPS_USER_BINDED = 110012,                    //绗笁鏂硅处鎴蜂笌钀ょ煶璐﹀彿宸茬粡缁戝畾
+    EZ_HTTPS_APPKEY_IS_NULL = 110017,                 //AppKey涓嶅瓨鍦�
+    EZ_HTTPS_APPKEY_NOT_MATCHED = 110018,             //AppKey涓嶅尮閰嶏紝璇锋鏌ユ湇鍔$璁剧疆鐨刟ppKey鏄惁鍜孲DK浣跨敤鐨刟ppKey涓�鑷�
+    EZ_HTTPS_CAMERA_NOT_EXISTS = 120001,              //閫氶亾涓嶅瓨鍦紝璇锋鏌ユ憚鍍忓ご璁惧鏄惁閲嶆柊娣诲姞杩�
+    EZ_HTTPS_DEVICE_NOT_EXISTS = 120002,              //璁惧涓嶅瓨鍦�
+    EZ_HTTPS_DEVICE_NETWORK_ANOMALY = 120006,         //缃戠粶寮傚父
+    EZ_HTTPS_DEVICE_OFFLINE = 120007,                 //璁惧涓嶅湪绾�
+    EZ_HTTPS_DEIVCE_RESPONSE_TIMEOUT = 120008,        //璁惧璇锋眰鍝嶅簲瓒呮椂寮傚父
+    EZ_HTTPS_DEVICE_VALICATECODE_ERROR = 120010,      //璁惧楠岃瘉鐮侀敊璇�
+    EZ_HTTPS_ILLEGAL_DEVICE_SERIAL = 120014,          //涓嶅悎娉曠殑搴忓垪鍙�
+    EZ_HTTPS_DEVICE_STORAGE_FORMATTING = 120016,      //璁惧姝e湪鏍煎紡鍖栫鐩�
+    EZ_HTTPS_DEVICE_ADDED_MYSELF = 120017,            //鍚宍120020`璁惧宸茬粡琚嚜宸辨坊鍔�
+    EZ_HTTPS_USER_NOT_OWN_THIS_DEVICE = 120018,       //璇ョ敤鎴蜂笉鎷ユ湁璇ヨ澶�
+    EZ_HTTPS_DEVICE_UNSUPPORT_CLOUD = 120019,         //璁惧涓嶆敮鎸佷簯瀛樺偍鏈嶅姟
+    EZ_HTTPS_DEVICE_ONLINE_ADDED = 120020,            //璁惧鍦ㄧ嚎锛岃鑷繁娣诲姞
+    EZ_HTTPS_DEVICE_ONLINE_NOT_ADDED = 120021,        //璁惧鍦ㄧ嚎锛屾湭琚敤鎴锋坊鍔�
+    EZ_HTTPS_DEVICE_ONLINE_IS_ADDED = 120022,         //璁惧鍦ㄧ嚎锛屽凡缁忚鍒殑鐢ㄦ埛娣诲姞
+    EZ_HTTPS_DEVICE_OFFLINE_NOT_ADDED = 120023,       //璁惧涓嶅湪绾匡紝鏈鐢ㄦ埛娣诲姞
+    EZ_HTTPS_DEVICE_OFFLINE_IS_ADDED = 120024,        //璁惧涓嶅湪绾匡紝宸茬粡琚埆鐨勭敤鎴锋坊鍔�
+    EZ_HTTPS_DEVICE_OFFLINE_IS_ADDED_MYSELF = 120029, //璁惧涓嶅湪绾匡紝浣嗘槸宸茬粡琚嚜宸辨坊鍔�
+    EZ_HTTPS_DEVICE_BUNDEL_STATUS_ON = 120031,        //鍚屾椂`106002`閿欒鐮佷篃鏄紝璁惧寮�鍚簡缁堢缁戝畾锛岃鍒拌悿鐭充簯瀹㈡埛绔叧闂粓绔粦瀹�
+    EZ_HTTPS_OPERATE_LEAVE_MSG_FAIL = 120202,         //鎿嶄綔鐣欒█娑堟伅澶辫触
+    EZ_HTTPS_SERVER_DATA_ERROR = 149999,              //鏁版嵁寮傚父
+    EZ_HTTPS_SERVER_ERROR = 150000,                   //鏈嶅姟鍣ㄥ紓甯�
+    EZ_HTTPS_CLOUD_DELETE_ALL_EXCEPT_LAST = 150002,   //浜戝瓨鍌ㄨ棰戝垹闄ゅ畬鎴愶紝闄や簡鏈�鍚庝竴涓湪褰曞埗鐨勮棰戞棤娉曞垹闄�
+    EZ_HTTPS_DEVICE_PTZ_NOT_SUPPORT = 160000,         //璁惧涓嶆敮鎸佷簯鍙版帶鍒�
+    EZ_HTTPS_DEVICE_PTZ_NO_PERMISSION = 160001,       //鐢ㄦ埛娌℃湁鏉冮檺鎿嶄綔浜戝彴鎺у埗
+    EZ_HTTPS_DEVICE_PTZ_UPPER_LIMIT = 160002,         //浜戝彴杈惧埌涓婇檺浣嶏紙椤堕儴锛�
+    EZ_HTTPS_DEVICE_PTZ_FLOOR_LIMIT = 160003,         //浜戝彴杈惧埌涓嬮檺浣嶏紙搴曢儴锛�
+    EZ_HTTPS_DEVICE_PTZ_LEFT_LIMIT = 160004,          //浜戝彴杈惧埌宸﹂檺浣嶏紙鏈�宸﹁竟锛�
+    EZ_HTTPS_DEVICE_PTZ_RIGHT_LIMIT = 160005,         //浜戝彴杈惧埌鍙抽檺浣嶏紙鏈�鍙宠竟锛�
+    EZ_HTTPS_DEVICE_PTZ_FAILED = 160006,              //浜戝彴鎿嶄綔澶辫触
+    EZ_HTTPS_DEVICE_PTZ_RESETING = 160009,            //浜戝彴姝e湪璋冪敤棰勭疆鐐�
+    EZ_HTTPS_DEVICE_COMMAND_NOT_SUPPORT = 160020,     //璁惧鎶撳浘澶辫触锛屼笉鏀寔鎶撳浘
+    
+    /**
+     *  鎺ュ彛 閿欒鐮�(SDK鏈湴鏍¢獙)
+     */
+    EZ_SDK_PARAM_ERROR = 400002,                      //鎺ュ彛鍙傛暟閿欒
+    EZ_SDK_NOT_SUPPORT_TALK = 400025,                 //璁惧涓嶆敮鎸佸璁�
+    EZ_SDK_TIMEOUT = 400034,                          //鏃犳挱鏀総oken锛岃stop鍐峴tart鎾斁鍣�
+    EZ_SDK_NEED_VALIDATECODE = 400035,                //闇�瑕佽澶囬獙璇佺爜
+    EZ_SDK_VALIDATECODE_NOT_MATCH = 400036,           //璁惧楠岃瘉鐮佷笉鍖归厤
+    EZ_SDK_DECODE_TIMEOUT = 400041,                   //瑙g爜瓒呮椂锛屽彲鑳芥槸楠岃瘉鐮侀敊璇�
+    EZ_SDK_STREAM_TIMEOUT = 400015,                   //鍙栨祦瓒呮椂,璇锋鏌ユ墜鏈虹綉缁�
+    EZ_SDK_PLAYBACK_STREAM_TIMEOUT = 400409,          //鍥炴斁鍙栨祦瓒呮椂,璇锋鏌ユ墜鏈虹綉缁�
+    
+    /**
+     *  NPC鍙栨祦閿欒鐮�
+     */
+    EZ_NPC_CLIENT_PARAMETER_ERROR = 500001,           //鍙傛暟閿欒
+    EZ_NPC_CLIENT_ORDER_ERROR = 500002,               //璋冪敤椤哄簭鍑洪敊
+    EZ_NPC_CLIENT_MEMORY_ERROR = 500003,              //鍒嗛厤鍐呭瓨澶辫触
+    EZ_NPC_CLIENT_BUFFER_OVERFLOW_ERROR = 500004,     //缂撳啿鍖烘孩鍑�
+    EZ_NPC_CLIENT_SYSTEM_NO_SUPPORT_ERROR = 500005,   //绯荤粺涓嶆敮鎸�
+    EZ_NPC_CLIENT_INVALID_PORT_ERROR = 500006,        //鏃犳晥绔彛
+    EZ_NPC_CLIENT_STREAM_CLOSE_ERROR = 500101,        //娴佸叧闂�
+    EZ_NPC_CLIENT_TRACK_CLOSE_ERROR = 500102,         //TRACK_CLOSE
+    EZ_NPC_CLIENT_NPCCREATE_ERROR = 500103,           //鍒涘缓澶辫触
+    EZ_NPC_CLIENT_TRSCREATE_ERROR = 500104,           //TRSCREATE_ERROR
+    EZ_NPC_CLIENT_FAIL_UNKNOWN_ERROR = 509999,        //FAIL_UNKNOWN
+};
+
+/* 璁惧ptz鍛戒护锛屽畾涔夌殑鍊间笌Android瀹氫箟鐨勪笉涓�鏍凤紝SDK浼氬湪鍐呴儴浼氬仛涓�灞傝浆鎹� */
+typedef NS_OPTIONS(NSUInteger, EZPTZCommand) {
+    EZPTZCommandLeft            = 1 << 0, //鍚戝乏鏃嬭浆
+    EZPTZCommandRight           = 1 << 1, //鍚戝彸鏃嬭浆
+    EZPTZCommandUp              = 1 << 2, //鍚戜笂鏃嬭浆
+    EZPTZCommandDown            = 1 << 3, //鍚戜笅鏃嬭浆
+    EZPTZCommandZoomIn          = 1 << 4, //闀滃ご鎷夎繘
+    EZPTZCommandZoomOut         = 1 << 5, //闀滃ご鎷夎繙
+};
+
+/*
+ * 璁惧鏄剧ず鍛戒护
+ */
+typedef NS_OPTIONS(NSUInteger, EZDisplayCommand) {
+    EZDisplayCommandCenter          = 1 << 0, //鏄剧ず涓棿
+};
+
+/**
+ *  璁惧ptz鍔ㄤ綔鍛戒护
+ */
+typedef NS_ENUM(NSInteger, EZPTZAction) {
+    EZPTZActionStart = 1, //ptz寮�濮�
+    EZPTZActionStop = 2   //ptz鍋滄
+};
+
+/* 娑堟伅鐘舵�� */
+typedef NS_ENUM(NSInteger, EZMessageStatus) {
+    EZMessageStatusRead = 1,    //宸茶
+};
+
+/* 娑堟伅绫诲瀷 */
+typedef NS_ENUM(NSInteger, EZMessageType)
+{
+    EZMessageTypeAlarm = 1,   //鍛婅绫诲瀷
+    EZMessageTypeLeave,       //鐣欒█绫诲瀷
+};
+
+/* 鐣欒█娑堟伅绫诲瀷 */
+typedef NS_ENUM(NSInteger, EZLeaveMessageType)
+{
+    EZLeaveMessageTypeAll,    //鍏ㄩ儴
+    EZLeaveMessageTypeVoice,  //璇煶绫�
+    EZLeaveMessageTypeVideo,  //瑙嗛绫�
+};
+
+/* 璁惧甯冮槻鐘舵�佹灇涓剧被鍨� */
+typedef NS_ENUM(NSInteger, EZDefenceStatus) {
+    EZDefenceStatusOffOrSleep     = 0,  //A1璁惧鐫$湢妯″紡鎴栬�呴潪A1璁惧鐨勬挙闃茬姸鎬�
+    EZDefenceStatusOn             = 1,  //闈濧1璁惧鐨勫竷闃茬姸鎬�
+    EZDefenceStatusAtHome         = 8,  //A1鍦ㄥ妯″紡
+    EZDefenceStatusOuter          = 16, //A1澶栧嚭妯″紡
+};
+
+/* 閫氶亾娓呮櫚搴︼紝璇锋敞鎰忎笉鏄墍鏈夎澶囬兘鏈夎繖浜涙竻鏅板害鐨勶紝璇锋牴鎹疄闄呭満鏅娇鐢� */
+typedef NS_ENUM(NSInteger, EZVideoLevelType) {
+    EZVideoLevelLow       = 0,  //娴佺晠
+    EZVideoLevelMiddle    = 1,  //鍧囪 
+    EZVideoLevelHigh      = 2,  //楂樻竻
+    EZVideoLevelSuperHigh = 3   //瓒呮竻
+};
+
+/* 褰曞儚绫诲瀷 */
+typedef NS_ENUM(NSUInteger, EZVideoRecordType) {
+    EZVideoRecordTypeAll,     // 鎵�鏈夌被鍨�
+    EZVideoRecordTypeCMR,     // 瀹氭椂褰曞儚
+    EZVideoRecordTypeEvent    // 浜嬩欢绫诲瀷
+};
+
+/* 浜戝瓨鍌ㄥ綍鍍忕被鍨� */
+typedef NS_ENUM(NSInteger, EZCloudVideoType) {
+    EZCloudVideoTypeAll = -1,   // 鍏ㄩ儴褰曞儚
+    EZCloudVideoTypeSeries = 1, // 杩炵画褰曞儚
+    EZCloudVideoTypeAct = 2     // 娲诲姩褰曞儚
+};
+
+/// 寮�鏀惧钩鍙板父閲忕被
+@interface EZConstants : NSObject
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConstants_Auth.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConstants_Auth.h
new file mode 100644
index 0000000..1d70767
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConstants_Auth.h
@@ -0,0 +1,52 @@
+//
+//  EZConstants_Auth.h
+//  Auth
+//
+//  Created by JuneCheng on 2022/5/18.
+//
+
+#import <Foundation/Foundation.h>
+
+// 钀ょ煶寮�鏀惧钩鍙板鎵樻柟娉�
+@protocol EZAuthSDKDelegate <NSObject>
+
+@optional
+
+/**
+ 钀ょ煶鐧诲綍鏄惁鎴愬姛
+ 
+ @param result 鏄惁鎴愬姛
+ */
+- (void)ezvizLoginResult:(BOOL)result;
+
+@end
+
+/* 钀ょ煶鐮斿彂鐨凙PP */
+typedef NS_ENUM(NSInteger, EZAppType) {
+    EZEzviz                 = 0,  // 钀ょ煶浜戣棰戝浗鍐呯増
+    EZEzvizInternational    = 1,  // 钀ょ煶浜戣棰戞捣澶栫増
+    EZHIKConnect            = 2,  // HIK-Connect
+};
+
+/* 钀ょ煶璐熻矗鐮斿彂鐨凙PP */
+typedef NS_ENUM(NSInteger, EZAppPageType) {
+    EZPageDeviceList        = 0,  // 璁惧鍒楄〃椤甸潰
+    EZPageAlarmList         = 1,  // 鍛婅娑堟伅鍒楄〃椤甸潰
+};
+
+///闇�瑕佽繘琛岄噸鏂扮櫥褰曠殑閫氱煡锛岃閫氱煡瑙﹀彂棰戠巼涓�5骞翠竴娆★紝闇�鍦⊿DK鍒濆鍖栫洃鍚�
+extern const NSNotificationName EZNeedReloginNotification;
+
+///閿欒瑙e喅鏂规KEY
+extern NSErrorUserInfoKey const EZErrorSolutionKey;
+
+///閿欒妯″潡閿欒鐮並EY
+extern NSErrorUserInfoKey const EZErrorModuleCodeKey;
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZConstants_Auth : NSObject
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConstants_WifiConfig.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConstants_WifiConfig.h
new file mode 100644
index 0000000..97dd69d
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZConstants_WifiConfig.h
@@ -0,0 +1,36 @@
+//
+//  EZConstants_WifiConfig.h
+//  WifiConfig
+//
+//  Created by JuneCheng on 2022/5/6.
+//
+
+#ifndef EZConstants_WifiConfig_h
+#define EZConstants_WifiConfig_h
+
+/* 閰嶇綉鏂瑰紡 */
+typedef NS_ENUM(NSInteger, EZWiFiConfigMode) {
+    EZWiFiConfigSmart        = 1 << 0,  // smart config
+    EZWiFiConfigWave         = 1 << 1,  // 澹版尝閰嶇綉
+};
+
+/* WiFi閰嶇疆璁惧鐘舵�� */
+typedef NS_ENUM(NSInteger, EZWifiConfigStatus) {
+    DEVICE_WIFI_CONNECTING = 1,   //璁惧姝e湪杩炴帴WiFi
+    DEVICE_WIFI_CONNECTED = 2,    //璁惧杩炴帴WiFi鎴愬姛  (宸插簾寮� v4.16.0)
+    DEVICE_PLATFORM_REGISTED = 3, //璁惧娉ㄥ唽骞冲彴鎴愬姛
+    DEVICE_ACCOUNT_BINDED = 4,    //璁惧宸茬粡缁戝畾璐︽埛  (宸插簾寮� v4.16.0)
+    DEVICE_WIFI_SENT_SUCCESS = 5, //鍚戣澶囧彂閫乄iFi淇℃伅鎴愬姛
+    DEVICE_WIFI_SENT_FAILED = 6,  //鍚戣澶囧彂閫乄iFi淇℃伅澶辫触
+    DEVICE_PLATFORM_REGIST_FAILED = 7, //璁惧娉ㄥ唽骞冲彴澶辫触锛岃疆璇�20娆★紝20娆℃湭鏌ヨ鍒拌澶囦笂绾胯涓烘敞鍐屽钩鍙板け璐�
+};
+
+/* New AP閰嶇綉璁惧鐘舵�� */
+typedef NS_ENUM(NSInteger, EZNewAPConfigStatus) {
+    EZNewAPConfigStatusConnectSuccess          = 104,    // 杩炴帴鎴愬姛
+    EZNewAPConfigStatusUnknow                  = 105,    // 鏈煡閿欒
+    EZNewAPConfigStatusPasswordError           = 106,    // 瀵嗙爜閿欒
+    EZNewAPConfigStatusNoAPFound               = 201,    // 鏈壘鍒皐ifi鐑偣
+};
+
+#endif /* EZConstants_WifiConfig_h */
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDetectorInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDetectorInfo.h
new file mode 100644
index 0000000..9dd71bc
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDetectorInfo.h
@@ -0,0 +1,41 @@
+//
+//  EZDetectorInfo.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 16/1/12.
+//  Copyright 漏 2016骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓烘帰娴嬪櫒淇℃伅瀵硅薄
+@interface EZDetectorInfo : NSObject
+
+/// 鎺㈡祴鍣ㄥ簭鍒楀彿
+@property (nonatomic, copy) NSString *detectorSerial;
+/// 鎺㈡祴鍣ㄧ姸鎬侊紝鎺㈡祴鍣ㄤ笌A1鏄惁杩為�氾細0-闈炶仈閫氾紝1-鑱旈��
+@property (nonatomic) NSInteger state;
+/// 鎺㈡祴鍣ㄧ被鍨�
+@property (nonatomic, copy) NSString *type;
+/// 鎺㈡祴鍣ㄥ悕绉�
+/*  V("V", "瑙嗛璁惧"), I("I", "鍛婅杈撳叆璁惧"), O("O", "鍛婅杈撳嚭璁惧"), PIR("PIR", "绾㈠鎺㈡祴鍣�"), FIRE("FIRE", "鐑熸劅鎺㈡祴鍣�"),MAGNETOMETER("MAGNETOMETER", "闂ㄧ浼犳劅鍣�"), GAS("GAS", "鍙噧姘斾綋"), WATERLOGGING("WATERLOGGING", "姘存蹈"),CALLHELP("CALLHELP", "绱ф�ユ寜閽�"), TELECONTROL("TELECONTROL", "閬ユ帶鍣�"), ALERTOR("ALERTOR", "鍛婅鍣�"),KEYBOARD("KEYBOARD", "閿洏"),CURTAIN("CURTAIN","骞曞笜"), MOVE_MAGNETOMETER("MOVE_MAGNETOMETER","鍗曚綋闂ㄧ")
+ */
+@property (nonatomic, copy) NSString *typeName;
+/// 鏂逛綅淇℃伅锛屽彲鐢ㄤ簬瀹㈡埛鑷畾涔夊悕绉�
+@property (nonatomic, copy) NSString *location;
+/// 闃插尯鏁呴殰鐘舵�侊紝0鎭㈠锛�1浜х敓
+@property (nonatomic) NSInteger faultZoneStatus;
+/// 鐢垫睜娆犲帇鐘舵�侊紝0鎭㈠锛�1浜х敓
+@property (nonatomic) NSInteger underVoltageStatus;
+/// 鏃犵嚎骞叉壈鐘舵�侊紝0鎭㈠锛�1浜х敓
+@property (nonatomic) NSInteger wirelessInterferenceStatus;
+/// 璁惧绂荤嚎鐘舵�侊紝0鎭㈠锛�1浜х敓
+@property (nonatomic) NSInteger offlineStatus;
+/// 鍦ㄥ妯″紡鏄惁寮�鍚�
+@property (nonatomic) BOOL atHomeEnable;
+/// 澶栧嚭妯″紡鏄惁寮�鍚�
+@property (nonatomic) BOOL outerEnable;
+/// 鐫$湢妯″紡鏄惁寮�鍚�
+@property (nonatomic) BOOL sleepEnable;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceCloudServiceInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceCloudServiceInfo.h
new file mode 100644
index 0000000..fffd93e
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceCloudServiceInfo.h
@@ -0,0 +1,65 @@
+//
+//  EZDeviceCloudServiceInfo.h
+//  EzvizOpenSDK
+//
+//  Created by JuneCheng on 2022/1/4.
+//  Copyright 漏 2022 Hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+@class EZCloudServicePackageInfo;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// 浜戝瓨鍌ㄨ澶囬�氶亾濂楅淇℃伅
+@interface EZDeviceCloudServiceInfo : NSObject
+
+@property (nonatomic, copy) NSString *ownerId;///< 璁惧鎵�灞炵敤鎴风敤鎴峰悕
+@property (nonatomic, copy) NSString *serial;///< 璁惧搴忓垪鍙�
+@property (nonatomic, assign) NSInteger channelNo;///< 閫氶亾鍙�
+@property (nonatomic, copy) NSString *devicePicUrl;///< 璁惧鍥剧墖url
+@property (nonatomic, assign) NSInteger storageTime;///< 瀛樺偍鏃堕暱
+@property (nonatomic, assign) NSInteger storageTimeUnit;///< 瀛樺偍鏃堕暱鍗曚綅锛�1-澶╋紝2-鍛紝3-鏈堬紝4-骞�
+@property (nonatomic, copy) NSString *expireTime;///< 浜戝瓨鍌ㄦ湇鍔¤繃鏈熸椂闂�
+@property (nonatomic, copy) NSString *expireDate;///< 鍒版湡鏃堕棿锛� yyyy骞碝M鏈坉d鏃� 鏍煎紡
+@property (nonatomic, copy) NSString *devModel;///< 璁惧鍨嬪彿
+@property (nonatomic, copy) NSString *devName;///< 璁惧鍚嶇О
+@property (nonatomic, assign) NSInteger onlineStatus;///< 璁惧鍦ㄧ嚎鐘舵��
+@property (nonatomic, assign) NSInteger status;///< 浜戝瓨鍌ㄧ姸鎬� -2涓嶆敮鎸� -1鏈紑鍚� 0鏆傚仠 1寮�鍚� 2杩囨湡 4鎸囧畾鐢熸晥浜戝瓨鍌ㄥ緟鐢熸晥鐘舵��
+@property (nonatomic, assign) NSInteger expireDay;///< 褰撳墠璺濈杩囨湡鐨勬湁鏁堝ぉ鏁�
+@property (nonatomic, assign) NSInteger validDay;///< 鏈嶅姟鍙娇鐢ㄧ殑澶╂暟
+@property (nonatomic, copy) NSString *createTime;///< 鍒涘缓鏃堕棿
+@property (nonatomic, assign) BOOL designateDevice;///< 鏄惁鏄寚瀹氳澶�
+@property (nonatomic, assign) BOOL subscribe;///< 鏄惁鐢卞綋鍓嶈闃呭紑閫�
+@property (nonatomic, assign) BOOL supportSubscribe;///< 鏄惁鏀寔璁㈤槄浜戝瓨鍌�
+@property (nonatomic, assign) BOOL supportCard;///< 鏄惁鏀寔鐐瑰崱
+@property (nonatomic, assign) NSInteger openTryCloudShield;///< 鏄惁灞忚斀浜戝瓨鍌ㄨ瘯鐢� 1涓哄睆钄斤紝鍏朵粬涓烘湭灞忚斀
+@property (nonatomic, strong) NSArray<EZCloudServicePackageInfo *> *serviceList;///<
+
+@end
+
+
+@interface EZCloudServicePackageInfo : NSObject
+
+@property (nonatomic, assign) long serviceId;///<
+@property (nonatomic, assign) NSInteger productPayType;///< 浜у搧浠樿垂绫诲瀷锛�1浠樿垂 2 璇曠敤 3鍏嶈垂
+@property (nonatomic, assign) NSInteger storageTimeUnit;///< 瀛樺偍鏃堕暱鍗曚綅锛�1-澶� 2-鍛� 3-鏈� 4-骞� 5-灏忔椂
+@property (nonatomic, copy) NSString *expireTime;///< 杩囨湡鏃堕棿
+@property (nonatomic, assign) NSInteger forceBinding;///< 寮哄埗缁戝畾鐘舵�� 1-寮哄埗缁戝畾 2-鍙浆绉�
+@property (nonatomic, assign) NSInteger effectImmediately;///< 鏈嶅姟鏄惁绔嬪嵆鐢熸晥 1-绔嬪嵆鐢熸晥 2-寤惰繜鐢熸晥 3-鎸囧畾鏃ユ湡鐢熸晥
+@property (nonatomic, assign) NSInteger canFamilyDeviceNum;///< 鍙姞鍏ュ椁愯澶囨暟
+@property (nonatomic, assign) long familyServiceId;///< 瀹跺涵濂楅鏈嶅姟ID
+@property (nonatomic, assign) NSInteger serviceTime;///< 浜戝瓨鍌ㄤ娇鐢ㄦ椂闀�
+@property (nonatomic, assign) NSInteger addFamilyDeviceNum;///< 宸插姞鍏ュ椁愯澶囨暟
+@property (nonatomic, assign) NSInteger productCode;///< 浜у搧缂栧彿
+@property (nonatomic, assign) NSInteger buyNum;///< 璐拱鏁伴噺
+@property (nonatomic, copy) NSString *businessOrderNo;///< 璁㈠崟鍙凤細褰撳墠寮�閫氭湇鍔′笌璁㈠崟鍏宠仈
+@property (nonatomic, assign) NSInteger serviceTimeUnit;///< 浜戝瓨鍌ㄤ娇鐢ㄦ椂闀垮崟浣嶏細1-澶� 2-鍛� 3-鏈� 4-骞�
+@property (nonatomic, assign) NSInteger storageTime;///< 瀛樺偍鏃堕暱
+@property (nonatomic, assign) NSInteger serviceType;///< 濂楅绫诲瀷锛�2銆佸搴椁愶紝 1 or null涓烘櫘閫氬椁�
+@property (nonatomic, copy) NSString *effectTime;///< 鐢熸晥鏃堕棿
+@property (nonatomic, assign) NSInteger status;///< 鐘舵�侊細1 寰呬娇鐢� 2浣跨敤涓� 3宸蹭娇鐢�
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceInfo.h
new file mode 100644
index 0000000..da60bb4
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceInfo.h
@@ -0,0 +1,59 @@
+//
+//  EZDeviceInfo.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/9/16.
+//  Copyright (c) 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓鸿澶囦俊鎭璞�
+@interface EZDeviceInfo : NSObject
+
+/// 璁惧鍏宠仈鐨勯�氶亾淇℃伅
+@property (nonatomic, strong) NSArray *cameraInfo;
+/// 璁惧鍏宠仈鐨勯�氶亾鏁伴噺
+@property (nonatomic) NSInteger cameraNum;
+/// 鍏锋湁闃叉姢鑳藉姏鐨勮澶囧竷鎾ら槻鐘舵�侊細0-鐫$湢锛�8-鍦ㄥ锛�16-澶栧嚭锛屾櫘閫欼PC甯冩挙闃茬姸鎬侊細0-鎾ら槻锛�1-甯冮槻
+@property (nonatomic) NSInteger defence;
+/// 璁惧鍏宠仈鐨勬帰娴嬪櫒鏁伴噺
+@property (nonatomic) NSInteger detectorNum;
+/// 璁惧鍏宠仈鐨勬帰娴嬪櫒淇℃伅
+@property (nonatomic, strong) NSArray *detectorInfo;
+/// 璁惧鍥剧墖
+@property (nonatomic, copy) NSString *deviceCover;
+/// 璁惧鍚嶇О
+@property (nonatomic, copy) NSString *deviceName;
+/// 璁惧搴忓垪鍙�
+@property (nonatomic, copy) NSString *deviceSerial;
+/// 璁惧绫诲瀷
+@property (nonatomic, copy) NSString *deviceType;
+/// 璁惧鐗堟湰鍙�
+@property (nonatomic, copy) NSString *deviceVersion;
+/// 璁惧鍗忚鐗堟湰鍙风被鍨�  0:闈炲浗鏍� 6:鍥芥爣
+@property (nonatomic) NSInteger devProtoEnum;
+/// 璁惧鏄惁寮�鍚姞瀵�
+@property (nonatomic) BOOL isEncrypt;
+/// 璁惧鐘舵�侊紝1-鍦ㄧ嚎锛�2-涓嶅湪绾�
+@property (nonatomic) NSInteger status;
+/// 鏄惁鏀寔瀵硅 0-涓嶆敮鎸佸璁诧紝1-鏀寔鍏ㄥ弻宸ュ璁诧紝3-鏀寔鍗婂弻宸ュ璁诧紝4-鍚屾椂鏀寔鍏ㄥ弻宸ュ拰鍗婂弻宸�
+@property (nonatomic) NSInteger isSupportTalk;
+/// 鏄惁鏀寔浜戝彴鎺у埗
+@property (nonatomic) BOOL isSupportPTZ;
+/// 鏄惁鏀寔鏀惧ぇ
+@property (nonatomic) BOOL isSupportZoom;
+///鏄惁鏀寔鎻愮ず闊冲紑鍏�
+@property (nonatomic) BOOL isSupportAudioOnOff;
+/// 鏄惁鏀寔涓績闀滃儚缈昏浆
+@property (nonatomic) BOOL isSupportMirrorCenter;
+/// 鏄惁鏀寔澹版尝閰嶇綉
+@property (nonatomic) BOOL isSupportSoundWave;
+/// 鏄惁鏀寔鍊嶆暟鍥炴斁
+@property (nonatomic) BOOL isSupportPlaybackRate;
+/// 璁惧澶х被
+@property (nonatomic,copy) NSString *category;
+/// 娣诲姞鏃堕棿
+@property (nonatomic,strong) NSDate *addTime;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDevicePtzAngleInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDevicePtzAngleInfo.h
new file mode 100644
index 0000000..4437921
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDevicePtzAngleInfo.h
@@ -0,0 +1,47 @@
+//
+//  EZDevicePtzAngleInfo.h
+//  EzvizOpenSDK
+//
+//  Created by JuneCheng on 2022/4/27.
+//  Copyright 漏 2022 Hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZDevicePtzAngleInfo : NSObject
+
+/** 姘村钩鏂瑰悜璧风偣瑙掑害 */
+@property (readonly) NSInteger horizontalStartAngle;
+
+/** 姘村钩鏂瑰悜缁堢偣瑙掑害 */
+@property (readonly) NSInteger horizontalEndAngle;
+
+/** 姘村钩鏂瑰悜褰撳墠瑙掑害 */
+@property (readonly) NSInteger horizontalCurrentAngle;
+
+/** 鍨傜洿鏂瑰悜璧风偣瑙掑害 */
+@property (readonly) NSInteger verticalStartAngle;
+
+/** 鍨傜洿鏂瑰悜缁堢偣瑙掑害 */
+@property (readonly) NSInteger verticalEndAngle;
+
+/** 鍨傜洿鏂瑰悜褰撳墠瑙掑害 */
+@property (readonly) NSInteger verticalCurrentAngle;
+
+/** 鏂瑰悜 */
+@property (readonly) NSInteger orientation;
+
+/** 鐗堟湰鍙� */
+@property (readonly) NSInteger ptzCfgVersion;
+
+/** 鍒濆鍖� */
+- (instancetype)initWithType:(NSInteger)type data:(NSData *)data;
+
+- (float)horCurAngPercent;
+- (float)verCurAngPercent;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceRecordDownloadTask.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceRecordDownloadTask.h
new file mode 100644
index 0000000..adb8679
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceRecordDownloadTask.h
@@ -0,0 +1,39 @@
+//
+//  EZDeviceRecordDownloadTask.h
+//  EZOpenSDK
+//
+//  Created by yuqian on 2019/7/2.
+//  Copyright 漏 2019 Ezviz. All rights reserved.
+//
+
+#import "EZRecordDownloadTask.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class EZDeviceRecordFile;
+
+@interface EZDeviceRecordDownloadTask : EZRecordDownloadTask
+
+/**
+ sd鍗″綍鍍忎笅杞戒换鍔″垵濮嬪寲锛屽紓姝ユ柟娉�
+ 涓嬭浇鐨勫綍鍍忎负PS鏂囦欢锛屽闇�杞崲MP4锛岃鑷璋冪敤EZVideoTransformer绫荤殑杞皝瑁呮柟娉�
+ 
+ @param taskID 涓嬭浇浠诲姟鍞竴鏍囪瘑ID
+ @param recordFile 璁惧褰曞儚鏂囦欢
+ @param deviceSerial 璁惧搴忓垪鍙�
+ @param cameraNo 閫氶亾鍙�
+ @param verifyCode 璁惧楠岃瘉鐮�
+ @param savePath 涓嬭浇瀛樺偍璺緞
+ @param completion 瀹屾垚鍥炶皟锛屾垚鍔熻繑鍥瀟ask锛屽け璐ヨ繑鍥瀗il
+ */
+- (void) initTaskWithID:(NSUInteger)taskID
+   DeviceRecordFileInfo:(EZDeviceRecordFile *)recordFile
+           deviceSerial:(NSString *)deviceSerial
+               cameraNo:(NSInteger)cameraNo
+             verifyCode:(NSString *)verifyCode
+               savePath:(NSString *)savePath
+             completion:(void (^)(EZDeviceRecordDownloadTask *task))completion;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceRecordFile.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceRecordFile.h
new file mode 100644
index 0000000..b7a2867
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceRecordFile.h
@@ -0,0 +1,26 @@
+//
+//  EZDeviceRecordFile.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/9/17.
+//  Copyright (c) 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓鸿澶囧綍鍍忔枃浠朵俊鎭紙鍖呭惈SD鍗°�佸悗绔叧鑱旇澶囩殑褰曞儚锛�
+@interface EZDeviceRecordFile : NSObject
+
+/// 璁惧褰曞儚鏂囦欢鐨勫紑濮嬫椂闂�
+@property (nonatomic, strong) NSDate *startTime;
+/// 璁惧褰曞儚鏂囦欢鐨勭粨鏉熸椂闂�
+@property (nonatomic, strong) NSDate *stopTime;
+/// 鏂囦欢绫诲瀷 -2:UNKNOW -1:ALLEVENT 0:ALARM 1:TIMING 2:IO 3:CMR 4:event 5:all
+@property (nonatomic, assign) int type;
+@property (nonatomic, copy) NSString *channelType;
+
+
+@property (nonatomic, assign) int seq;
+@property (nonatomic, strong) NSData *imageData;///< 
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceUpgradeStatus.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceUpgradeStatus.h
new file mode 100644
index 0000000..06c173b
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceUpgradeStatus.h
@@ -0,0 +1,19 @@
+//
+//  EZDeviceUpgradeStatus.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/12/21.
+//  Copyright 漏 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓鸿澶囧崌绾х姸鎬佸璞�
+@interface EZDeviceUpgradeStatus : NSObject
+
+/// 鍗囩骇杩涘害锛屼粎status_type涓哄崌绾х姸鎬佹椂鏈夋晥锛屽彇鍊艰寖鍥翠负1-100
+@property (nonatomic) NSInteger upgradeProgress;
+/// 鍗囩骇鐘舵�侊細 0锛氭鍦ㄥ崌绾� 1锛氳澶囬噸鍚� 2锛氬崌绾ф垚鍔� 3锛氬崌绾уけ璐�
+@property (nonatomic) NSInteger upgradeStatus;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceVersion.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceVersion.h
new file mode 100644
index 0000000..a49a31a
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZDeviceVersion.h
@@ -0,0 +1,27 @@
+//
+//  EZDeviceVersion.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/12/10.
+//  Copyright 漏 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓鸿澶囩増鏈俊鎭璞�
+@interface EZDeviceVersion : NSObject
+
+/// 褰撳墠鐗堟湰
+@property (nonatomic, copy) NSString *currentVersion;
+/// 鏈�鏂扮増鏈�
+@property (nonatomic, copy) NSString *latestVersion;
+/// 鏄惁鍙互鏇存柊,娉細0-涓嶉渶瑕佸崌绾� 1-闇�瑕佸崌绾� 3-闇�瑕佸崌绾�1.7鐗堟湰浠ヤ笂
+@property (nonatomic) NSInteger isNeedUpgrade;
+/// 鏄惁姝e湪鍗囩骇,娉細0-涓嶅湪鍗囩骇 1-姝e湪鍗囩骇
+@property (nonatomic) NSInteger isUpgrading;
+/// 鍥轰欢涓嬭浇鍦板潃锛屽彧鏈夊彲浠ユ洿鏂版椂鎵嶄細鏈夊��
+@property (nonatomic, copy) NSString *downloadUrl;
+/// 鏇存柊鍐呭鎻忚堪
+@property (nonatomic, copy) NSString *upgradeDesc;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZGlobalSDK.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZGlobalSDK.h
new file mode 100644
index 0000000..90f7cc9
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZGlobalSDK.h
@@ -0,0 +1,1059 @@
+//
+//  EZGlobalSDK.h
+//  EZOpenSDK
+//
+//  Created by JuneCheng on 2022/7/18.
+//
+
+#import <Foundation/Foundation.h>
+#import "EZConstants.h"
+#import "EZConstants_Auth.h"
+#import "EZConstants_WifiConfig.h"
+
+@class EZAccessToken;
+@class EZPlayer;
+@class EZUserInfo;
+@class EZDeviceVersion;
+@class EZDeviceInfo;
+@class EZProbeDeviceInfo;
+@class EZDeviceUpgradeStatus;
+@class EZLeaveMessage;
+@class EZHiddnsDeviceInfo;
+@class EZDeviceCloudServiceInfo;
+@class EZWiFiItemInfo, EZAPDevInfo, EZConfigTokenInfo;
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZGlobalSDK : NSObject
+
+#pragma mark - Auth璁よ瘉鐩稿叧Api
+
+/**
+ *  瀹炰緥EZOpenSDK鎺ュ彛
+ *
+ *  @param appKey 浼犲叆鐢宠鐨刟ppKey
+ *
+ *  @return YES/NO
+ */
++ (BOOL)initLibWithAppKey:(NSString *)appKey;
+
+/**
+ *  鍒濆鍖栨帴鍙o紝鍙缃湇鍔″櫒锛屾捣澶栫敤鎴蜂娇鐢ㄨ鍒濆鍖栨柟娉�
+ *
+ *  @param appKey 浼犲叆鐢宠鐨刟ppKey
+ *  @param apiUrl apiUrl鍦板潃
+ *  @param authUrl auth鍦板潃
+ *
+ *  @return YES/NO
+ */
++ (BOOL)initLibWithAppKey:(NSString *)appKey
+                      url:(NSString *)apiUrl
+                  authUrl:(NSString *)authUrl;
+
+/**
+ *  閿�姣丒ZOpenSDK鎺ュ彛
+ *
+ *  @return YES/NO
+ */
++ (BOOL)destoryLib;
+
+/**
+ *  璁剧疆鏄惁鎵撳嵃debug鏃ュ織,闇�鍦ㄥ垵濮嬪寲sdk涔嬪墠璋冪敤
+ *
+ *  @param enable 鏄惁鎵撳嵃鏃ュ織锛岄粯璁ゅ叧闂�
+ *
+ *  @return YES/NO
+ */
++ (BOOL)setDebugLogEnable:(BOOL)enable;
+
+/**
+ *  璁剧疆debug鏃ュ織鍥炶皟,闇�鍦ㄥ垵濮嬪寲sdk涔嬪墠璋冪敤
+ *
+ *  @param logCallback 鏃ュ織鍥炶皟
+ */
++ (void)setDebugLogCallBack:(void(^)(NSString *logStr))logCallback;
+
+/**
+ *  鎵撳紑鎺堟潈鐧诲綍涓棿椤甸潰鎺ュ彛
+ *
+ *  @param areaId areaId
+ *  @param block 鍥炶皟block
+*/
++ (void)openLoginPage:(NSString *)areaId
+           completion:(void (^)(EZAccessToken *accessToken))block;
+
+/**
+ *  鎺堟潈鐧诲綍浠ュ悗缁橢ZOpenSDK璁剧疆accessToken鎺ュ彛
+ *
+ *  @param accessToken 鎺堟潈鐧诲綍鑾峰彇鐨刟ccessToken
+ */
++ (void)setAccessToken:(NSString *)accessToken;
+
+/**
+ *  璐︽埛娉ㄩ攢鎺ュ彛
+ *
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鐧诲嚭鎴愬姛
+ */
++ (void)logout:(void (^)(NSError *error))completion;
+
+
+/**
+ 澶栭儴璺宠浆澶勭悊鏂规硶锛岄�傜敤浜巌OS9浠ヤ笂锛屽寘鎷琲OS9
+
+ @param url 璺宠浆杩囨潵鐨剈rl
+ @param options 鍙傛暟锛岄粯璁や负绌猴紝鐩墠鏈繘琛屽鐞嗭紝棰勭暀
+ @param delegate 濮旀墭
+ @return 缁撴灉
+ */
++ (BOOL)handleOpenUrl:(NSURL *)url options:(NSDictionary *)options delegate:(id<EZAuthSDKDelegate>)delegate;
+
+/**
+ *  鑾峰彇SDK鐗堟湰鍙锋帴鍙�
+ *
+ *  @return 鐗堟湰鍙�
+ */
++ (NSString *)getVersion;
+
+/**
+ *  鎵撳紑浜戝瓨鍌ㄤ腑闂撮〉
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param channelNo    璁惧閫氶亾鍙�
+ */
++ (void)openCloudPage:(NSString *)deviceSerial channelNo:(NSInteger)channelNo;
+
+/**
+ *  鎵撳紑淇敼瀵嗙爜涓棿椤�
+ *
+ *  @param completion 鍥炶皟block resultCode涓�0鏃惰〃绀轰慨鏀瑰瘑鐮佹垚鍔�
+ */
++ (void)openChangePasswordPage:(void (^)(NSInteger resultCode))completion;
+
+/**
+ 鏄惁宸茬粡鐧诲綍
+
+ @return YES锛氬凡缁忕櫥褰曪紱NO锛氭湭鐧诲綍
+ */
++ (BOOL)isLogin;
+
+/**
+ 鑾峰彇褰撳墠accessToken
+
+ @return accessToken
+ */
++ (NSString *)getAccesstoken;
+
+#pragma mark - 鎾斁鍣ㄥ垱寤篈pi
+
+/**
+ *  鏍规嵁cameraId鏋勯�燛ZPlayer瀵硅薄
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithDeviceSerial:(NSString *)deviceSerial
+                                  cameraNo:(NSInteger)cameraNo;
+
+/**
+ *  涓�涓〉闈㈠瓨鍦ㄥ涓棰戜娇鐢ㄦ渶灏忕殑鐮佹祦锛屾病鏈夊瓙鐮佹祦鐨勮瘽杩樻槸浣跨敤涓荤爜娴�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     铏氭嫙閫氶亾
+ *  @param useSubStream   鏄惁浣跨敤瀛愮爜娴�
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithDeviceSerial:(NSString *)deviceSerial
+                                  cameraNo:(NSInteger)cameraNo
+                              useSubStream:(BOOL)useSubStream;
+
+/**
+ *  鏍规嵁url鏋勯�燛ZPlayer瀵硅薄 锛堜富瑕佺敤鏉ュ鐞嗚棰戝箍鍦虹殑鎾斁锛�
+ *
+ *  @param url 鎾斁url锛岀洰鍓嶅彧鏀寔璇ュ崗璁細ysproto://vtm.ys7.com:8554/live?dev=531993276&chn=1&stream=1&cln=1&isp=0&biz=3
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithUrl:(NSString *)url;
+
+
+/**
+ *  閲婃斁EZPlayer瀵硅薄
+ *
+ *  @param player EZPlayer瀵硅薄
+ *
+ *  @return YES/NO
+ */
++ (BOOL)releasePlayer:(EZPlayer *)player;
+
+#pragma mark - 鍙栨祦鐩稿叧Api
+
+/**
+ *  璁剧疆p2p鍔熻兘鏄惁寮�鍚帴鍙o紝榛樿涓嶅紑鍚痯2p锛岀敤鎴疯嚜宸遍�夋嫨鏄惁寮�鍚�
+ *
+ *  @param enable p2p鏄惁寮�鍚�
+ */
++ (void)enableP2P:(BOOL)enable;
+
+/**
+ *  娓呴櫎鍙栨祦鏃剁殑缂撳瓨鏁版嵁
+ */
++ (void)clearStreamInfoCache;
+
+/**
+ *  鏄惁鏀寔鍥芥爣
+ *  @param enable YES or NO
+ */
++ (void)enableNationalStandard:(BOOL)enable;
+
+#pragma mark - 褰曞儚鏌ヨApi
+
+/**
+ *  鏌ヨ浜戝瓨鍌ㄥ綍鍍忎俊鎭垪琛ㄦ帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param beginTime    鏌ヨ鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ *  @param endTime      鏌ヨ鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZCloudRecordFile鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)searchRecordFileFromCloud:(NSString *)deviceSerial
+                                           cameraNo:(NSInteger)cameraNo
+                                          beginTime:(NSDate *)beginTime
+                                            endTime:(NSDate *)endTime
+                                         completion:(void (^)(NSArray *couldRecords, NSError *error))completion;
+
+/**
+ *  鏌ヨ杩滅▼SD鍗″瓨鍌ㄥ綍鍍忎俊鎭垪琛ㄦ帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param beginTime    鏌ヨ鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ *  @param endTime      鏌ヨ鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZDeviceRecordFile鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)searchRecordFileFromDevice:(NSString *)deviceSerial
+                                            cameraNo:(NSInteger)cameraNo
+                                           beginTime:(NSDate *)beginTime
+                                             endTime:(NSDate *)endTime
+                                          completion:(void (^)(NSArray *deviceRecords, NSError *error))completion;
+
+/**
+ *  鑾峰彇鎸囧畾鏃堕棿鍐呯殑鎵�鏈夊綍鍍忔枃浠�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙凤紝浼犲叆<=0鐨勫�煎垯涓洪粯璁ゅ��
+ *  @param beginTime    寮�濮嬫椂闂达紝浼犲叆nil鍒欎负褰撳ぉ00:00:00
+ *  @param endTime      缁撴潫鏃堕棿锛屼紶鍏il鍒欎负褰撳ぉ23:59:59
+ *  @param rectype      鍥炴斁婧愶紝0-绯荤粺鑷姩閫夋嫨锛�1-浜戝瓨鍌紝2-鏈湴褰曞儚銆傞潪蹇呴�夛紝榛樿涓�0锛屼紶鍏ヨ礋鍊煎垯涓洪粯璁ゅ��
+ *  @param bizType       璁惧褰掑睘涓氬姟鏉ユ簮
+ *  @param platFormId  骞冲彴ID
+ *  @param completion   鍥炶皟block records:EzvizRecordFileInfo鐨勬暟缁�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)searchRecordFile:(NSString *)deviceSerial
+                                  cameraNo:(NSString *)cameraNo
+                                 beginTime:(NSDate *)beginTime
+                                   endTime:(NSDate *)endTime
+                                   recType:(NSInteger)rectype
+                                   bizType:(NSString *)bizType
+                                platFormId:(NSString *)platFormId
+                                completion:(void (^)(id records, NSError *error))completion;
+
+#pragma mark - 璁惧鐩稿叧Api
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙峰拰璁惧楠岃瘉鐮佹坊鍔犺澶囨帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param verifyCode   璁惧楠岃瘉鐮�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)addDevice:(NSString *)deviceSerial
+                         verifyCode:(NSString *)verifyCode
+                         completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鑾峰彇鐢ㄦ埛鎵�鏈夌殑璁惧鍒楄〃
+ *
+ *  @param pageIndex  鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
+ *  @param pageSize   鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
+ *  @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞℃暟缁勫拰璁惧鎬绘暟锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceList:(NSInteger)pageIndex
+                               pageSize:(NSInteger)pageSize
+                             completion:(void (^)(NSArray *deviceList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鑾峰彇鍒嗕韩缁欑敤鎴风殑璁惧鍒楄〃鎺ュ彛
+ *
+ *  @param pageIndex  鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
+ *  @param pageSize   鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
+ *  @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞℃暟缁勫拰璁惧鎬绘暟锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getSharedDeviceList:(NSInteger)pageIndex
+                                     pageSize:(NSInteger)pageSize
+                                   completion:(void (^)(NSArray *deviceList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鏍规嵁搴忓垪鍙疯幏鍙栬澶囦俊鎭�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞★紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceInfo:(NSString *)deviceSerial
+                             completion:(void (^)(EZDeviceInfo *deviceInfo, NSError *error))completion;
+
+/**
+ *  鑾峰彇璁惧鐨勭増鏈俊鎭帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZDeviceVersion鐨勫璞′俊鎭紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceVersion:(NSString *)deviceSerial
+                                completion:(void (^)(EZDeviceVersion *version, NSError *error))completion;
+
+/**
+ *  閫氳繃璁惧楠岃瘉鐮佸紑鍏宠棰戝浘鐗囧姞瀵嗘帴鍙�
+ *
+ *  @param isEncrypt    鏄惁鍔犲瘑锛屽彧鏈塏O(鍏抽棴)鐨勬椂鍊欓渶瑕佽澶囬獙璇佺爜鐨勭浉鍏冲弬鏁�(vaildateCode)
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param verifyCode 璁惧楠岃瘉鐮�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setDeviceEncryptStatus:(NSString *)deviceSerial
+                                      verifyCode:(NSString *)verifyCode
+                                         encrypt:(BOOL)isEncrypt
+                                      completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙蜂慨鏀硅澶囧悕绉版帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param deviceName   璁惧鍚嶇О
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀轰慨鏀规垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setDeviceName:(NSString *)deviceName
+                           deviceSerial:(NSString *)deviceSerial
+                             completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙峰垹闄ゅ綋鍓嶈处鍙风殑璁惧鎺ュ彛
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀哄垹闄ゆ垚鍔�
+ *  @see 璇ユ帴鍙d笌缁堢缁戝畾鍔熻兘鐩稿叧锛屼細閬囧埌鍒犻櫎鏃舵姤106002鐨勯敊璇紝璇峰叧闂粓绔粦瀹氫互鍚庡啀璇�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)deleteDevice:(NSString *)deviceSerial
+                            completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栧瓨鍌ㄤ粙璐ㄧ姸鎬�(濡傛槸鍚﹀垵濮嬪寲锛屾牸寮忓寲杩涘害绛�)
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZStorageInfo鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getStorageStatus:(NSString *)deviceSerial
+                                completion:(void (^)(NSArray *storageStatus, NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙峰拰鍒嗗尯缂栧彿鏍煎紡鍖栧垎鍖猴紙SD鍗★級
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param storageIndex 鏌ヨ杩斿洖鐨勫垎鍖哄彿锛�0琛ㄧず鍏ㄩ儴鏍煎紡鍖栵紝鍙兘浼氭湁鍑犲潡纭洏鐨勬儏鍐�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)formatStorage:(NSString *)deviceSerial
+                           storageIndex:(NSInteger)storageIndex
+                             completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栬澶囧崌绾ф椂鐨勮繘搴︾姸鎬�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZDeviceUpgradeStatus瀵硅薄锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceUpgradeStatus:(NSString *)deviceSerial
+                                      completion:(void (^)(EZDeviceUpgradeStatus *status, NSError *error))completion;
+
+/**
+ *  閫氳繃璁惧搴忓垪鍙峰璁惧杩涜鍗囩骇鎿嶄綔锛屽墠鎻愭槸璇ヨ澶囨湁鏇存柊杞欢鐨勬彁绀�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖琛ㄧず鎿嶄綔鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)upgradeDevice:(NSString *)deviceSerial
+                             completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鑾峰彇鎶撳彇鎽勫儚澶村浘鐗囩殑url鎺ュ彛
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖url鍦板潃淇℃伅锛岄敊璇椂杩斿洖閿欒鐮�
+ *  @see 璇ユ帴鍙f瘮杈冭�楁椂锛屼笉寤鸿杩涜鎵归噺璁惧鎶撳浘锛孲DK鍐呴儴鍙敮鎸�6涓猦ttp璇锋眰骞跺彂锛岃鎺ュ彛浼氭寔缁崰鐢╤ttp璇锋眰璧勬簮锛屽鏋滈亣鍒癶ttp璇锋眰寤舵椂宸ㄥぇ闂锛屼紭鍏堣�冭檻鎶撳浘鎺ュ彛骞跺彂閫犳垚鐨勯棶棰�,
+ *  鎶撳浘灏嗗湪鏈嶅姟鍣ㄧ淇濈暀2涓皬鏃�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)captureCamera:(NSString *)deviceSerial
+                               cameraNo:(NSInteger)cameraNo
+                             completion:(void (^)(NSString *url, NSError *error))completion;
+
+/**
+ *  璁剧疆璁惧閫氶亾鐨勬竻鏅板害
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param videoLevel   閫氶亾娓呮櫚搴︼紝0-娴佺晠锛�1-鍧囪 锛�2-楂樻竻锛�3-瓒呮竻
+ *  @param completion   鍥炶皟block锛屾棤error琛ㄧず璁剧疆鎴愬姛
+ *  @see 濡傛灉鏄鍦ㄦ挱鏀炬椂璋冪敤璇ユ帴鍙o紝璁剧疆娓呮櫚搴︽垚鍔熶互鍚庡繀椤昏EZPlayer璋冪敤stopRealPlay鍐嶈皟鐢╯tartRealPlay閲嶆柊鍙栨祦鎵嶆垚瀹屾垚鐢婚潰娓呮櫚搴︾殑鍒囨崲銆�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setVideoLevel:(NSString *)deviceSerial
+                               cameraNo:(NSInteger)cameraNo
+                             videoLevel:(EZVideoLevelType)videoLevel
+                             completion:(void (^)(NSError *error))completion;
+
+/**
+ *  璁惧璁剧疆甯冮槻鐘舵�侊紝鍏煎A1鍜孖PC璁惧鐨勫竷闃�
+ *
+ *  @param defence      甯冮槻鐘舵��, IPC甯冮槻鐘舵�佸彧鏈�0鍜�1锛孉1鏈�0:鐫$湢 8:鍦ㄥ 16:澶栧嚭
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setDefence:(EZDefenceStatus)defence
+                        deviceSerial:(NSString *)deviceSerial
+                          completion:(void (^)(NSError *error))completion;
+
+#pragma mark - 浜戝彴鎺у埗Api
+
+/**
+ *  PTZ 鎺у埗鎺ュ彛
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param command      ptz鎺у埗鍛戒护
+ *  @param action       鎺у埗鍚姩/鍋滄
+ *  @param speed        浜戝彴閫熷害锛�0-鎱紝1-閫備腑锛�2-蹇�
+ *  @param resultBlock  鍥炶皟block锛屽綋error涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)controlPTZ:(NSString *)deviceSerial
+                            cameraNo:(NSInteger)cameraNo
+                             command:(EZPTZCommand)command
+                              action:(EZPTZAction)action
+                               speed:(NSInteger)speed
+                              result:(void (^)(NSError *error))resultBlock;
+
+/**
+ *  鎽勫儚澶存樉绀烘帶鍒舵帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param command      鏄剧ず鎺у埗鍛戒护
+ *  @param resultBlock  鍥炶皟block锛屽綋error涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ */
++ (void)controlVideoFlip:(NSString *)deviceSerial
+                cameraNo:(NSInteger)cameraNo
+                 command:(EZDisplayCommand)command
+                  result:(void (^)(NSError *error))resultBlock;
+
+#pragma mark - 浜戝瓨鍌ㄧ浉鍏矨pi
+
+/**
+ *  妫�鏌ュ浗瀹舵槸鍚︽敮鎸佷簯瀛樺偍鏈嶅姟
+ *
+ *  @param completion 鍥炶皟
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)isSupportCloundService:(void (^)(BOOL isSupport, NSError *error))completion;
+
+/**
+ *  鏌ヨ浜戝瓨鍌ㄨ澶囬�氶亾濂楅淇℃伅
+ *
+ *  @param deviceSerial     璁惧搴忓垪鍙�
+ *  @param channelNo            閫氶亾鍙�
+ *  @param completion          鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getCloundDevicePackageInfo:(NSString *)deviceSerial
+                                           channelNo:(NSInteger)channelNo
+                                          completion:(void (^)(EZDeviceCloudServiceInfo *serviceInfo, NSError *error))completion;
+
+/**
+ *  浜戝瓨鍌ㄥ姛鑳芥殏鍋滄仮澶�
+ *
+ *  @param deviceSerial     璁惧搴忓垪鍙�
+ *  @param channelNo            閫氶亾鍙�
+ *  @param enable                   NO-绂佺敤锛孻ES-鍚敤
+ *  @param completion          鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setCloundServiceActive:(NSString *)deviceSerial
+                                       channelNo:(NSInteger)channelNo
+                                          enable:(BOOL)enable
+                                      completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏌ヨ鏌愭湀涓湁瑙嗛鏂囦欢鐨勫ぉ(鏃ユ湡)
+ *
+ *  @param deviceSerial     璁惧搴忓垪鍙�
+ *  @param channelNo            閫氶亾鍙�
+ *  @param month                     鏌ヨ鏌愭湀鍏锋湁浜戝瓨鍌ㄧ殑鏃ユ湡锛屾牸寮忎负yyyyMM
+ *  @param completion          鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getCloudVideoDays:(NSString *)deviceSerial
+                                  channelNo:(NSInteger)channelNo
+                                      month:(NSString *)month
+                                 completion:(void (^)(NSArray<NSString *> *dayArray, NSError *error))completion;
+
+/**
+ *  鎸夎澶囬�氶亾鍒犻櫎鎵�鏈変簯瀛樺偍褰曞儚鐗囨
+ *
+ *  @param deviceSerial     璁惧搴忓垪鍙�
+ *  @param channelNo            閫氶亾鍙�
+ *  @param completion          鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)deleteAllCloudVideo:(NSString *)deviceSerial
+                                    channelNo:(NSInteger)channelNo
+                                   completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鍒犻櫎浜戝瓨鍌ㄥ綍鍍忕墖娈�
+ *
+ *  @param deviceSerial     璁惧搴忓垪鍙�
+ *  @param channelNo            閫氶亾鍙�
+ *  @param videos                   瑙嗛鏁扮粍锛堥檺鍒�30涓互鍐咃級
+ *  @param completion          鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)deleteCloudVideoFragment:(NSString *)deviceSerial
+                                         channelNo:(NSInteger)channelNo
+                                            videos:(NSArray *)videos
+                                        completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鎸夊ぉ澧為噺鏌ヨ浜戝瓨鍌ㄥ綍鍍忓垪琛ㄦ帴鍙�(姒傝淇℃伅)
+ *
+ *  @param deviceSerial     璁惧搴忓垪鍙�
+ *  @param channelNo            閫氶亾鍙�
+ *  @param videoType            褰曞儚绫诲瀷videoType
+ *  @param searchDate          鏌ユ壘鏂囦欢鏃ユ湡yyyy-MM-dd
+ *  @param maxCreateTime   鏌ユ壘鏂囦欢鐨勮捣濮嬫椂闂磞yyy-MM-dd HH:mm:ss锛岃淇濊瘉鍜宻earchDate鏄悓涓�澶╋紝鍚﹀垯鎶ラ敊銆傞粯璁や粠 yyyy-MM-dd 00:00:00寮�濮嬶紝闈炲繀濉紝鍙紶nil
+ *  @param completion          鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getIncrCloudVideos:(NSString *)deviceSerial
+                                   channelNo:(NSInteger)channelNo
+                                   videoType:(EZCloudVideoType)videoType
+                                  searchDate:(NSString *)searchDate
+                               maxCreateTime:(NSString *)maxCreateTime
+                                  completion:(void (^)(NSArray *abstractvideos, NSError *error))completion;
+
+/**
+ *  鏍规嵁鏂囦欢id鎵归噺鏌ヨ璇︽儏淇℃伅鎺ュ彛
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param channelNo        閫氶亾鍙�
+ *  @param videos               褰曞儚姒傝淇℃伅鏁扮粍
+ *  @param completion      鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getCloudVideoDetails:(NSString *)deviceSerial
+                                     channelNo:(NSInteger)channelNo
+                                        videos:(NSArray *)videos
+                                    completion:(void (^)(NSArray *couldRecords, NSError *error))completion;
+
+#pragma mark - 鍛婅鐩稿叧Api
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栧憡璀︿俊鎭垪琛紝璁惧搴忓垪鍙蜂负nil鏃舵煡璇㈡暣涓处鎴蜂笅鐨勫憡璀︿俊鎭垪琛�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param pageIndex    鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
+ *  @param pageSize     鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
+ *  @param beginTime    鎼滅储鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ *  @param endTime      鎼滅储鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZAlarmInfo鐨勫璞℃暟鎹拰鏌ヨ鏃堕棿鑼冨洿鍐呯殑鍛婅涓暟鐨勬�绘暟锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getAlarmList:(NSString *)deviceSerial
+                             pageIndex:(NSInteger)pageIndex
+                              pageSize:(NSInteger)pageSize
+                             beginTime:(NSDate *)beginTime
+                               endTime:(NSDate *)endTime
+                            completion:(void (^)(NSArray *alarmList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鍛婅鍥剧墖瑙e瘑鏂规硶锛岃澶囧姞瀵�
+ *
+ *  @param data       闇�瑕佽В瀵嗙殑鏁版嵁
+ *  @param verifyCode 璁惧楠岃瘉鐮�
+ *
+ *  @return 瑙e瘑鐨凬SData瀵硅薄锛屽鏋滆繑鍥炵殑鏁版嵁鏄┖鐨勶紝璇锋鏌ュ瘑鐮佹槸鍚︽纭垨鑰呬紶鍏ョ殑鏁版嵁鏄惁姝g‘銆�
+ */
++ (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode;
+
+/**
+ *  鍛婅鍥剧墖瑙e瘑鏂规硶锛岃澶囧姞瀵�
+ *
+ *  @param data       闇�瑕佽В瀵嗙殑鏁版嵁
+ *  @param verifyCode 璁惧楠岃瘉鐮�
+ *  @param type 1:璁惧鍔犲瘑锛�2锛氬钩鍙板姞瀵�
+ *
+ *  @return 瑙e瘑鐨凬SData瀵硅薄锛屽鏋滆繑鍥炵殑鏁版嵁鏄┖鐨勶紝璇锋鏌ュ瘑鐮佹槸鍚︽纭垨鑰呬紶鍏ョ殑鏁版嵁鏄惁姝g‘銆�
+ */
++ (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode encryptType:(NSInteger)type;
+
+/**
+ *  璁剧疆鍛婅淇℃伅涓哄凡璇绘帴鍙�
+ *
+ *  @param alarmIds   鍛婅淇℃伅Id鏁扮粍(鍙互鍙湁涓�涓狪d)锛屾渶澶氫负10涓猧d,鍚﹀垯浼氭姤閿�
+ *  @param status     鍛婅娑堟伅鐘舵��
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀鸿缃垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setAlarmStatus:(NSArray *)alarmIds
+                             alarmStatus:(EZMessageStatus)status
+                              completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁alarmId鍒犻櫎鍛婅淇℃伅鎺ュ彛
+ *
+ *  @param alarmIds   鍛婅淇℃伅Id鏁扮粍(鍙互鍙湁涓�涓狪d)锛屾渶澶氫负10涓狪d锛屽惁鍒欎細鎶ラ敊
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀哄垹闄ゆ垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)deleteAlarm:(NSArray *)alarmIds
+                           completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栨湭璇绘秷鎭暟锛岃澶囧簭鍒楀彿涓虹┖鏃惰幏鍙栨墍鏈夎澶囩殑鏈娑堟伅鏁�
+ *
+ *  @param deviceSerial 闇�瑕佽幏鍙栫殑璁惧搴忓垪鍙凤紝涓虹┖鏃惰繑鍥炶处鎴蜂笅鎵�鏈夎澶囩殑鏈娑堟伅鏁�
+ *  @param type         娑堟伅绫诲瀷锛欵ZMessageTypeAlarm 鍛婅娑堟伅锛�1锛夛紝EZMessageTypeLeave 鐣欒█娑堟伅锛�2锛�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖鏈鏁伴噺锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getUnreadMessageCount:(NSString *)deviceSerial
+                                    messageType:(EZMessageType)type
+                                     completion:(void (^)(NSInteger count, NSError *error))completion;
+
+#pragma mark - 璇煶鐣欒█娑堟伅鏁版嵁Api
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栬澶囩殑鐣欒█娑堟伅鍒楄〃
+ *
+ *  @param deviceSerial 闇�瑕佽幏鍙栫殑璁惧搴忓垪鍙�
+ *  @param beginTime    寮�濮嬫椂闂�
+ *  @param endTime      缁撴潫鏃堕棿
+ *  @param pageIndex    鍒嗛〉椤电爜
+ *  @param pageSize     鍒嗛〉鍗曢〉鏁伴噺
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZLeaveMessage鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getLeaveMessageList:(NSString *)deviceSerial
+                                    pageIndex:(NSInteger)pageIndex
+                                     pageSize:(NSInteger)pageSize
+                                    beginTime:(NSDate *)beginTime
+                                      endTime:(NSDate *)endTime
+                                   completion:(void (^)(NSArray *leaveMessageList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鏍规嵁leaveId璁剧疆鐣欒█娑堟伅鐘舵��
+ *
+ *  @param leaveIds   鐣欒█娑堟伅Id鏁扮粍(鏈�澶ф暟閲忎负10锛屽厑璁稿彧鏈�1涓�)
+ *  @param status     闇�瑕佽缃殑鐣欒█鐘舵�侊紝鐩墠鍙敮鎸� EZMessageStatusRead(宸茶)
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setLeaveMessageStatus:(NSArray *)leaveIds
+                                  messageStatus:(EZMessageStatus)status
+                                     completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁leaveId鍒犻櫎鐣欒█娑堟伅
+ *
+ *  @param leaveIds   鐣欒█娑堟伅Id鏁扮粍(鏈�澶ф暟閲忎负10锛屽厑璁稿彧鏈�1涓�)
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鍒犻櫎鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)deleteLeaveMessage:(NSArray *)leaveIds
+                                  completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁EZLeaveMessage瀵硅薄淇℃伅鑾峰彇璇煶鐣欒█娑堟伅鏁版嵁鎺ュ彛
+ *  @param message    鐣欒█娑堟伅瀵硅薄
+ *  @param completion 鍥炶皟block 锛坮esultCode = 1 琛ㄧず璇煶涓嬭浇鎴愬姛锛�-1琛ㄧず涓嬭浇澶辫触锛�
+ *
+ *  @return operation
+ */
++ (NSOperation *)getLeaveMessageData:(EZLeaveMessage *)message
+                          completion:(void (^)(NSData *data, NSInteger resultCode))completion;
+
+#pragma mark - VideoTalk瑙嗛閫氳瘽鐩稿叧Api
+
+/**
+ * 鑾峰彇鎵嬭〃鏈嶅姟鐩稿叧淇℃伅
+ * @param deviceId 璁惧搴忓垪鍙�
+ * @param completion operation
+ */
++ (void)requestGetWatchServerInfo:(NSString *)deviceId
+                       completion:(void (^)(id watchServerInfo, NSError *error))completion;
+
+#pragma mark - WiFi閰嶇綉鐩稿叧Api
+
+/**
+ *  灏濊瘯鏌ヨ璁惧淇℃伅锛岃澶嘩ifi閰嶇疆鍓嶆煡璇竴娆¤澶囩殑淇℃伅
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param deviceType 璁惧鍨嬪彿锛屾棤娉曡幏鍙栧埌璁惧鍨嬪彿鍒欏彲浼爊il
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZProbeDeviceInfo瀵硅薄锛岄敊璇爜杩斿洖閿欒鐮�
+ *  @see 鍏ㄦ柊鐨勮澶囨槸娌℃湁娉ㄥ唽鍒板钩鍙扮殑锛屾墍浠ヤ細鍑虹幇璁惧涓嶅瓨鍦ㄧ殑鎯呭喌锛岃澶噖ifi閰嶇疆鎴愬姛浠ュ悗浼氫笂鎶ユ暟鎹埌钀ょ煶浜戝钩鍙帮紝浠ュ悗姣忔鏌ヨ灏变笉浼氬嚭鐜拌澶囦笉瀛樺湪鐨勬儏鍐典簡銆�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)probeDeviceInfo:(NSString *)deviceSerial
+                               deviceType:(NSString *)deviceType
+                               completion:(void (^)(EZProbeDeviceInfo *deviceInfo, NSError *error))completion;
+
+/**
+ *  WiFi閰嶇疆寮�濮嬫帴鍙�
+ *
+ *  @param ssid         杩炴帴WiFi SSID
+ *  @param password     杩炴帴WiFi 瀵嗙爜
+ *  @param deviceSerial 杩炴帴WiFi鐨勮澶囩殑璁惧搴忓垪鍙�
+ *  @param statusBlock  杩斿洖杩炴帴璁惧鐨刉iFi閰嶇疆鐘舵��
+ *
+ *  @return YES/NO
+ */
++ (BOOL)startConfigWifi:(NSString *)ssid
+               password:(NSString *)password
+           deviceSerial:(NSString *)deviceSerial
+           deviceStatus:(void (^)(EZWifiConfigStatus status))statusBlock;
+
+/**
+ *  WiFi閰嶇疆寮�濮嬫帴鍙�
+ *
+ *  @param ssid         杩炴帴WiFi SSID
+ *  @param password     杩炴帴WiFi 瀵嗙爜
+ *  @param deviceSerial 杩炴帴WiFi鐨勮澶囩殑璁惧搴忓垪鍙�,鎵归噺閰嶇疆鏃跺~nil
+ *  @param mode         閰嶇綉鐨勬柟寮忥紝EZWiFiConfigMode涓垪涓剧殑妯″紡杩涜浠绘剰缁勫悎,渚嬪:EZWiFiConfigSmart|EZWiFiConfigWave
+ *  @param statusBlock  杩斿洖璁惧搴忓垪鍙蜂互鍙婂綋鍓嶈繛鎺ョ姸鎬�
+ *
+ *  @return YES/NO
+ */
++ (BOOL)startConfigWifi:(NSString *)ssid
+               password:(NSString *)password
+           deviceSerial:(NSString *)deviceSerial
+                   mode:(NSInteger)mode
+           deviceStatus:(void (^)(EZWifiConfigStatus status, NSString *deviceSerial))statusBlock;
+
+/**
+ *  @since 3.0.0
+ *  Wifi閰嶇疆鍋滄鎺ュ彛
+ *
+ *  @return YES/NO
+ */
++ (BOOL)stopConfigWifi;
+
+#pragma mark - AP閰嶇綉鐩稿叧Api
+
+/**
+ * AP閰嶇綉鎺ュ彛
+ *
+ * @param ssid WiFi鐨剆sid
+ * @param password WiFi鐨勫瘑鐮�
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param callback 缁撴灉鍥炶皟锛屾敞鎰忥細杩斿洖YES浠呬粎浠h〃鎴愬姛灏哤iFi淇℃伅鍙戦�佺粰璁惧锛屼笉浠h〃璁惧閰嶇綉鎴愬姛
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startAPConfigWifiWithSsid:(NSString *)ssid
+                         password:(NSString *)password
+                     deviceSerial:(NSString *)deviceSerial
+                       verifyCode:(NSString *)verifyCode
+                           result:(void (^)(BOOL ret))callback;
+
+/**
+ * AP閰嶇綉鎺ュ彛锛堟帹鑽愶紝v5.0鏂板锛屽皝瑁呬簡璁惧鐘舵�佽疆璇㈡楠わ級
+ *
+ * @param ssid WiFi鐨剆sid
+ * @param password WiFi鐨勫瘑鐮�
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param statusBlock 缁撴灉鍥炶皟锛岃繑鍥為厤缃戣繃绋嬩腑鐨勫悇绉嶇姸鎬�
+ *
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startAPConfigWifiWithSsid:(NSString *)ssid
+                         password:(NSString *)password
+                     deviceSerial:(NSString *)deviceSerial
+                       verifyCode:(NSString *)verifyCode
+                     deviceStatus:(void (^)(EZWifiConfigStatus status, NSString *deviceSerial))statusBlock;
+
+/**
+ * 鍋滄AP閰嶇綉
+ */
++ (void)stopAPConfigWifi;
+
+#pragma mark - 鎺ヨЕ寮忛厤缃� New AP Config
+
+/**
+ * 鑾峰彇鎺ヨЕ寮廇P閰嶇綉token
+ *
+ * @param completion 鍥炶皟
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getNewApConfigToken:(void(^)(EZConfigTokenInfo *tokenInfo, NSError *error))completion;
+
+/**
+ * 寮�濮婲ewAP閰嶇綉锛堥渶杩炴帴璁惧鐑偣锛�
+ * @param token 閰嶇綉token
+ * @param ssid WiFi ssid
+ * @param password WiFi 瀵嗙爜
+ * @param lbsDomain lbs 鍩熷悕
+ * @param handler 鍥炶皟
+ *
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startNewApConfigWithToken:(NSString *)token
+                             ssid:(NSString *)ssid
+                         password:(NSString *)password
+                        lbsDomain:(NSString *)lbsDomain
+                completionHandler:(void(^)(EZNewAPConfigStatus status, NSError *error))handler;
+
+/**
+ * 鑾峰彇璁惧鐘舵�侊紙闇�杩炴帴璁惧鐑偣锛�
+ *
+ * @param handler 鍥炶皟
+ */
++ (void)getAccessDeviceInfo:(void(^)(EZAPDevInfo *devInfo, NSError *error))handler;
+
+/**
+ * 鑾峰彇璁惧褰撳墠鍛ㄨ竟WiFi鍒楄〃锛屼笂闄�20涓紙闇�杩炴帴璁惧鐑偣锛�
+ *
+ * @param handler 鍥炶皟
+ */
++ (void)getAccessDeviceWifiList:(void(^)(NSArray<EZWiFiItemInfo*> *wifiList, NSError *error))handler;
+
+/**
+ * 鏌ヨ璁惧缁戝畾鐘舵��
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZProbeDeviceInfo瀵硅薄锛岄敊璇爜杩斿洖閿欒鐮�
+ *
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (NSURLSessionDataTask *)queryPlatformBindStatus:(NSString *)deviceSerial
+                                       completion:(void(^)(EZProbeDeviceInfo *deviceInfo, NSError *error))completion;
+
+/**
+ * 璁剧疆閰嶇綉璁惧缃戝叧鍦板潃 鍙��
+ * @param devRouteDomain 璁惧缃戝叧鍦板潃
+ */
++ (void)setDevRouteDomain:(NSString *)devRouteDomain;
+
+#pragma mark - 鐢ㄦ埛鐩稿叧Api
+
+/**
+ *  鑾峰彇鐢ㄦ埛鍩烘湰淇℃伅鐨勬帴鍙�
+ *
+ *  @param completion 鍥炶皟block锛� 姝e父鏃惰繑鍥濫ZUserInfo鐨勫璞★紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getUserInfo:(void (^)(EZUserInfo *userInfo, NSError *error))completion;
+
+#pragma mark - 鍏朵粬Api
+
+/**
+ *  鑾峰彇鍖哄煙鍒楄〃鎺ュ彛
+ *
+ *  @param completion 鍥炶皟block锛宎reaList涓殑鍏冪礌涓篍ZAreaInfo瀵硅薄
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getAreaList:(void (^)(NSArray *areaList, NSError *error))completion;
+
+/**
+ *  鑾峰彇缁堢锛堟墜鏈虹瓑锛夊敮涓�璇嗗埆鐮�
+ *
+ *  @return 缁堢鍞竴璇嗗埆鐮�
+ */
++ (NSString *)getTerminalId;
+
+/**
+ 鏍规嵁搴旂敤绫诲瀷鍒ゆ柇鏄惁瀹夎浜嗗搴旂殑搴旂敤
+ 
+ @param appType 搴旂敤绫诲瀷
+ @return YES:宸插畨瑁咃紝NO:娌℃湁瀹夎鎴栧畨瑁呯殑钀ょ煶APP鐗堟湰杩囦綆
+ */
+//+ (BOOL)isEzvizAppInstalledWithType:(EZAppType)appType;
+
+
+/**
+ 璺宠浆鍒版寚瀹氳悿鐭矨PP杩涜鎺堟潈鐧诲綍
+
+ @param appType 钀ょ煶APP绫诲瀷
+ @return 璺宠浆缁撴灉
+ */
+//+ (BOOL)ezvizLoginWithAppType:(EZAppType)appType;
+
+/**
+ 璺宠浆鍒版寚瀹欰PP鐨勬寚瀹氱晫闈�
+ 
+ @param pageType 鐣岄潰绫诲瀷
+ @param appType APP绫诲瀷
+ @return 璺宠浆缁撴灉
+ */
+//+ (BOOL)gotoEzvizAppPage:(EZAppPageType)pageType appType:(EZAppType)appType;
+
+#pragma mark - DDNS鐩稿叧
+
+/**
+ *  閫氳繃璁惧搴忓垪鍙峰拰璁惧鍩熷悕鑾峰彇璁惧ddns淇℃伅
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param domain 璁惧鍩熷悕
+ *  @param completion   鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getHiddnsDeviceInfo:(NSString *)deviceSerial
+                                       domain:(NSString *)domain
+                                   completion:(void (^)(EZHiddnsDeviceInfo *ddnsDeviceInfo, NSError *error))completion;
+
+/**
+ *  璇ユ帴鍙g敤浜庤缃澶嘾dns鍩熷悕锛屽寘鎷缃垎浜幏寰楃殑璁惧鐨刣dns鍩熷悕
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param domain 璁惧鍩熷悕,璁惧鍩熷悕瑙勫垯淇敼锛屼笉鑳戒负绌猴紝6-32浣嶏紝鍙互涓烘湰韬簭鍒楀彿锛屽寘鍚皬鍐欏瓧姣嶃�佹暟瀛椼��-锛岄浣嶅繀椤诲瓧姣嶏紝鏈綅涓嶈兘涓�-
+ *  @param completion   鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setHiddnsDomain:(NSString *)deviceSerial
+                                   domain:(NSString *)domain
+                               completion:(void (^)(NSError *error))completion;
+
+/**
+ *  璁剧疆璁惧鐨凞DNS鏄犲皠鏂瑰紡涓鸿嚜鍔ㄦ槧灏�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setHiddnsModeAuto:(NSString *)deviceSerial
+                                 completion:(void (^)(NSError *error))completion;
+
+/**
+ *  璁剧疆璁惧鐨凞DNS鏄犲皠鏂瑰紡涓烘墜鍔ㄦ槧灏�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param httpPort http绔彛鍙�
+ *  @param cmdPort 鏈嶅姟绔彛鍙�
+ *  @param completion   鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setHiddnsModeManual:(NSString *)deviceSerial
+                                     httpPort:(NSInteger)httpPort
+                                      cmdPort:(NSInteger)cmdPort
+                                   completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鑾峰彇褰撳墠璐﹀彿涓嬬殑鎵�鏈夎澶囩殑DDNS淇℃伅
+ *
+ *  @param pageIndex 鍒嗛〉璧峰椤碉紝浠�0寮�濮嬶紝榛樿涓�0
+ *  @param pageSize 鍒嗛〉澶у皬锛岄粯璁や负10锛屾渶澶т负50
+ *  @param completion   鍥炶皟block ddnsDeviceList涓璞′负EZHiddnsDeviceInfo
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getHiddnsDeviceList:(NSInteger)pageIndex
+                                     pageSize:(NSInteger)pageSize
+                                   completion:(void (^)(NSArray *ddnsDeviceList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鎶婂崟涓澶囩殑DDNS淇℃伅鍒嗕韩缁欏叾浠栬处鎴�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param account 琚垎浜处鎴凤紝鍙互鏄偖绠卞湴鍧�鎴栨墜鏈哄彿鐮侊紙鍖呭惈鍥藉浠g爜锛夋垨涓嶆槸鍏ㄦ暟瀛楃殑鐢ㄦ埛鍚�
+ *  @param completion   鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)shareHiddnsDevice:(NSString *)deviceSerial
+                                    account:(NSString *)account
+                                 completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鑾峰彇褰撳墠璐﹀彿涓嬬殑鎵�鏈夌殑鍏跺畠璐︽埛鍒嗕韩缁欒嚜宸辩殑璁惧DDNS淇℃伅
+ *
+ *  @param pageIndex 鍒嗛〉璧峰椤碉紝浠�0寮�濮嬶紝榛樿涓�0
+ *  @param pageSize 鍒嗛〉澶у皬锛岄粯璁や负10锛屾渶澶т负50
+ *  @param completion   鍥炶皟block ddnsDeviceList涓璞′负EZHiddnsDeviceInfo
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getShareHiddnsDeviceList:(NSInteger)pageIndex
+                                          pageSize:(NSInteger)pageSize
+                                        completion:(void (^)(NSArray *ddnsDeviceList, NSInteger totalCount, NSError *error))completion;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZHCNetDeviceInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZHCNetDeviceInfo.h
new file mode 100644
index 0000000..23946a9
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZHCNetDeviceInfo.h
@@ -0,0 +1,36 @@
+//
+//  EZHCNetDeviceInfo.h
+//  EzvizOpenSDK
+//
+//  Created by linyong on 2017/9/15.
+//  Copyright 漏 2017骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface EZHCNetDeviceInfo : NSObject
+
+///鐧诲綍鍚巙ser id
+@property (nonatomic,assign) NSInteger userId;
+///妯℃嫙閫氶亾鏁�
+@property (nonatomic,assign) NSInteger channelCount;
+///妯℃嫙閫氶亾璧峰閫氶亾鍙�,0涓烘棤鏁堟灉
+@property (nonatomic,assign) NSInteger startChannelNo;
+///鏁板瓧閫氶亾鏁�
+@property (nonatomic,assign) NSInteger dChannelCount;
+///璧峰鏁板瓧閫氶亾鍙凤紝0涓烘棤鏁堟灉
+@property (nonatomic,assign) NSInteger dStartChannelNo;
+///鍛婅杈撳叆涓暟
+@property (nonatomic,assign) NSInteger byAlarmInPortNum;
+///鍛婅杈撳嚭涓暟
+@property (nonatomic,assign) NSInteger byAlarmOutPortNum;
+///纭洏涓暟
+@property (nonatomic,assign) NSInteger byDiskNum;
+///璁惧绫诲瀷
+@property (nonatomic,assign) NSInteger byDVRType;
+///闆堕�氶亾涓暟
+@property (nonatomic,assign) NSInteger byZeroChanNum;
+///璁惧璇煶閫氶亾鏁�
+@property (nonatomic,assign) NSInteger byAudioChanNum;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZHCNetDeviceSDK.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZHCNetDeviceSDK.h
new file mode 100644
index 0000000..fa3a71f
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZHCNetDeviceSDK.h
@@ -0,0 +1,146 @@
+//
+//  EZHCNetDeviceSDK.h
+//  EzvizOpenSDK
+//
+//  Created by linyong on 2017/8/15.
+//  Copyright 漏 2017骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@class EZHCNetDeviceInfo, EZSADPDeviceInfo;
+
+typedef NS_ENUM(int, EZPTZCommandType) {
+    EZPTZCommandType_ZOOM_IN = 11,     /* 鐒﹁窛鍙樺ぇ(鍊嶇巼鍙樺ぇ) */
+    EZPTZCommandType_ZOOM_OUT = 12,    /* 鐒﹁窛鍙樺皬(鍊嶇巼鍙樺皬) */
+    EZPTZCommandType_UP = 21,          /* 浜戝彴涓婁话 */
+    EZPTZCommandType_DOWN,             /* 浜戝彴涓嬩刊 */
+    EZPTZCommandType_LEFT,             /* 浜戝彴宸﹁浆 */
+    EZPTZCommandType_RIGHT,            /* 浜戝彴鍙宠浆 */
+    EZPTZCommandType_UP_LEFT,          /* 浜戝彴涓婁话鍜屽乏杞� */
+    EZPTZCommandType_UP_RIGHT,         /* 浜戝彴涓婁话鍜屽彸杞� */
+    EZPTZCommandType_DOWN_LEFT,        /* 浜戝彴涓嬩刊鍜屽乏杞� */
+    EZPTZCommandType_DOWN_RIGHT,       /* 浜戝彴涓嬩刊鍜屽彸杞� */
+    EZPTZCommandType_PAN_AUTO,         /* 浜戝彴宸﹀彸鑷姩鎵弿 */
+    EZPTZCommandType_MAX               /* 瓒婄晫鏍囪瘑 */
+};
+
+typedef NS_ENUM(int, EZPTZActionType) {
+    EZPTZActionType_START = 0,      /* 寮�濮� */
+    EZPTZActionType_STOP,           /* 鍋滄 */
+    EZPTZActionType_MAX             /* 瓒婄晫鏍囪瘑 */
+};
+
+typedef NS_ENUM(int, EZEncryptType) {
+    EZEncryptType_OEMBlue = 0,              //钃濈簿鐏靛姞瀵�
+    EZEncryptType_OEMGreen,                 //缁垮法浜哄姞瀵�
+    EZEncryptType_normal                    //娌℃湁鍔犲瘑
+};
+
+@interface EZHCNetDeviceSDK : NSObject
+
+/**
+ 鍒濆鍖朣DK
+ */
++ (void)initSDK;
+
+/**
+ 寮�濮嬫悳绱㈠眬鍩熺綉璁惧
+
+ @param searchCallback 鎼滅储缁撴灉鍥炶皟锛屾瘡鎼滃埌涓�涓澶囬兘浼氬洖璋冧竴娆★紝璁惧淇℃伅EZSADPDeviceInfo
+ @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startLocalSearch:(void(^)(EZSADPDeviceInfo *device,NSError *error))searchCallback;
+
+/**
+ 鍋滄鎼滅储
+
+ @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)stopLocalSearch;
+
+/**
+ 娓呴櫎缁撴灉锛岄噸鏂版悳绱紝鍓嶆彁鏄箣鍓嶅紑鍚繃鎼滅储
+ */
++ (void)research;
+
+/**
+ 鑾峰彇SADP鐗堟湰鍙�
+ */
++ (int)getSadpVersion;
+
+/**
+ 婵�娲昏澶囷紝璋冪敤stopLocalSearch鍚庡皢鏃犳硶婵�娲昏澶�
+
+ @param serial 璁惧搴忓垪鍙�
+ @param pwd 婵�娲诲瘑鐮�
+ @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)activeDeviceWithSerial:(NSString *)serial pwd:(NSString *)pwd;
+
+/**
+ 鐧诲綍灞�鍩熺綉璁惧
+
+ @param userName 鐢ㄦ埛鍚�
+ @param pwd 鐢ㄦ埛瀵嗙爜
+ @param ipAddr 璁惧ip鍦板潃
+ @param port 璁惧绔彛鍙�
+ @return 鐧诲綍閿欒鏃惰繑鍥瀗il
+ */
++ (EZHCNetDeviceInfo *)loginDeviceWithUerName:(NSString *)userName
+                                          pwd:(NSString *)pwd
+                                       ipAddr:(NSString *)ipAddr
+                                         port:(NSInteger)port;
+
+/**
+ 鐧诲嚭灞�鍩熺綉璁惧
+
+ @param userId 鐢ㄦ埛id
+ @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)logoutDeviceWithUserId:(NSInteger)userId;
+
+/**
+ 灞�鍩熺綉璁惧浜戝彴鎺у埗鎺ュ彛
+
+ @param userId 鐢ㄦ埛id
+ @param channelNo 閫氶亾鍙�
+ @param command 鍛戒护绫诲瀷 EZPTZCommandType
+ @param action 鍔ㄤ綔绫诲瀷 EZPTZActionType
+ @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)ptzControlWithUserId:(NSInteger)userId
+                   channelNo:(NSInteger)channelNo
+                     command:(EZPTZCommandType)command
+                      action:(EZPTZActionType)action;
+
+/**
+ 璁剧疆鍔犲瘑鏂瑰紡
+
+ @param encryptType 鍔犲瘑鏂瑰紡
+ @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)setEncryptType:(EZEncryptType)encryptType;
+
+/**
+ AP閰嶇綉鎺ュ彛
+
+ @param ssid WiFi鐨剆sid
+ @param password WiFi鐨勫瘑鐮�
+ @param deviceSerial 璁惧搴忓垪鍙�
+ @param verifyCode 璁惧楠岃瘉鐮�
+ @param callback 缁撴灉鍥炶皟
+ @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startAPConfigWifiWithSsid:(NSString *)ssid
+                         password:(NSString *)password
+                     deviceSerial:(NSString *)deviceSerial
+                       verifyCode:(NSString *)verifyCode
+                           result:(void (^)(BOOL ret))callback;
+
+/**
+ 鍋滄AP閰嶇綉
+ */
++ (void)stopAPConfigWifi;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZHiddnsDeviceInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZHiddnsDeviceInfo.h
new file mode 100644
index 0000000..4627fa0
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZHiddnsDeviceInfo.h
@@ -0,0 +1,84 @@
+//
+//  EZHiddnsDeviceInfo.h
+//  EzvizOpenSDK
+//
+//  Created by linyong on 2017/9/9.
+//  Copyright 漏 2017骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface EZHiddnsDeviceInfo : NSObject
+
+///璁惧鍩熷悕
+@property (nonatomic,copy) NSString *domain;
+
+///璁惧澶栫綉鍦板潃
+@property (nonatomic,copy) NSString *deviceIp;
+
+///璁惧鐭簭鍒楀彿
+@property (nonatomic,copy) NSString *subSerial;
+
+///璁惧闀垮簭鍒楀彿
+@property (nonatomic,copy) NSString *serial;
+
+///璁惧鍚嶇О
+@property (nonatomic,copy) NSString *deviceName;
+
+///鏄犲皠妯″紡锛�1-鎵嬪姩锛�0-鑷姩
+@property (nonatomic,assign) NSInteger upnpMappingMode;
+
+///鎵嬪姩鏄犲皠http绔彛锛寀pnpMappingMode=1鏃朵娇鐢�
+@property (nonatomic,assign) NSInteger mappingHiddnsHttpPort;
+
+///鏄犲皠http绔彛
+@property (nonatomic,assign) NSInteger hiddnsHttpPort;
+
+///鏄犲皠https绔彛
+@property (nonatomic,assign) NSInteger hiddnsHttpsPort;
+
+///鎵嬪姩鏄犲皠鏈嶅姟绔彛锛寀pnpMappingMode=1鏃朵娇鐢�
+@property (nonatomic,assign) NSInteger mappingHiddnsCmdPort;
+
+///鏄犲皠鏈嶅姟绔彛
+@property (nonatomic,assign) NSInteger hiddnsCmdPort;
+
+///鏄犲皠鍙栨祦绔彛
+@property (nonatomic,assign) NSInteger hiddnsRtspPort;
+
+/////璁惧灞�鍩熺綉IP鍦板潃
+//@property (nonatomic,copy) NSString *localIp;
+//
+/////鏈湴http绔彛
+//@property (nonatomic,assign) NSInteger localHiddnsHttpPort;
+//
+/////鏈湴https绔彛
+//@property (nonatomic,assign) NSInteger localHiddnsHttpsPort;
+//
+/////鏈湴鏈嶅姟绔彛
+//@property (nonatomic,assign) NSInteger localHiddnsCmdPort;
+//
+/////鏈湴鍙栨祦绔彛
+//@property (nonatomic,assign) NSInteger localHiddnsRtspPort;
+//
+/////澶栫綉Telenet绔彛
+//@property (nonatomic,assign) NSInteger cmdPort;
+//
+/////澶栫綉Http鐩戝惉鐨勭鍙PNP妫�娴嬩娇鐢�
+//@property (nonatomic,assign) NSInteger httpPort;
+//
+/////澶栫綉鎺ㄦ祦浣跨敤鐨勭洃鍚鍙�
+//@property (nonatomic,assign) NSInteger streamPort;
+//
+/////鍐呯綉Telent绔彛
+//@property (nonatomic,assign) NSInteger localCmdPort;
+//
+/////鍐呯綉Http鐩戝惉鐨勭鍙PNP妫�娴嬩娇鐢�
+//@property (nonatomic,assign) NSInteger localHttpPort;
+//
+/////鍐呯綉鎺ㄦ祦浣跨敤鐨勭洃鍚鍙�
+//@property (nonatomic,assign) NSInteger localStreamPort;
+
+
+@end
+
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZLeaveMessage.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZLeaveMessage.h
new file mode 100644
index 0000000..dbf5c62
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZLeaveMessage.h
@@ -0,0 +1,41 @@
+//
+//  EZLeaveMessage.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/12/11.
+//  Copyright 漏 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓虹暀瑷�娑堟伅瀵硅薄
+@interface EZLeaveMessage : NSObject
+
+/// 娑堟伅Id
+@property (nonatomic, copy) NSString *id;
+/// 璁惧搴忓垪鍙�
+@property (nonatomic, copy) NSString *deviceSerial;
+/// 璁惧鍚嶇О
+@property (nonatomic, copy) NSString *deviceName;
+/// 鐣欒█鏃堕暱锛堝崟浣嶏細绉掞級
+@property (nonatomic) NSInteger duration;
+/// 鐣欒█娑堟伅绫诲瀷锛�1-璇煶鐣欒█ 2-瑙嗛鐣欒█
+@property (nonatomic) NSInteger contentType;
+/// 鎺ユ敹or鍥炲锛�1-鐢ㄦ埛鎺ユ敹锛堣澶囧彂閫侊級2-鐢ㄦ埛鍥炲锛堝鎴风鍙戦�侊級
+@property (nonatomic) NSInteger messageDirection;
+/// 鍙戦�佺绫诲瀷锛�1鈥揊1璁惧 2鈥揥eb瀹㈡埛绔� 3鈥搃Phone瀹㈡埛绔� 4鈥搃Pad瀹㈡埛绔� 5鈥揳ndroid瀹㈡埛绔� 6鈥揳ndroidPad瀹㈡埛绔�
+@property (nonatomic) NSInteger senderType;
+/// 鍙戦�佺鍒悕
+@property (nonatomic, copy) NSString *senderName;
+/// 鐣欒█灏侀潰鎴浘鍦板潃
+@property (nonatomic, copy) NSString *messagePicUrl;
+/// 娑堟伅鐘舵�侊細0-鏈 1-宸茶 2-鍒犻櫎
+@property (nonatomic) NSInteger status;
+/// 浜戝瓨鍌ㄦ湇鍔″櫒鍦板潃锛岀洰鍓嶉粯璁や负姝︽眽浜戝瓨鍌紝鏍煎紡涓�:{鍩熷悕:绔彛}
+@property (nonatomic, copy) NSString *cloudServerUrl;
+/// 鍒涘缓鏃堕棿
+@property (nonatomic, strong) NSDate *createTime;
+/// 淇敼鏃堕棿
+@property (nonatomic, strong) NSDate *updateTIme;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZOpenSDK.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZOpenSDK.h
new file mode 100644
index 0000000..47fc8e3
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZOpenSDK.h
@@ -0,0 +1,946 @@
+//
+//  EZOpenSDK.h
+//  EZOpenSDK
+//
+//  Created by JuneCheng on 2022/7/18.
+//
+
+#import <Foundation/Foundation.h>
+#import "EZConstants.h"
+#import "EZConstants_Auth.h"
+#import "EZConstants_WifiConfig.h"
+
+@class EZPlayer;
+@class EZDeviceInfo;
+@class EZAccessToken;
+@class EZCameraInfo;
+@class EZDeviceVersion;
+@class EZUserInfo;
+@class EZProbeDeviceInfo;
+@class EZDeviceUpgradeStatus;
+@class EZLeaveMessage;
+@class EZWiFiItemInfo, EZAPDevInfo, EZConfigTokenInfo;
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZOpenSDK : NSObject
+
+#pragma mark - Auth璁よ瘉鐩稿叧Api
+
+/**
+ *  瀹炰緥EZOpenSDK鎺ュ彛
+ *
+ *  @param appKey 浼犲叆鐢宠鐨刟ppKey
+ *
+ *  @return YES/NO
+ */
++ (BOOL)initLibWithAppKey:(NSString *)appKey;
+
+/**
+ *  鍒濆鍖栨帴鍙o紝鍙缃湇鍔″櫒锛屾捣澶栫敤鎴蜂娇鐢ㄨ鍒濆鍖栨柟娉�
+ *
+ *  @param appKey 浼犲叆鐢宠鐨刟ppKey
+ *  @param apiUrl apiUrl鍦板潃
+ *  @param authUrl auth鍦板潃
+ *
+ *  @return YES/NO
+ */
++ (BOOL)initLibWithAppKey:(NSString *)appKey
+                      url:(NSString *)apiUrl
+                  authUrl:(NSString *)authUrl;
+
+/**
+ *  閿�姣丒ZOpenSDK鎺ュ彛
+ *
+ *  @return YES/NO
+ */
++ (BOOL)destoryLib;
+
+/**
+ *  璁剧疆鏄惁鎵撳嵃debug鏃ュ織,闇�鍦ㄥ垵濮嬪寲sdk涔嬪墠璋冪敤
+ *
+ *  @param enable 鏄惁鎵撳嵃鏃ュ織锛岄粯璁ゅ叧闂�
+ *
+ *  @return YES/NO
+ */
++ (BOOL)setDebugLogEnable:(BOOL)enable;
+
+/**
+ *  璁剧疆debug鏃ュ織鍥炶皟,闇�鍦ㄥ垵濮嬪寲sdk涔嬪墠璋冪敤
+ *
+ *  @param logCallback 鏃ュ織鍥炶皟
+ */
++ (void)setDebugLogCallBack:(void(^)(NSString *logStr))logCallback;
+
+/**
+ *  鎵撳紑鎺堟潈鐧诲綍涓棿椤甸潰鎺ュ彛
+ *
+ *  @param block 鍥炶皟block
+*/
++ (void)openLoginPage:(void (^)(EZAccessToken *accessToken))block;
+
+/**
+ *  鎺堟潈鐧诲綍浠ュ悗缁橢ZOpenSDK璁剧疆accessToken鎺ュ彛
+ *
+ *  @param accessToken 鎺堟潈鐧诲綍鑾峰彇鐨刟ccessToken
+ */
++ (void)setAccessToken:(NSString *)accessToken;
+
+/**
+ *  璐︽埛娉ㄩ攢鎺ュ彛
+ *
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鐧诲嚭鎴愬姛
+ */
++ (void)logout:(void (^)(NSError *error))completion;
+
+
+/**
+ 澶栭儴璺宠浆澶勭悊鏂规硶锛岄�傜敤浜巌OS9浠ヤ笂锛屽寘鎷琲OS9
+
+ @param url 璺宠浆杩囨潵鐨剈rl
+ @param options 鍙傛暟锛岄粯璁や负绌猴紝鐩墠鏈繘琛屽鐞嗭紝棰勭暀
+ @param delegate 濮旀墭
+ @return 缁撴灉
+ */
++ (BOOL)handleOpenUrl:(NSURL *)url options:(NSDictionary *)options delegate:(id<EZOpenSDKDelegate>)delegate;
+
+/**
+ *  鑾峰彇SDK鐗堟湰鍙锋帴鍙�
+ *
+ *  @return 鐗堟湰鍙�
+ */
++ (NSString *)getVersion;
+
+/**
+ *  鎵撳紑浜戝瓨鍌ㄤ腑闂撮〉
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param channelNo    璁惧閫氶亾鍙�
+ */
++ (void)openCloudPage:(NSString *)deviceSerial channelNo:(NSInteger)channelNo;
+
+/**
+ *  鎵撳紑淇敼瀵嗙爜涓棿椤�
+ *
+ *  @param completion 鍥炶皟block resultCode涓�0鏃惰〃绀轰慨鏀瑰瘑鐮佹垚鍔�
+ */
++ (void)openChangePasswordPage:(void (^)(NSInteger resultCode))completion;
+
+/**
+ 鏄惁宸茬粡鐧诲綍
+
+ @return YES锛氬凡缁忕櫥褰曪紱NO锛氭湭鐧诲綍
+ */
++ (BOOL)isLogin;
+
+/**
+ 鑾峰彇褰撳墠accessToken
+
+ @return accessToken
+ */
++ (NSString *)getAccesstoken;
+
+#pragma mark - 鎾斁鍣ㄥ垱寤篈pi
+
+/**
+ *  鏍规嵁cameraId鏋勯�燛ZPlayer瀵硅薄
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithDeviceSerial:(NSString *)deviceSerial
+                                  cameraNo:(NSInteger)cameraNo;
+
+/**
+ *  鏍规嵁cameraId鏋勯�燛ZPlayer瀵硅薄锛坒or 鍥芥爣锛�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param strCameraNo     閫氶亾鍙�
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithDeviceSerial:(NSString *)deviceSerial
+                               strCameraNo:(NSString *)strCameraNo DEPRECATED_MSG_ATTRIBUTE("use createPlayerWithDeviceSerial:cameraNo: instead");
+
+/**
+ *  涓�涓〉闈㈠瓨鍦ㄥ涓棰戜娇鐢ㄦ渶灏忕殑鐮佹祦锛屾病鏈夊瓙鐮佹祦鐨勮瘽杩樻槸浣跨敤涓荤爜娴�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     铏氭嫙閫氶亾
+ *  @param useSubStream   鏄惁浣跨敤瀛愮爜娴�
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithDeviceSerial:(NSString *)deviceSerial
+                                  cameraNo:(NSInteger)cameraNo
+                              useSubStream:(BOOL)useSubStream;
+
+/**
+ *  鏍规嵁url鏋勯�燛ZPlayer瀵硅薄 锛堜富瑕佺敤鏉ュ鐞嗚棰戝箍鍦虹殑鎾斁锛�
+ *
+ *  @param url 鎾斁url锛岀洰鍓嶅彧鏀寔璇ュ崗璁細ysproto://vtm.ys7.com:8554/live?dev=531993276&chn=1&stream=1&cln=1&isp=0&biz=3
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithUrl:(NSString *)url;
+
+
+/**
+ *  閲婃斁EZPlayer瀵硅薄
+ *
+ *  @param player EZPlayer瀵硅薄
+ *
+ *  @return YES/NO
+ */
++ (BOOL)releasePlayer:(EZPlayer *)player;
+
+#pragma mark - 鍙栨祦鐩稿叧Api
+
+/**
+ *  璁剧疆p2p鍔熻兘鏄惁寮�鍚帴鍙o紝榛樿涓嶅紑鍚痯2p锛岀敤鎴疯嚜宸遍�夋嫨鏄惁寮�鍚�
+ *
+ *  @param enable p2p鏄惁寮�鍚�
+ */
++ (void)enableP2P:(BOOL)enable;
+
+/**
+ *  娓呴櫎鍙栨祦鏃剁殑缂撳瓨鏁版嵁
+ */
++ (void)clearStreamInfoCache;
+
+/**
+ *  鏄惁鏀寔鍥芥爣
+ *  @param enable YES or NO
+ */
++ (void)enableNationalStandard:(BOOL)enable;
+
+/**
+ *  鑾峰彇鎵�鏈夌殑p2p棰勮繛鎺ヨ澶囧簭鍒楀彿锛堝寘鎷鍦ㄨ繘琛岄鎿嶄綔鐨勪互鍙婇鎿嶄綔瀹屾垚鐨勶級
+ *
+ *  @return 璁惧搴忓垪鍙锋暟缁�
+ */
++ (NSArray<NSString *> *)getAllProcessedPreconnectSerials;
+
+/**
+ *  鑾峰彇鎵�鏈夋鍦ㄦ帓闃熺殑p2p棰勮繛鎺ヨ澶囧簭鍒楀彿锛堟寚杩樻病鏈夎繘琛岄鎿嶄綔鐨勶級
+ *
+ *  @return 璁惧搴忓垪鍙锋暟缁�
+ */
++ (NSArray<NSString *> *)getAllToDoPreconnectSerials;
+
+/**
+ *  瀵规煇涓�璁惧杩涜p2p棰勮繛鎺ユ搷浣�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ */
++ (void)startP2PPreconnect:(NSString *)deviceSerial;
+
+/**
+ *  瀵规煇涓�璁惧杩涜p2p棰勮繛鎺ユ竻闄ゆ搷浣�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ */
++ (void)clearP2PPreconnect:(NSString *)deviceSerial;
+
+#pragma mark - 褰曞儚鏌ヨApi
+
+/**
+ *  鏌ヨ浜戝瓨鍌ㄥ綍鍍忎俊鎭垪琛ㄦ帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param beginTime    鏌ヨ鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ *  @param endTime      鏌ヨ鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZCloudRecordFile鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)searchRecordFileFromCloud:(NSString *)deviceSerial
+                                           cameraNo:(NSInteger)cameraNo
+                                          beginTime:(NSDate *)beginTime
+                                            endTime:(NSDate *)endTime
+                                         completion:(void (^)(NSArray *couldRecords, NSError *error))completion;
+
+/**
+ *  鏌ヨ杩滅▼SD鍗″瓨鍌ㄥ綍鍍忎俊鎭垪琛ㄦ帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param beginTime    鏌ヨ鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ *  @param endTime      鏌ヨ鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZDeviceRecordFile鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)searchRecordFileFromDevice:(NSString *)deviceSerial
+                                            cameraNo:(NSInteger)cameraNo
+                                           beginTime:(NSDate *)beginTime
+                                             endTime:(NSDate *)endTime
+                                          completion:(void (^)(NSArray *deviceRecords, NSError *error))completion;
+
+/**
+ *  鏌ヨ杩滅▼SD鍗″瓨鍌ㄥ綍鍍忎俊鎭垪琛ㄦ帴鍙o紝鍚屼竴涓綍鍍忓彲浠ュ悓鏃舵槸瀹氭椂褰曞儚鍜屼簨浠跺綍鍍�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param beginTime    鏌ヨ鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ *  @param endTime      鏌ヨ鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ *  @param videoRecordType      褰曞儚绫诲瀷
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZDeviceRecordFile鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)searchRecordFileFromDevice:(NSString *)deviceSerial
+                                            cameraNo:(NSInteger)cameraNo
+                                           beginTime:(NSDate *)beginTime
+                                             endTime:(NSDate *)endTime
+                                     videoRecordType:(EZVideoRecordType)videoRecordType
+                                          completion:(void (^)(NSArray *deviceRecords, NSError *error))completion;
+
+/**
+ *  鑾峰彇鎸囧畾鏃堕棿鍐呯殑鎵�鏈夊綍鍍忔枃浠�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙凤紝浼犲叆<=0鐨勫�煎垯涓洪粯璁ゅ��
+ *  @param beginTime    寮�濮嬫椂闂达紝浼犲叆nil鍒欎负褰撳ぉ00:00:00
+ *  @param endTime      缁撴潫鏃堕棿锛屼紶鍏il鍒欎负褰撳ぉ23:59:59
+ *  @param rectype      鍥炴斁婧愶紝0-绯荤粺鑷姩閫夋嫨锛�1-浜戝瓨鍌紝2-鏈湴褰曞儚銆傞潪蹇呴�夛紝榛樿涓�0锛屼紶鍏ヨ礋鍊煎垯涓洪粯璁ゅ��
+ *  @param bizType       璁惧褰掑睘涓氬姟鏉ユ簮
+ *  @param platFormId  骞冲彴ID
+ *  @param completion   鍥炶皟block records:EzvizRecordFileInfo鐨勬暟缁�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)searchRecordFile:(NSString *)deviceSerial
+                                  cameraNo:(NSString *)cameraNo
+                                 beginTime:(NSDate *)beginTime
+                                   endTime:(NSDate *)endTime
+                                   recType:(NSInteger)rectype
+                                   bizType:(NSString *)bizType
+                                platFormId:(NSString *)platFormId
+                                completion:(void (^)(id records, NSError *error))completion;
+
+#pragma mark - 璁惧鐩稿叧Api
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙峰拰璁惧楠岃瘉鐮佹坊鍔犺澶囨帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param verifyCode   璁惧楠岃瘉鐮�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)addDevice:(NSString *)deviceSerial
+                         verifyCode:(NSString *)verifyCode
+                         completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鑾峰彇鐢ㄦ埛鎵�鏈夌殑璁惧鍒楄〃
+ *
+ *  @param pageIndex  鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
+ *  @param pageSize   鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
+ *  @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞℃暟缁勫拰璁惧鎬绘暟锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceList:(NSInteger)pageIndex
+                               pageSize:(NSInteger)pageSize
+                             completion:(void (^)(NSArray *deviceList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鑾峰彇鍒嗕韩缁欑敤鎴风殑璁惧鍒楄〃鎺ュ彛
+ *
+ *  @param pageIndex  鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
+ *  @param pageSize   鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
+ *  @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞℃暟缁勫拰璁惧鎬绘暟锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getSharedDeviceList:(NSInteger)pageIndex
+                                     pageSize:(NSInteger)pageSize
+                                   completion:(void (^)(NSArray *deviceList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鏍规嵁搴忓垪鍙疯幏鍙栬澶囦俊鎭�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞★紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceInfo:(NSString *)deviceSerial
+                             completion:(void (^)(EZDeviceInfo *deviceInfo, NSError *error))completion;
+
+/**
+ *  鑾峰彇璁惧鐨勭増鏈俊鎭帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZDeviceVersion鐨勫璞′俊鎭紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceVersion:(NSString *)deviceSerial
+                                completion:(void (^)(EZDeviceVersion *version, NSError *error))completion;
+
+/**
+ *  閫氳繃璁惧楠岃瘉鐮佸紑鍏宠棰戝浘鐗囧姞瀵嗘帴鍙�
+ *
+ *  @param isEncrypt    鏄惁鍔犲瘑锛屽彧鏈塏O(鍏抽棴)鐨勬椂鍊欓渶瑕佽澶囬獙璇佺爜鐨勭浉鍏冲弬鏁�(vaildateCode)
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param verifyCode 璁惧楠岃瘉鐮�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setDeviceEncryptStatus:(NSString *)deviceSerial
+                                      verifyCode:(NSString *)verifyCode
+                                         encrypt:(BOOL)isEncrypt
+                                      completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙蜂慨鏀硅澶囧悕绉版帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param deviceName   璁惧鍚嶇О
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀轰慨鏀规垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setDeviceName:(NSString *)deviceName
+                           deviceSerial:(NSString *)deviceSerial
+                             completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙峰垹闄ゅ綋鍓嶈处鍙风殑璁惧鎺ュ彛
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀哄垹闄ゆ垚鍔�
+ *  @see 璇ユ帴鍙d笌缁堢缁戝畾鍔熻兘鐩稿叧锛屼細閬囧埌鍒犻櫎鏃舵姤106002鐨勯敊璇紝璇峰叧闂粓绔粦瀹氫互鍚庡啀璇�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)deleteDevice:(NSString *)deviceSerial
+                            completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栧瓨鍌ㄤ粙璐ㄧ姸鎬�(濡傛槸鍚﹀垵濮嬪寲锛屾牸寮忓寲杩涘害绛�)
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZStorageInfo鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getStorageStatus:(NSString *)deviceSerial
+                                completion:(void (^)(NSArray *storageStatus, NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙峰拰鍒嗗尯缂栧彿鏍煎紡鍖栧垎鍖猴紙SD鍗★級
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param storageIndex 鏌ヨ杩斿洖鐨勫垎鍖哄彿锛�0琛ㄧず鍏ㄩ儴鏍煎紡鍖栵紝鍙兘浼氭湁鍑犲潡纭洏鐨勬儏鍐�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)formatStorage:(NSString *)deviceSerial
+                           storageIndex:(NSInteger)storageIndex
+                             completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栬澶囧崌绾ф椂鐨勮繘搴︾姸鎬�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZDeviceUpgradeStatus瀵硅薄锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceUpgradeStatus:(NSString *)deviceSerial
+                                      completion:(void (^)(EZDeviceUpgradeStatus *status, NSError *error))completion;
+
+/**
+ *  閫氳繃璁惧搴忓垪鍙峰璁惧杩涜鍗囩骇鎿嶄綔锛屽墠鎻愭槸璇ヨ澶囨湁鏇存柊杞欢鐨勬彁绀�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖琛ㄧず鎿嶄綔鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)upgradeDevice:(NSString *)deviceSerial
+                             completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鑾峰彇鎶撳彇鎽勫儚澶村浘鐗囩殑url鎺ュ彛
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖url鍦板潃淇℃伅锛岄敊璇椂杩斿洖閿欒鐮�
+ *  @see 璇ユ帴鍙f瘮杈冭�楁椂锛屼笉寤鸿杩涜鎵归噺璁惧鎶撳浘锛孲DK鍐呴儴鍙敮鎸�6涓猦ttp璇锋眰骞跺彂锛岃鎺ュ彛浼氭寔缁崰鐢╤ttp璇锋眰璧勬簮锛屽鏋滈亣鍒癶ttp璇锋眰寤舵椂宸ㄥぇ闂锛屼紭鍏堣�冭檻鎶撳浘鎺ュ彛骞跺彂閫犳垚鐨勯棶棰�,
+ *  鎶撳浘灏嗗湪鏈嶅姟鍣ㄧ淇濈暀2涓皬鏃�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)captureCamera:(NSString *)deviceSerial
+                               cameraNo:(NSInteger)cameraNo
+                             completion:(void (^)(NSString *url, NSError *error))completion;
+
+/**
+ *  璁剧疆璁惧閫氶亾鐨勬竻鏅板害
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param videoLevel   閫氶亾娓呮櫚搴︼紝0-娴佺晠锛�1-鍧囪 锛�2-楂樻竻锛�3-瓒呮竻
+ *  @param completion   鍥炶皟block锛屾棤error琛ㄧず璁剧疆鎴愬姛
+ *  @see 濡傛灉鏄鍦ㄦ挱鏀炬椂璋冪敤璇ユ帴鍙o紝璁剧疆娓呮櫚搴︽垚鍔熶互鍚庡繀椤昏EZPlayer璋冪敤stopRealPlay鍐嶈皟鐢╯tartRealPlay閲嶆柊鍙栨祦鎵嶆垚瀹屾垚鐢婚潰娓呮櫚搴︾殑鍒囨崲銆�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setVideoLevel:(NSString *)deviceSerial
+                               cameraNo:(NSInteger)cameraNo
+                             videoLevel:(EZVideoLevelType)videoLevel
+                             completion:(void (^)(NSError *error))completion;
+
+/**
+ *  璁惧璁剧疆甯冮槻鐘舵�侊紝鍏煎A1鍜孖PC璁惧鐨勫竷闃�
+ *
+ *  @param defence      甯冮槻鐘舵��, IPC甯冮槻鐘舵�佸彧鏈�0鍜�1锛孉1鏈�0:鐫$湢 8:鍦ㄥ 16:澶栧嚭
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setDefence:(EZDefenceStatus)defence
+                        deviceSerial:(NSString *)deviceSerial
+                          completion:(void (^)(NSError *error))completion;
+
+#pragma mark - 浜戝彴鎺у埗Api
+
+/**
+ *  PTZ 鎺у埗鎺ュ彛
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param command      ptz鎺у埗鍛戒护
+ *  @param action       鎺у埗鍚姩/鍋滄
+ *  @param speed        浜戝彴閫熷害锛�0-鎱紝1-閫備腑锛�2-蹇�
+ *  @param resultBlock  鍥炶皟block锛屽綋error涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)controlPTZ:(NSString *)deviceSerial
+                            cameraNo:(NSInteger)cameraNo
+                             command:(EZPTZCommand)command
+                              action:(EZPTZAction)action
+                               speed:(NSInteger)speed
+                              result:(void (^)(NSError *error))resultBlock;
+
+/**
+ *  鎽勫儚澶存樉绀烘帶鍒舵帴鍙�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *  @param command      鏄剧ず鎺у埗鍛戒护
+ *  @param resultBlock  鍥炶皟block锛屽綋error涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ */
++ (void)controlVideoFlip:(NSString *)deviceSerial
+                cameraNo:(NSInteger)cameraNo
+                 command:(EZDisplayCommand)command
+                  result:(void (^)(NSError *error))resultBlock;
+
+#pragma mark - 鍛婅鐩稿叧Api
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栧憡璀︿俊鎭垪琛紝璁惧搴忓垪鍙蜂负nil鏃舵煡璇㈡暣涓处鎴蜂笅鐨勫憡璀︿俊鎭垪琛�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param pageIndex    鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
+ *  @param pageSize     鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
+ *  @param beginTime    鎼滅储鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ *  @param endTime      鎼滅储鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZAlarmInfo鐨勫璞℃暟鎹拰鏌ヨ鏃堕棿鑼冨洿鍐呯殑鍛婅涓暟鐨勬�绘暟锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getAlarmList:(NSString *)deviceSerial
+                             pageIndex:(NSInteger)pageIndex
+                              pageSize:(NSInteger)pageSize
+                             beginTime:(NSDate *)beginTime
+                               endTime:(NSDate *)endTime
+                            completion:(void (^)(NSArray *alarmList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鍛婅鍥剧墖瑙e瘑鏂规硶锛岃澶囧姞瀵�
+ *
+ *  @param data       闇�瑕佽В瀵嗙殑鏁版嵁
+ *  @param verifyCode 璁惧楠岃瘉鐮�
+ *
+ *  @return 瑙e瘑鐨凬SData瀵硅薄锛屽鏋滆繑鍥炵殑鏁版嵁鏄┖鐨勶紝璇锋鏌ュ瘑鐮佹槸鍚︽纭垨鑰呬紶鍏ョ殑鏁版嵁鏄惁姝g‘銆�
+ */
++ (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode;
+
+/**
+ *  鍛婅鍥剧墖瑙e瘑鏂规硶锛岃澶囧姞瀵�
+ *
+ *  @param data       闇�瑕佽В瀵嗙殑鏁版嵁
+ *  @param verifyCode 璁惧楠岃瘉鐮�
+ *  @param type 1:璁惧鍔犲瘑锛�2锛氬钩鍙板姞瀵�
+ *
+ *  @return 瑙e瘑鐨凬SData瀵硅薄锛屽鏋滆繑鍥炵殑鏁版嵁鏄┖鐨勶紝璇锋鏌ュ瘑鐮佹槸鍚︽纭垨鑰呬紶鍏ョ殑鏁版嵁鏄惁姝g‘銆�
+ */
++ (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode encryptType:(NSInteger)type;
+
+/**
+ *  璁剧疆鍛婅淇℃伅涓哄凡璇绘帴鍙�
+ *
+ *  @param alarmIds   鍛婅淇℃伅Id鏁扮粍(鍙互鍙湁涓�涓狪d)锛屾渶澶氫负10涓猧d,鍚﹀垯浼氭姤閿�
+ *  @param status     鍛婅娑堟伅鐘舵��
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀鸿缃垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setAlarmStatus:(NSArray *)alarmIds
+                             alarmStatus:(EZMessageStatus)status
+                              completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁alarmId鍒犻櫎鍛婅淇℃伅鎺ュ彛
+ *
+ *  @param alarmIds   鍛婅淇℃伅Id鏁扮粍(鍙互鍙湁涓�涓狪d)锛屾渶澶氫负10涓狪d锛屽惁鍒欎細鎶ラ敊
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀哄垹闄ゆ垚鍔�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)deleteAlarm:(NSArray *)alarmIds
+                           completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栨湭璇绘秷鎭暟锛岃澶囧簭鍒楀彿涓虹┖鏃惰幏鍙栨墍鏈夎澶囩殑鏈娑堟伅鏁�
+ *
+ *  @param deviceSerial 闇�瑕佽幏鍙栫殑璁惧搴忓垪鍙凤紝涓虹┖鏃惰繑鍥炶处鎴蜂笅鎵�鏈夎澶囩殑鏈娑堟伅鏁�
+ *  @param type         娑堟伅绫诲瀷锛欵ZMessageTypeAlarm 鍛婅娑堟伅锛�1锛夛紝EZMessageTypeLeave 鐣欒█娑堟伅锛�2锛�
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖鏈鏁伴噺锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getUnreadMessageCount:(NSString *)deviceSerial
+                                    messageType:(EZMessageType)type
+                                     completion:(void (^)(NSInteger count, NSError *error))completion;
+
+#pragma mark - 璇煶鐣欒█娑堟伅鏁版嵁Api
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙疯幏鍙栬澶囩殑鐣欒█娑堟伅鍒楄〃
+ *
+ *  @param deviceSerial 闇�瑕佽幏鍙栫殑璁惧搴忓垪鍙�
+ *  @param beginTime    寮�濮嬫椂闂�
+ *  @param endTime      缁撴潫鏃堕棿
+ *  @param pageIndex    鍒嗛〉椤电爜
+ *  @param pageSize     鍒嗛〉鍗曢〉鏁伴噺
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZLeaveMessage鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getLeaveMessageList:(NSString *)deviceSerial
+                                    pageIndex:(NSInteger)pageIndex
+                                     pageSize:(NSInteger)pageSize
+                                    beginTime:(NSDate *)beginTime
+                                      endTime:(NSDate *)endTime
+                                   completion:(void (^)(NSArray *leaveMessageList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ *  鏍规嵁leaveId璁剧疆鐣欒█娑堟伅鐘舵��
+ *
+ *  @param leaveIds   鐣欒█娑堟伅Id鏁扮粍(鏈�澶ф暟閲忎负10锛屽厑璁稿彧鏈�1涓�)
+ *  @param status     闇�瑕佽缃殑鐣欒█鐘舵�侊紝鐩墠鍙敮鎸� EZMessageStatusRead(宸茶)
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)setLeaveMessageStatus:(NSArray *)leaveIds
+                                  messageStatus:(EZMessageStatus)status
+                                     completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁leaveId鍒犻櫎鐣欒█娑堟伅
+ *
+ *  @param leaveIds   鐣欒█娑堟伅Id鏁扮粍(鏈�澶ф暟閲忎负10锛屽厑璁稿彧鏈�1涓�)
+ *  @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鍒犻櫎鎴愬姛
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)deleteLeaveMessage:(NSArray *)leaveIds
+                                  completion:(void (^)(NSError *error))completion;
+
+/**
+ *  鏍规嵁EZLeaveMessage瀵硅薄淇℃伅鑾峰彇璇煶鐣欒█娑堟伅鏁版嵁鎺ュ彛
+ *  @param message    鐣欒█娑堟伅瀵硅薄
+ *  @param completion 鍥炶皟block 锛坮esultCode = 1 琛ㄧず璇煶涓嬭浇鎴愬姛锛�-1琛ㄧず涓嬭浇澶辫触锛�
+ *
+ *  @return operation
+ */
++ (NSOperation *)getLeaveMessageData:(EZLeaveMessage *)message
+                          completion:(void (^)(NSData *data, NSInteger resultCode))completion;
+
+#pragma mark - VideoTalk瑙嗛閫氳瘽鐩稿叧Api
+
+/**
+ * 鑾峰彇鎵嬭〃鏈嶅姟鐩稿叧淇℃伅
+ * @param deviceId 璁惧搴忓垪鍙�
+ * @param completion operation
+ */
++ (void)requestGetWatchServerInfo:(NSString *)deviceId
+                       completion:(void (^)(id watchServerInfo, NSError *error))completion;
+
+/**
+ * 鍒涘缓浼氳淇℃伅
+ * @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;
+
+/**
+ *  閭�璇疯澶囪繘鍏ユ埧闂�
+ *  @param roomId                                鎴块棿鍙�
+ *  @param deviceSerial                   璁惧搴忓垪鍙�
+ *  @param channelNo                         閫氶亾鍙�
+ *  @param streamType                       涓诲瓙鐮佹祦 1-涓荤爜娴侊紝2-瀛愮爜娴侊紝mode涓�2鏃跺彲涓嶄紶
+ *  @param mode                                    鍔犲叆妯″紡 1-鍙屽悜闊宠棰戞ā寮忥紙榛樿锛夛紝2-瀵硅妯″紡
+ *  @param maxActiveSeconds         鍏ヤ細鏈�闀挎椂闂达紙绉掞級
+ *  @param completion                       鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)inviteDeviceEnterMeeting:(NSString *)roomId
+                                      deviceSerial:(NSString *)deviceSerial
+                                         channelNo:(NSInteger)channelNo
+                                        streamType:(NSInteger)streamType
+                                              mode:(NSInteger)mode
+                                  maxActiveSeconds:(NSInteger)maxActiveSeconds
+                                        completion:(void (^)(NSError *error))completion;
+
+/**
+ *  寮哄埗璁惧閫�鍑烘埧闂�
+ *  @param roomId                                鎴块棿鍙�
+ *  @param deviceSerial                   璁惧搴忓垪鍙�
+ *  @param channelNo                         閫氶亾鍙�
+ *  @param completion                       鍥炶皟block
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)kickoutDeviceMoveOutRoom:(NSString *)roomId
+                                      deviceSerial:(NSString *)deviceSerial
+                                         channelNo:(NSInteger)channelNo
+                                        completion:(void (^)(NSError *error))completion;
+
+#pragma mark - WiFi閰嶇綉鐩稿叧Api
+
+/**
+ *  灏濊瘯鏌ヨ璁惧淇℃伅锛岃澶嘩ifi閰嶇疆鍓嶆煡璇竴娆¤澶囩殑淇℃伅
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param deviceType 璁惧鍨嬪彿锛屾棤娉曡幏鍙栧埌璁惧鍨嬪彿鍒欏彲浼爊il
+ *  @param completion   鍥炶皟block锛屾甯告椂杩斿洖EZProbeDeviceInfo瀵硅薄锛岄敊璇爜杩斿洖閿欒鐮�
+ *  @see 鍏ㄦ柊鐨勮澶囨槸娌℃湁娉ㄥ唽鍒板钩鍙扮殑锛屾墍浠ヤ細鍑虹幇璁惧涓嶅瓨鍦ㄧ殑鎯呭喌锛岃澶噖ifi閰嶇疆鎴愬姛浠ュ悗浼氫笂鎶ユ暟鎹埌钀ょ煶浜戝钩鍙帮紝浠ュ悗姣忔鏌ヨ灏变笉浼氬嚭鐜拌澶囦笉瀛樺湪鐨勬儏鍐典簡銆�
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)probeDeviceInfo:(NSString *)deviceSerial
+                               deviceType:(NSString *)deviceType
+                               completion:(void (^)(EZProbeDeviceInfo *deviceInfo, NSError *error))completion;
+
+/**
+ *  WiFi閰嶇疆寮�濮嬫帴鍙�
+ *
+ *  @param ssid         杩炴帴WiFi SSID
+ *  @param password     杩炴帴WiFi 瀵嗙爜
+ *  @param deviceSerial 杩炴帴WiFi鐨勮澶囩殑璁惧搴忓垪鍙�
+ *  @param statusBlock  杩斿洖杩炴帴璁惧鐨刉iFi閰嶇疆鐘舵��
+ *
+ *  @return YES/NO
+ */
++ (BOOL)startConfigWifi:(NSString *)ssid
+               password:(NSString *)password
+           deviceSerial:(NSString *)deviceSerial
+           deviceStatus:(void (^)(EZWifiConfigStatus status))statusBlock;
+
+/**
+ *  WiFi閰嶇疆寮�濮嬫帴鍙�
+ *
+ *  @param ssid         杩炴帴WiFi SSID
+ *  @param password     杩炴帴WiFi 瀵嗙爜
+ *  @param deviceSerial 杩炴帴WiFi鐨勮澶囩殑璁惧搴忓垪鍙�,鎵归噺閰嶇疆鏃跺~nil
+ *  @param mode         閰嶇綉鐨勬柟寮忥紝EZWiFiConfigMode涓垪涓剧殑妯″紡杩涜浠绘剰缁勫悎,渚嬪:EZWiFiConfigSmart|EZWiFiConfigWave
+ *  @param statusBlock  杩斿洖璁惧搴忓垪鍙蜂互鍙婂綋鍓嶈繛鎺ョ姸鎬�
+ *
+ *  @return YES/NO
+ */
++ (BOOL)startConfigWifi:(NSString *)ssid
+               password:(NSString *)password
+           deviceSerial:(NSString *)deviceSerial
+                   mode:(NSInteger)mode
+           deviceStatus:(void (^)(EZWifiConfigStatus status, NSString *deviceSerial))statusBlock;
+
+/**
+ *  WiFi閰嶇疆寮�濮嬫帴鍙�
+ *
+ *  @param ssid         杩炴帴WiFi SSID
+ *  @param password     杩炴帴WiFi 瀵嗙爜
+ *  @param deviceSerial 杩炴帴WiFi鐨勮澶囩殑璁惧搴忓垪鍙�,鎵归噺閰嶇疆鏃跺~nil
+ *  @param mode         閰嶇綉鐨勬柟寮忥紝EZWiFiConfigMode涓垪涓剧殑妯″紡杩涜浠绘剰缁勫悎,渚嬪:EZWiFiConfigSmart|EZWiFiConfigWave
+ *  @param apiUrl    鎸囧畾鍘诲摢涓钩鍙版煡璇�
+ *  @param statusBlock  杩斿洖璁惧搴忓垪鍙蜂互鍙婂綋鍓嶈繛鎺ョ姸鎬�
+ *
+ *  @return YES/NO
+ */
++ (BOOL)startConfigWifi:(NSString *)ssid
+               password:(NSString *)password
+           deviceSerial:(NSString *)deviceSerial
+                   mode:(NSInteger)mode
+                 apiUrl:(NSString *)apiUrl
+           deviceStatus:(void (^)(EZWifiConfigStatus status,NSString *deviceSerial))statusBlock;
+
+/**
+ *  @since 3.0.0
+ *  Wifi閰嶇疆鍋滄鎺ュ彛
+ *
+ *  @return YES/NO
+ */
++ (BOOL)stopConfigWifi;
+
+#pragma mark - AP閰嶇綉鐩稿叧Api
+
+/**
+ * AP閰嶇綉鎺ュ彛
+ *
+ * @param ssid WiFi鐨剆sid
+ * @param password WiFi鐨勫瘑鐮�
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param callback 缁撴灉鍥炶皟锛屾敞鎰忥細杩斿洖YES浠呬粎浠h〃鎴愬姛灏哤iFi淇℃伅鍙戦�佺粰璁惧锛屼笉浠h〃璁惧閰嶇綉鎴愬姛
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startAPConfigWifiWithSsid:(NSString *)ssid
+                         password:(NSString *)password
+                     deviceSerial:(NSString *)deviceSerial
+                       verifyCode:(NSString *)verifyCode
+                           result:(void (^)(BOOL ret))callback;
+
+/**
+ * AP閰嶇綉鎺ュ彛锛堟帹鑽愶紝v5.0鏂板锛屽皝瑁呬簡璁惧鐘舵�佽疆璇㈡楠わ級
+ *
+ * @param ssid WiFi鐨剆sid
+ * @param password WiFi鐨勫瘑鐮�
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param statusBlock 缁撴灉鍥炶皟锛岃繑鍥為厤缃戣繃绋嬩腑鐨勫悇绉嶇姸鎬�
+ *
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startAPConfigWifiWithSsid:(NSString *)ssid
+                         password:(NSString *)password
+                     deviceSerial:(NSString *)deviceSerial
+                       verifyCode:(NSString *)verifyCode
+                     deviceStatus:(void (^)(EZWifiConfigStatus status, NSString *deviceSerial))statusBlock;
+
+/**
+ * 鍋滄AP閰嶇綉
+ */
++ (void)stopAPConfigWifi;
+
+#pragma mark - 鎺ヨЕ寮忛厤缃� New AP Config
+
+/**
+ * 鑾峰彇鎺ヨЕ寮廇P閰嶇綉token
+ *
+ * @param completion 鍥炶皟
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getNewApConfigToken:(void(^)(EZConfigTokenInfo *tokenInfo, NSError *error))completion;
+
+/**
+ * 寮�濮婲ewAP閰嶇綉锛堥渶杩炴帴璁惧鐑偣锛�
+ * @param token 閰嶇綉token
+ * @param ssid WiFi ssid
+ * @param password WiFi 瀵嗙爜
+ * @param lbsDomain lbs 鍩熷悕
+ * @param handler 鍥炶皟
+ *
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startNewApConfigWithToken:(NSString *)token
+                             ssid:(NSString *)ssid
+                         password:(NSString *)password
+                        lbsDomain:(NSString *)lbsDomain
+                completionHandler:(void(^)(EZNewAPConfigStatus status, NSError *error))handler;
+
+/**
+ * 鑾峰彇璁惧鐘舵�侊紙闇�杩炴帴璁惧鐑偣锛�
+ *
+ * @param handler 鍥炶皟
+ */
++ (void)getAccessDeviceInfo:(void(^)(EZAPDevInfo *devInfo, NSError *error))handler;
+
+/**
+ * 鑾峰彇璁惧褰撳墠鍛ㄨ竟WiFi鍒楄〃锛屼笂闄�20涓紙闇�杩炴帴璁惧鐑偣锛�
+ *
+ * @param handler 鍥炶皟
+ */
++ (void)getAccessDeviceWifiList:(void(^)(NSArray<EZWiFiItemInfo*> *wifiList, NSError *error))handler;
+
+/**
+ * 鏌ヨ璁惧缁戝畾鐘舵��
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZProbeDeviceInfo瀵硅薄锛岄敊璇爜杩斿洖閿欒鐮�
+ *
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (NSURLSessionDataTask *)queryPlatformBindStatus:(NSString *)deviceSerial
+                                       completion:(void(^)(EZProbeDeviceInfo *deviceInfo, NSError *error))completion;
+
+/**
+ * 璁剧疆閰嶇綉璁惧缃戝叧鍦板潃 鍙��
+ * @param devRouteDomain 璁惧缃戝叧鍦板潃
+ */
++ (void)setDevRouteDomain:(NSString *)devRouteDomain;
+
+#pragma mark - 鐢ㄦ埛鐩稿叧Api
+
+/**
+ *  鑾峰彇鐢ㄦ埛鍩烘湰淇℃伅鐨勬帴鍙�
+ *
+ *  @param completion 鍥炶皟block锛� 姝e父鏃惰繑鍥濫ZUserInfo鐨勫璞★紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ *  @return operation
+ */
++ (NSURLSessionDataTask *)getUserInfo:(void (^)(EZUserInfo *userInfo, NSError *error))completion;
+
+#pragma mark - 鍏朵粬Api
+
+/**
+ *  鑾峰彇缁堢锛堟墜鏈虹瓑锛夊敮涓�璇嗗埆鐮�
+ *
+ *  @return 缁堢鍞竴璇嗗埆鐮�
+ */
++ (NSString *)getTerminalId;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZOpenSDKFramework.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZOpenSDKFramework.h
new file mode 100644
index 0000000..8f554ab
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZOpenSDKFramework.h
@@ -0,0 +1,54 @@
+//
+//  EZOpenSDKFramework.h
+//  EZOpenSDKFramework
+//
+//  Created by JuneCheng on 2022/7/23.
+//
+
+#ifndef EZOpenSDKFramework_h
+#define EZOpenSDKFramework_h
+
+#import <EZOpenSDKFramework/EZAccessToken.h>
+#import <EZOpenSDKFramework/EZAlarmInfo.h>
+#import <EZOpenSDKFramework/EZAreaInfo.h>
+#import <EZOpenSDKFramework/EZCameraInfo.h>
+#import <EZOpenSDKFramework/EZCloudRecordDownloadTask.h>
+#import <EZOpenSDKFramework/EZCloudRecordFile.h>
+#import <EZOpenSDKFramework/EZDetectorInfo.h>
+#import <EZOpenSDKFramework/EZDeviceCloudServiceInfo.h>
+#import <EZOpenSDKFramework/EZDeviceInfo.h>
+#import <EZOpenSDKFramework/EZDevicePtzAngleInfo.h>
+#import <EZOpenSDKFramework/EZDeviceRecordDownloadTask.h>
+#import <EZOpenSDKFramework/EZDeviceRecordFile.h>
+#import <EZOpenSDKFramework/EZDeviceUpgradeStatus.h>
+#import <EZOpenSDKFramework/EZDeviceVersion.h>
+#import <EZOpenSDKFramework/EZHCNetDeviceInfo.h>
+#import <EZOpenSDKFramework/EZHiddnsDeviceInfo.h>
+#import <EZOpenSDKFramework/EZLeaveMessage.h>
+#import <EZOpenSDKFramework/EZPlayerExParamInfo.h>
+#import <EZOpenSDKFramework/EZProbeDeviceInfo.h>
+#import <EZOpenSDKFramework/EZRecordDownloader.h>
+#import <EZOpenSDKFramework/EZRecordDownloadTask.h>
+#import <EZOpenSDKFramework/EZStorageInfo.h>
+#import <EZOpenSDKFramework/EZTokenKit.h>
+#import <EZOpenSDKFramework/EZUserInfo.h>
+#import <EZOpenSDKFramework/EZVideoQualityInfo.h>
+#import <EZOpenSDKFramework/EZVideoTransformer.h>
+#import <EZOpenSDKFramework/EzvizRecordFileInfo.h>
+#import <EZOpenSDKFramework/EzvizWatchServerInfo.h>
+
+#import <EZOpenSDKFramework/EZSADPDeviceInfo.h>
+#import <EZOpenSDKFramework/EZAPDevInfo.h>
+#import <EZOpenSDKFramework/EZConfigTokenInfo.h>
+#import <EZOpenSDKFramework/EZWiFiItemInfo.h>
+
+#import <EZOpenSDKFramework/EZConstants.h>
+#import <EZOpenSDKFramework/EZConstants_Auth.h>
+#import <EZOpenSDKFramework/EZConstants_WifiConfig.h>
+#import <EZOpenSDKFramework/EZOpenSDK.h>
+#import <EZOpenSDKFramework/EZGlobalSDK.h>
+#import <EZOpenSDKFramework/EZHCNetDeviceSDK.h>
+#import <EZOpenSDKFramework/EZPlayer.h>
+#import <EZOpenSDKFramework/EZStreamPlayer.h>
+
+#endif /* EZOpenSDKFramework_h */
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZPMPlayPrivateTokenInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZPMPlayPrivateTokenInfo.h
new file mode 100644
index 0000000..7d69b75
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZPMPlayPrivateTokenInfo.h
@@ -0,0 +1,22 @@
+//
+//  EZPMPlayPrivateTokenInfo.h
+//  EZPlay
+//
+//  Created by JuneCheng on 2022/11/24.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZPMPlayPrivateTokenInfo : NSObject
+
+@property (nonatomic, assign) BOOL enable;///<
+@property (nonatomic, copy) NSString *token;///<
+
+
+- (instancetype)initWithType:(NSInteger)type data:(NSData *)data;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZPlayer.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZPlayer.h
new file mode 100644
index 0000000..baea2e2
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZPlayer.h
@@ -0,0 +1,446 @@
+//
+//  EZPlayer.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/9/16.
+//  Copyright (c) 2015骞� Ezviz. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@class EZDeviceRecordFile;
+@class EZCloudRecordFile;
+@class EZPlayer;
+@class EZPlayerExParamInfo;
+@class EZDevicePtzAngleInfo;
+@class EZPMPlayPrivateTokenInfo;
+
+/**
+ *  棰勮娓呮櫚搴�
+ */
+typedef NS_ENUM(NSInteger, EZVideoQuality) {
+    EZVideoQualityLow    = 0,  //娴佺晠
+    EZVideoQualityMiddle = 1,  //鍧囪 
+    EZVideoQualityHigh   = 2   //楂樻竻
+};
+
+/* 鎾斁鍣‥ZPlayer鐨勭姸鎬佹秷鎭畾涔� */
+typedef NS_ENUM(NSInteger, EZMessageCode) {
+    PLAYER_REALPLAY_START = 1,        //鐩存挱寮�濮�
+    PLAYER_VIDEOLEVEL_CHANGE = 2,     //鐩存挱娴佹竻鏅板害鍒囨崲涓�
+    PLAYER_STREAM_RECONNECT = 3,      //鐩存挱娴佸彇娴佹鍦ㄩ噸杩�
+    PLAYER_VOICE_TALK_START = 4,      //瀵硅寮�濮�
+    PLAYER_VOICE_TALK_END = 5,        //瀵硅缁撴潫
+    PLAYER_STREAM_START = 10,         //褰曞儚鍙栨祦寮�濮�
+    PLAYER_PLAYBACK_START = 11,       //褰曞儚鍥炴斁寮�濮嬫挱鏀�
+    PLAYER_PLAYBACK_STOP = 12,        //褰曞儚鍥炴斁缁撴潫鎾斁
+    PLAYER_PLAYBACK_FINISHED = 13,    //褰曞儚鍥炴斁琚敤鎴峰己鍒朵腑鏂�
+    PLAYER_PLAYBACK_PAUSE = 14,       //褰曞儚鍥炴斁鏆傚仠
+    PLAYER_NET_CHANGED = 21,          //鎾斁鍣ㄦ娴嬪埌wifi鍙樻崲杩�
+    PLAYER_NO_NETWORK = 22,           //鎾斁鍣ㄦ娴嬪埌鏃犵綉缁�
+    PLAYER_CLOUD_IFRAME_CHANGED = 23, //浜戝瓨鍌ㄥ揩鏀炬椂锛岀敱鍏ㄥ抚蹇斁鍒囨崲鍒版娊甯у揩鏀剧殑鎻愮ず鍥炶皟
+    PLAYER_PLAYSPEED_LOWER = 24,      //浜戝瓨鍌ㄥ揩鏀炬椂鐨勯檷閫熼�氱煡(瀛樺湪涓ゆ闄嶉�燂細褰撳墠鍊嶉�熷ぇ浜�4鍊嶉�熸椂锛岄檷鍒�4鍊嶉�燂紱褰撳墠涓�4鍊嶉�熸椂锛岄檷涓�1鍊嶉��)
+};
+
+
+/**
+ *  鍥炴斁閫熺巼
+ */
+typedef NS_ENUM(NSInteger, EZPlaybackRate) {
+    EZOPENSDK_PLAY_RATE_1_16 = 9,  //浠�1/16鍊嶉�熷害鎾斁
+    EZOPENSDK_PLAY_RATE_1_8 = 7,   //浠�1/8鍊嶉�熷害鎾斁
+    EZOPENSDK_PLAY_RATE_1_4 = 5,   //浠�1/4鍊嶉�熷害鎾斁
+    EZOPENSDK_PLAY_RATE_1_2 = 3,   //浠�1/2鍊嶉�熸挱鏀�
+    EZOPENSDK_PLAY_RATE_1 = 1,     //浠ユ甯搁�熷害鎾斁
+    EZOPENSDK_PLAY_RATE_2 = 2,     //浠�2鍊嶉�熸挱鏀�
+    EZOPENSDK_PLAY_RATE_4 = 4,     //浠�4鍊嶉�熷害鎾斁
+    EZOPENSDK_PLAY_RATE_8 = 6,     //浠�8鍊嶉�熷害鎾斁
+    EZOPENSDK_PLAY_RATE_16 = 8,    //浠�16鍊嶉�熷害鎾斁
+    EZOPENSDK_PLAY_RATE_32 = 10,   //浠�32鍊嶉�熷害鎾斁
+};
+
+/// 钀ょ煶鎾斁鍣╠elegate鏂规硶
+@protocol EZPlayerDelegate <NSObject>
+
+@optional
+/**
+ *  鎾斁鍣ㄦ挱鏀惧け璐ラ敊璇洖璋�
+ *
+ *  @param player 鎾斁鍣ㄥ璞�
+ *  @param error  鎾斁鍣ㄩ敊璇�
+ */
+- (void)player:(EZPlayer *)player didPlayFailed:(NSError *)error;
+
+/**
+ *  鎾斁鍣ㄦ秷鎭洖璋�
+ *
+ *  @param player      鎾斁鍣ㄥ璞�
+ *  @param messageCode 鎾斁鍣ㄦ秷鎭爜锛岃瀵圭収EZOpenSDK澶存枃浠朵腑鐨凟ZMessageCode浣跨敤
+ */
+- (void)player:(EZPlayer *)player didReceivedMessage:(NSInteger)messageCode;
+
+/**
+ *  璇ユ柟娉曞簾寮冧簬v4.8.8鐗堟湰锛屽簳灞傚簱涓嶅啀鏀寔銆傝浣跨敤getStreamFlow鏂规硶
+ *  鏀跺埌鐨勬暟鎹暱搴︼紙姣忕璋冪敤涓�娆★級
+ *
+ *  @param player     鎾斁鍣ㄥ璞�
+ *  @param dataLength 鎾斁鍣ㄦ祦濯掍綋鏁版嵁鐨勯暱搴︼紙姣忕瀛楄妭鏁帮級
+ */
+- (void)player:(EZPlayer *)player didReceivedDataLength:(NSInteger)dataLength DEPRECATED_MSG_ATTRIBUTE("use getStreamFlow instead");
+
+/**
+ *  鏀跺埌鐨勭敾闈㈤暱瀹藉��
+ *
+ *  @param player 鎾斁鍣ㄥ璞�
+ *  @param height 楂樺害
+ *  @param width  瀹藉害
+ */
+- (void)player:(EZPlayer *)player didReceivedDisplayHeight:(NSInteger)height displayWidth:(NSInteger)width;
+
+/**
+ * 璁惧浜戝彴瑙掑害鏁版嵁鍥炶皟
+ *
+ * @param player 鎾斁鍣ㄥ璞�
+ * @param info 绉佹湁鏁版嵁
+ */
+- (void)player:(EZPlayer *)player didReceivedDevicePtzAngleInfo:(EZDevicePtzAngleInfo *)info;
+
+/**
+ * 鎾斁杩囩▼涓� 鍥炶皟瑙g爜鏁版嵁
+ * 閲嶈锛氳鍥炶皟浼氭瘮杈冮绻�(涓�绉掕嫢骞叉)锛屽悓鏃剁洿鎺ョ敱鎾斁搴撶嚎绋嬪洖璋冧笂鏉ワ紝璇峰嬁鍦ㄦ柟娉曚腑鍋氳�楁椂鎿嶄綔
+ * 閲嶈锛氬洖璋冪殑鏁版嵁鐨勫唴瀛樻槸鐢辨挱鏀惧簱鍐呴儴鍒嗛厤骞剁鐞嗙殑锛屽湪浣跨敤鏃讹紝璇峰悓姝ュ鐞嗗洖璋冪殑data锛涘闇�寮傛澶勭悊锛岃鎷疯礉璇ユ暟鎹�
+ *
+ * @param player 鎾斁鍣ㄥ璞�
+ * @param data 鎾斁搴撹В鐮佸嚭鐨勬暟鎹�
+ * @param width 瑙嗛瀹藉害
+ * @param height 瑙嗛楂樺害
+ */
+- (void)player:(EZPlayer *)player didDecodedData:(NSData *)data width:(NSInteger)width height:(NSInteger)height;
+
+/**
+ * 鍙栨祦鏁版嵁涓幏鍙栧紑闂╰oken鍥炶皟
+ *
+ * @param player 鎾斁鍣ㄥ璞�
+ * @param tokenInfo token瀵硅薄
+ */
+- (void)player:(EZPlayer *)player playPrivateTokenInfo:(EZPMPlayPrivateTokenInfo *)tokenInfo;
+
+@end
+
+/// 姝ょ被涓鸿悿鐭虫挱鏀惧櫒绫�
+@interface EZPlayer : NSObject
+
+/// EZPlayer鍏宠仈鐨刣elegate
+@property (nonatomic, weak) id<EZPlayerDelegate> delegate;
+
+/// 鏄惁璁╂挱鏀惧櫒澶勭悊杩涘叆鍚庡彴,YES:鑷姩澶勭悊;NO:涓嶅鐞�,榛樿涓篩ES
+@property (nonatomic, assign) BOOL backgroundModeByPlayer;
+
+/**
+ *  鏍规嵁璁惧搴忓垪鍙峰拰閫氶亾鍙峰垱寤篍ZPlayer瀵硅薄
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     閫氶亾鍙�
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (instancetype)createPlayerWithDeviceSerial:(NSString *)deviceSerial cameraNo:(NSInteger)cameraNo;
+//for 鍥芥爣
++ (instancetype)createPlayerWithDeviceSerial:(NSString *)deviceSerial strCameraNo:(NSString *)strCameraNo;
+/**
+ *  鏍规嵁url鏋勯�燛ZPlayer瀵硅薄 锛堜富瑕佺敤鏉ュ鐞嗚棰戝箍鍦虹殑鎾斁锛�
+ *
+ *  @param url 鎾斁url
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (instancetype)createPlayerWithUrl:(NSString *)url;
+
+
+/**
+ 灞�鍩熺綉璁惧鍒涘缓鎾斁鍣ㄦ帴鍙�
+
+ @param userId 鐢ㄦ埛id锛岀櫥褰曞眬鍩熺綉璁惧鍚庤幏鍙�
+ @param cameraNo 閫氶亾鍙�
+ @param streamType 鐮佹祦绫诲瀷 1:涓荤爜娴� 2:瀛愮爜娴�
+ @return EZPlayer瀵硅薄
+ */
++ (instancetype)createPlayerWithUserId:(NSInteger)userId cameraNo:(NSInteger)cameraNo streamType:(NSInteger)streamType;
+
+/**
+ *  @since 4.19.2
+ *  涓�涓〉闈㈠瓨鍦ㄥ涓棰戜娇鐢ㄦ渶灏忕殑鐮佹祦锛屾病鏈夊瓙鐮佹祦鐨勮瘽杩樻槸浣跨敤涓荤爜娴�
+ *
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param cameraNo     铏氭嫙閫氶亾
+ *  @param useSubStream   鏄惁浣跨敤瀛愮爜娴�
+ *
+ *  @return EZPlayer瀵硅薄
+ */
++ (instancetype)createPlayerWithDeviceSerial:(NSString *)deviceSerial cameraNo:(NSInteger)cameraNo useSubStream:(BOOL)useSubStream;
+
+/**
+ *  閿�姣丒ZPlayer
+ *
+ *  @return YES/NO;
+ */
+- (BOOL)destoryPlayer;
+
+/**
+ *  璁剧疆浣跨敤纭欢瑙g爜鍣ㄤ紭鍏堬紝闇�鍦╯tartRealPlay涔嬪墠璋冪敤
+ *
+ *  @param HDPriority 鏄惁纭В浼樺厛
+ */
+- (void)setHDPriority:(BOOL)HDPriority;
+
+/**
+ 鑾峰彇褰撳墠鐨勮蒋纭В鎯呭喌锛屽湪鐮佹祦姝e父鎾斁鍚庤皟鐢�
+ 
+ @return 1锛氳蒋瑙� 2锛氱‖瑙� 0锛氬嚭閿�
+ */
+- (int)getHDPriorityStatus;
+
+/**
+ *  璁剧疆璁惧褰掑睘涓氬姟鏉ユ簮锛岄渶瑕佸湪棰勮鍥炴斁鍓嶈皟鐢�  鍥芥爣璁惧浣跨敤
+ *
+ *  @param bizType 绫诲瀷       鍥芥爣涓� bizType='GB28181'
+ */
+- (void)setBizType:(NSString *)bizType;
+
+/**
+ *  骞冲彴id 鍥芥爣璁惧浣跨敤
+ *
+ *  @param platformId 绫诲瀷
+*/
+-(void)setPlatformId:(NSString *)platformId;
+
+/**
+ *  璁剧疆鎾斁鍣ㄧ殑view
+ *
+ *  @param playerView 鎾斁鍣╲iew
+ */
+- (void)setPlayerView:(UIView *)playerView;
+
+/**
+ *  鏄惁闈欓煶鎾斁锛宻tartRealPlay涔嬪墠璋冪敤
+ *
+ *  @param isSilencePlay 鏄惁闈欓煶鎾斁
+ */
+- (void)setSilencePlay:(BOOL)isSilencePlay;
+
+/**
+ *  寮�濮嬫挱鏀撅紝寮傛鎺ュ彛锛岃繑鍥炲�煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)startRealPlay;
+
+/**
+ *  鍋滄鎾斁锛屽紓姝ユ帴鍙o紝杩斿洖鍊煎彧鏄〃绀烘搷浣滄垚鍔�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)stopRealPlay;
+
+/**
+ *  璁剧疆鎾斁鍣ㄨВ鐮佸瘑鐮�
+ *
+ *  @param verifyCode 璁惧楠岃瘉鐮�
+ */
+- (void)setPlayVerifyCode:(NSString *)verifyCode;
+
+/**
+ *  寮�鍚0闊�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)openSound;
+
+/**
+ *  鍏抽棴澹伴煶
+ *
+ *  @return YES/NO
+ */
+- (BOOL)closeSound;
+
+/**
+ 鑾峰彇鎾斁缁勪欢鍐呴儴鐨勬挱鏀惧簱鐨刾ort
+ 
+ @return 鎾斁搴撶殑port,鍙兘涓�-1锛堟棤鏁堝�硷級
+ */
+- (int)getInnerPlayerPort;
+
+/**
+ 鑾峰彇褰撳墠宸叉挱鏀剧殑鎬绘祦閲忥紝鍗曚綅瀛楄妭
+ eg.璁$畻姣忕鐨勬祦閲忥細
+ NSInteger a = [self getStreamFlow];
+ //1s鍚庤皟鐢�
+ NSInteger b = [self getStreamFlow];
+ NSInteger perSecondFlow = b - a;
+ 
+ @return 娴侀噺鍊�
+ */
+- (NSInteger)getStreamFlow;
+
+/**
+ *  寮�濮婽TS瀵硅锛屽紓姝ユ帴鍙o紝杩斿洖鍊煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)startVoiceTalk;
+
+/**
+ *  寮�濮婽TS瀵硅锛屽紓姝ユ帴鍙o紝杩斿洖鍊煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
+ *  閽堝浜嶯VR瀵硅浣跨敤
+ *  @return YES/NO
+ */
+- (BOOL)startVoiceTalkNeedVoiceChannel:(BOOL)needVoiceChannel;
+
+/**
+ *  寮�濮婹os瀵硅锛屽紓姝ユ帴鍙o紝杩斿洖鍊煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)startVoiceTalkByQos;
+
+/**
+ *  鍋滄瀵硅锛屽紓姝ユ帴鍙o紝杩斿洖鍊煎彧鏄〃绀烘搷浣滄垚鍔�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)stopVoiceTalk;
+
+/**
+ 棰勮鏃跺紑濮嬫湰鍦板綍鍍忛褰曞埗鍔熻兘锛屽紓姝ユ柟娉�
+ 
+ @param path 鏂囦欢瀛樺偍璺緞
+ @return YES/NO
+ */
+- (BOOL)startLocalRecordWithPathExt:(NSString *)path;
+
+
+/**
+ 缁撴潫鏈湴褰曞儚棰勫綍鍒讹紝骞剁敓鎴恗p4褰曞埗鏂囦欢锛屽紓姝ユ柟娉�
+ 
+ @param complete 鎿嶄綔鏄惁鎴愬姛 YES/NO
+ */
+- (void)stopLocalRecordExt:(void (^)(BOOL ret))complete;
+
+
+/**
+ *  鍗婂弻宸ュ璁蹭笓鐢ㄦ帴鍙o紝鏄惁鍒囨崲鍒板惉璇寸姸鎬�
+ *
+ *  @param isPressed 鏄惁鍙鐘舵��
+ *
+ *  @return YES/NO
+ */
+- (BOOL)audioTalkPressed:(BOOL)isPressed;
+
+/**
+ *  寮�濮嬩簯瀛樺偍杩滅▼鍥炴斁锛屽紓姝ユ帴鍙o紝杩斿洖鍊煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
+ *  @param cloudFile 浜戝瓨鍌ㄦ枃浠朵俊鎭�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)startPlaybackFromCloud:(EZCloudRecordFile *)cloudFile;
+
+/**
+ *  寮�濮嬭繙绋婼D鍗″洖鏀撅紝寮傛鎺ュ彛锛岃繑鍥炲�煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
+ *
+ *  @param deviceFile SD鍗℃枃浠朵俊鎭�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)startPlaybackFromDevice:(EZDeviceRecordFile *)deviceFile;
+
+/**
+ *  鏆傚仠杩滅▼鍥炴斁鎾斁
+ */
+- (BOOL)pausePlayback;
+
+/**
+ *  缁х画杩滅▼鍥炴斁鎾斁
+ */
+- (BOOL)resumePlayback;
+
+/**
+ *  鏍规嵁鍋忕Щ鏃堕棿鎾斁
+ *
+ *  @param offsetTime 褰曞儚鍋忕Щ鏃堕棿
+ */
+- (void)seekPlayback:(NSDate *)offsetTime;
+
+/**
+ *  鑾峰彇褰撳墠鎾斁鏃堕棿杩涘害
+ *
+ *  @return 鎾斁杩涘害鐨凬SDate鏁版嵁
+ */
+- (NSDate *)getOSDTime;
+
+/**
+ *  鍋滄杩滅▼鍥炴斁
+ */
+- (BOOL)stopPlayback;
+
+/**
+ *  鐩存挱鐢婚潰鎶撳浘
+ *
+ *  @param quality 鎶撳浘璐ㄩ噺锛�0锝�100锛�,鏁板�艰秺澶у浘鐗囪川閲忚秺濂斤紝鍥剧墖澶у皬瓒婂ぇ
+ *
+ *  @return image
+ */
+- (UIImage *)capturePicture:(NSInteger)quality;
+
+/**
+ 鑾峰彇鍐呴儴鎾斁鍣ㄥ彞鏌勩�傚缓璁瘡娆′娇鐢ㄦ挱鏀惧櫒鍙ユ焺鏃跺潎璋冪敤姝ゆ柟娉曡幏鍙栵紝骞惰繘琛屾湁鏁堟�у垽鏂��
+
+ @return 灏忎簬0涓烘棤鏁堝�硷紝澶т簬绛変簬0涓烘湁鏁堝��
+ */
+- (int)getPlayPort;
+
+/**
+ 鑾峰彇褰撳墠鍙栨祦鏂瑰紡锛�
+
+ @return 褰撳墠鍙栨祦绫诲瀷
+ */
+- (int)getStreamFetchType;
+
+/**
+sd鍗″強浜戝瓨鍌ㄥ�嶉�熷洖鏀炬帴鍙�
+1.鏀寔鎶藉抚蹇斁鐨勮澶囨渶楂樻敮鎸�16鍊嶉�熷揩鏀撅紙鎵�鏈夊彇娴佹柟寮忥紝鍖呮嫭P2P锛�
+2.涓嶆敮鎸佹娊甯у揩鏀剧殑璁惧锛屼粎鏀寔鍐呭缃戠洿杩炲揩鏀撅紝鏈�楂樻敮鎸�8鍊�
+3.HCNetSDK鍙栨祦娌℃湁蹇斁姒傚康锛屽叏閫熸帹娴侊紝鍙敼鍙樻挱鏀惧簱閫熺巼
+4.娉ㄦ剰鍖哄埆锛�
+   鑰丼D鍗″洖鏀句互鍙奌CNetSDK鍥炴斁锛岃缃畬閫氳繃杩斿洖鍊艰繑鍥炴垚鍔熻繕鏄け璐ワ紝娌℃湁鍏朵粬娑堟伅
+   鏂板崗璁殑浜戝瓨鍌ㄥ洖鏀句互鍙婃敮鎸乻eek銆乧ontinue鐨勮澶嘾鏂癝D鍗″洖鏀撅紝璁剧疆瀹岄�氳繃杩斿洖鍊艰繑鍥炴垚鍔熻繕鏄け璐ワ紝濡傛灉鎴愬姛锛�
+   鍒欏悗缁繕鏈変竴鏉ZVideoPlayerMessageStart寮傛娑堟伅琛ㄧず鎴愬姛鍐嶆鍙栨祦
+   杩斿洖鍏朵粬閿欒鐮佽〃绀哄け璐� (鏂板崗璁簯瀛樺偍鍜屾柊SD鍗″洖鏀捐繑鍥濫Z_ERROR_NEED_RETRY 琛ㄧず闇�瑕侀噸璇曪級
+
+@param rate    鍥炴斁閫熷害锛屽叿浣撳弬鑰� EZ_PLAY_BACK_RATE
+@param mode 鍥炴斁鏃剁殑鎶藉抚鎺у埗锛屽綋鍓嶄粎浜戝瓨鍌ㄦ敮鎸併��0锛� 4鍊嶉�熷叏甯э紝8鍊嶉�熶互涓婃娊甯�   1锛氭娊甯�   2锛氬叏甯�  锛堝璁惧鍥炴斁褰撳墠涓嶆敮鎸侊紝浼犲叆0鍗冲彲锛�
+@return YES/NO
+ */
+- (BOOL)setPlaybackRate:(EZPlaybackRate) rate mode:(NSUInteger)mode;
+
+/**
+ 璁剧疆鍏ㄥ弻宸ュ璁叉椂鐨勬ā寮�,瀵硅鎴愬姛鍚庤皟鐢�
+ 
+ @param routeToSpeaker YES:浣跨敤鎵0鍣� NO:浣跨敤鍚瓛
+ */
+- (void)changeTalkingRouteMode:(BOOL)routeToSpeaker;
+
+/// //鎵╁睍鍙傛暟 UIKit涓撶敤
+/// @param exParamInfo EZPlayerExParamInfo
+- (void)setExParamInfo:(EZPlayerExParamInfo *)exParamInfo;
+
+/**
+ * 璁剧疆鎵撳紑鎾斁搴撶殑鏅鸿兘鍒嗘瀽锛屽綋鍓嶆俯鎰熺浉鏈虹殑妗嗘浣跨敤浜嗚鏅鸿兘鍒嗘瀽鏁版嵁锛岄瑙堟垚鍔熷悗璋冪敤锛屽湪鎾斁杩囩▼涓殢鏃跺紑鍏�
+ *
+ * @param enable YES锛氬紑  NO锛氬叧
+ *
+ * @return 杩斿洖鐘舵��
+ */
+- (BOOL)setIntelAnalysis:(BOOL)enable;
+
+@end
+
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZPlayerExParamInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZPlayerExParamInfo.h
new file mode 100644
index 0000000..1fe1a86
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZPlayerExParamInfo.h
@@ -0,0 +1,34 @@
+//
+//  EZPlayerExParamInfo.h
+//  EzvizOpenSDK
+//
+//  Created by linyong on 2018/4/2.
+//  Copyright 漏 2018骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+typedef enum
+{
+    EZPLAYER_STREAM_DEFAULT = 0,//榛樿
+    EZPLAYER_STREAM_MAIN,//涓荤爜娴�
+    EZPLAYER_STREAM_SUB,//瀛愮爜娴�
+    EZPLAYER_STREAM_MAX
+}EZPlayerStreamType;
+
+typedef enum
+{
+    EZPLAYER_TRANS_DEFAULT = 0, //榛樿
+    EZPLAYER_TRANS_EZVIZ,//钀ょ煶绉佹湁娴佸獟浣�
+    EZPLAYER_TRANS_RTMP,//RTMP
+    EZPLAYER_TRANS_MAX
+}EZPlayerTransportType;
+
+@interface EZPlayerExParamInfo : NSObject
+
+@property (nonatomic,copy) NSString *vtduIp; ///vtdu鏈嶅姟鍣╥p
+@property (nonatomic,assign) NSInteger vtduPort; //vtdu绔彛鍙�
+@property (nonatomic) EZPlayerStreamType streamMode; ///榛樿涓�0锛屼富鐮佹祦涓�1锛屽瓙鐮佹祦涓�2
+@property (nonatomic,assign) EZPlayerTransportType protocolType; ///浼犺緭鍗忚锛岄粯璁や负0
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZProbeDeviceInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZProbeDeviceInfo.h
new file mode 100644
index 0000000..18e7369
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZProbeDeviceInfo.h
@@ -0,0 +1,47 @@
+//
+//  EZProbeDeviceInfo.h
+//  EZWiFiConfigSDK
+//
+//  Created by DeJohn Dong on 15/12/11.
+//  Copyright 漏 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓烘煡璇㈣澶囦俊鎭璞★紙璁惧娣诲姞鍓嶄娇鐢級
+@interface EZProbeDeviceInfo : NSObject
+
+/// 灞曠ず鍚嶇О
+@property (nonatomic, copy) NSString *displayName;
+/// 璁惧澶х被鍚�
+@property (nonatomic, copy) NSString *category;
+/// 璁惧鍨嬪彿鍚�
+@property (nonatomic, copy) NSString *model;
+/// 璁惧鐭簭鍒楀彿
+@property (nonatomic, copy) NSString *subSerial;
+/// 璁惧闀垮簭鍒楀彿
+@property (nonatomic, copy) NSString *fullSerial;
+/// 璁惧鍦ㄧ嚎鐘舵�侊紝1-鍦ㄧ嚎锛屽叾浠�-涓嶅湪绾�
+@property (nonatomic) NSInteger status;
+/// 璁惧鍥剧墖
+@property (nonatomic, copy) NSString *defaultPicPath;
+/// 鏄惁鏀寔wifi锛�0-涓嶆敮鎸侊紝1-鏀寔锛�2-鏀寔甯serId鐨勬柊鐨剋ifi閰嶇疆鏂瑰紡锛�3-鏀寔smartwifi
+@property (nonatomic) NSInteger supportWifi;
+/// 鏄惁鏀寔AP閰嶇綉锛�2-鏀寔AP锛屽叾浠栧�间负涓嶆敮鎸丄P閰嶇綉
+@property (nonatomic) NSInteger supportAP;
+/// 鏄惁鏀寔澹版尝閰嶇疆,0-涓嶆敮鎸侊紝1-鏀寔
+@property (nonatomic) NSInteger supportSoundWave;
+/// 鏄惁鏀寔浜戝瓨鍌紝0-涓嶆敮鎸侊紝1-鏀寔
+@property (nonatomic) NSInteger supportCloud;
+/// 璁惧鍗忚鐗堟湰
+@property (nonatomic, copy) NSString *releaseVersion;
+/// 璁惧鐗堟湰
+@property (nonatomic, copy) NSString *version;
+/// 鍙敤浜庢坊鍔犵殑閫氶亾鏁�
+@property (nonatomic) NSInteger availiableChannelCount;
+/// N1锛孯1锛孉1绛夎澶囧叧鑱旂殑璁惧鏁�
+@property (nonatomic) NSInteger relatedDeviceCount;
+/// 鑳藉姏闆�
+@property (nonatomic, copy) NSString *supportExt;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRTCCameraParam.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRTCCameraParam.h
new file mode 100644
index 0000000..503a5b8
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRTCCameraParam.h
@@ -0,0 +1,38 @@
+//
+//  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 EZRTCCameraParam : NSObject
+
+
+/// 鎽勫儚澶撮噰闆嗛噰闆嗙敾闈㈢殑榛樿璁剧疆锛屾瘮濡侫VCaptureSessionPreset1280x720锛岃浼犲叆AVCaptureSessionPreset640x480 浠ヤ笂鐨勫垎杈ㄧ巼
+//@property (nonatomic, strong) AVCaptureSessionPreset resolutionPreset;
+
+/// 鏈�缁堣緭鍑虹殑鐢婚潰鐨勫
+//@property (nonatomic, assign) NSInteger pixelWidth;
+//
+///// 鏈�缁堣緭鍑虹殑鐢婚潰鐨勯珮
+//@property (nonatomic, assign) NSInteger pixelHeigth;
+
+/// 浼犲叆 AVCaptureVideoOrientation锛岄粯璁ょ珫灞�
+@property (nonatomic, assign) AVCaptureVideoOrientation videoOrientation;
+
+
+/// 鏄惁鏄悗缃憚鍍忓ご锛岄粯璁O
+@property (nonatomic, assign) BOOL isBackCameraSeleced;
+
+///// I甯ч棿闅� 榛樿4绉�
+//@property (nonatomic, assign) NSInteger encodeKeyFrameInterval;
+//
+///// 甯х巼
+//@property (nonatomic, assign) NSInteger fps;
+
++ (AVCaptureSessionPreset)resolutionPresetForWidth:(NSInteger)width andHeigth:(NSInteger)heigth andOri:(AVCaptureVideoOrientation)ori;
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRTCMediaSessionDefines.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRTCMediaSessionDefines.h
new file mode 100644
index 0000000..7c1a1bb
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRTCMediaSessionDefines.h
@@ -0,0 +1,107 @@
+//
+//  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 EZMediaSessionDefaultStreamWidth (480)
+#define EZMediaSessionDefaultStreamHeight (480)
+
+#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, EZAudioEncoderError) {
+    EZAudioEncoderErrorUnknown = EZMediaSessionErrorBaseAudioEncode,
+    EZAudioEncoderErrorFailToInitConverter = 30100,
+    EZAudioEncoderErrorFailToGetDataBuffer,
+    EZAudioEncoderErrorFailToEncodeBuffer,
+};
+
+typedef NS_ENUM(NSUInteger, EZVideoH264EncoderError) {
+    EZVideoH264EncoderErrorUnknown = EZMediaSessionErrorBaseVideoEncode,
+    EZVideoH264EncoderErrorInitFailed = 40100,
+    EZVideoH264EncoderErrorInvalidSample,
+    EZVideoH264EncoderErrorSampleNotReady,
+    EZVideoH264EncoderErrorNotRunning,
+    EZVideoH264EncoderErrorSetMaxBPSFailed,
+    EZVideoH264EncoderErrorSetAverageBPSFailed,
+    EZVideoH264EncoderErrorParamError,
+    EZVideoH264EncoderErrorEncodeFailed = 40200,
+};
+
+typedef NS_ENUM(NSUInteger, EZBAVStreamClientError) {
+    EZBAVStreamClientErrorUnknow = EZMediaSessionErrorBaseStreamClient,
+    EZBAVStreamClientErrorAudioEnableNotAllowed = EZMediaSessionErrorBaseStreamClient + 9000,
+    EZBAVStreamClientErrorShareEnableNotAllowed,
+
+};
+
+
+typedef NS_ENUM(NSUInteger, EZRTCAudioEncodeType) {
+    EZRTCAudioEncodeType_AAC,
+    EZRTCAudioEncodeType_Opus,
+};
+
+
+@interface EZRTCMediaSessionDefines : NSObject
+@end
+
+typedef void(^EZScreenShareResultBlock)(NSInteger ret);
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRTCSampleHandleManager.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRTCSampleHandleManager.h
new file mode 100644
index 0000000..f1d9a21
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRTCSampleHandleManager.h
@@ -0,0 +1,31 @@
+//
+//  FIAgoraSocketManager.h
+//  FIAgoraVideo
+//
+//  Created by flagadmin on 2020/5/7.
+//  Copyright 漏 2020 flagadmin. All rights reserved.
+//
+
+#import <ReplayKit/ReplayKit.h>
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef enum : NSUInteger {
+    EZSampleHandleManagerStateUnconnected,
+    EZSampleHandleManagerStateConnecting,
+    EZSampleHandleManagerStateConnected,
+    EZSampleHandleManagerStateStopped,
+} EZSampleHandleManagerState;
+
+
+@interface EZRTCSampleHandleManager : NSObject
++ (EZRTCSampleHandleManager *)sharedManager;
+@property (nonatomic, assign, readonly) EZSampleHandleManagerState state;
+- (void)setup;
+- (void)finish;
+- (void)sendVideoBuffer:(CMSampleBufferRef)sampleBuffer;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRTCVideoEncodeParam.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRTCVideoEncodeParam.h
new file mode 100644
index 0000000..b420fba
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRTCVideoEncodeParam.h
@@ -0,0 +1,30 @@
+//
+//  EZMediaSessionEncodeParam.h
+//  EZMediaSession
+//
+//  Created by kanhaiping on 2018/8/24.
+//  Copyright 漏 2018骞� hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@class EZRTCCameraParam;
+
+@interface EZRTCVideoEncodeParam : NSObject
+
+//濡傛灉缂栫爜鐨勭洰鏍囧楂樹负0锛屽垯缂栫爜杈撳嚭涓鸿緭鍏ョ殑鍘熷瀹介珮
+@property (nonatomic, assign) NSInteger pixelWidth;
+@property (nonatomic, assign) NSInteger pixelHeigth;
+@property (nonatomic, assign) NSInteger fps;
+@property (nonatomic, assign) NSInteger averageBPS;
+@property (nonatomic, assign, readonly) NSInteger maxBPS;
+@property (nonatomic, assign) NSInteger encodeKeyFrameInterval;//I甯ч棿闅旓紝鍗曚綅绉�
+
+//+ (EZRTCVideoEncodeParam *)encodeParamFromVideoParam:(EZRTCCameraParam *)videoParam;
++ (EZRTCVideoEncodeParam *)defaultEncodeParam;
++ (EZRTCVideoEncodeParam *)deviceWatchParam;
++ (EZRTCVideoEncodeParam *)deviceBabyRobotParam;
++ (EZRTCVideoEncodeParam *)encodeParamForScreenShare;
++ (EZRTCVideoEncodeParam *)encodeParamForGlobalScreenShare;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRecordCoverFetcherManager.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRecordCoverFetcherManager.h
new file mode 100644
index 0000000..c8bec6a
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRecordCoverFetcherManager.h
@@ -0,0 +1,69 @@
+//
+//  EZRecordCoverFetcherManager.h
+//  EZPlay
+//
+//  Created by JuneCheng on 2022/12/19.
+//
+
+#import <Foundation/Foundation.h>
+@class EZDeviceRecordFile;
+
+// Fetcher鍒濆鍖栦唬鐞�
+@protocol RecordCoverFetcherDelegate<NSObject>
+
+@optional
+/**
+ * SD鍗″綍鍍忓皝闈㈡彁鍙栧櫒鍒濆鍖栨垚鍔熷洖璋�
+ */
+- (void)onFetcherInitSuccess;
+
+/**
+ * SD鍗″綍鍍忓皝闈㈡彁鍙栧櫒鍒濆鍖栧け璐ュ洖璋�
+ */
+- (void)onFetcherInitFailed;
+
+/**
+ * SD鍗″綍鍍忓皝闈㈡彁鍙栧皝闈㈡垚鍔熷洖璋�
+ */
+- (void)onGetCoverSuccess:(int)seq data:(NSData *_Nonnull)data;
+
+/**
+ * SD鍗″綍鍍忓皝闈㈡彁鍙栧皝闈㈠け璐ュ洖璋�
+ */
+- (void)onGetCoverFailed:(int)errorCode;
+
+@end
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZRecordCoverFetcherManager : NSObject
+
+
+@property (nonatomic, weak) id <RecordCoverFetcherDelegate> fetcherDelegate;
+
++ (instancetype)sharedInstance;
+
+/**
+ * 涓庤澶囧缓绔嬮摼鎺ワ紙鍥藉唴鏀寔锛屾捣澶栦笉鏀寔锛�
+ *
+ * @param   deviceSerial 璁惧搴忓垪鍙�
+ * @param   cameraNo 璁惧閫氶亾鍙�
+ */
+- (void)initFetcherWithDeviceSerial:(NSString *)deviceSerial cameraNo:(NSInteger)cameraNo;
+
+
+/**
+ * 鏂紑涓庤澶囩殑閾炬帴锛堝浗鍐呮敮鎸侊紝娴峰涓嶆敮鎸侊級
+ */
+- (void)stopFetcher;
+
+
+/**
+ * 璺熻澶囪姹係D鍗″綍鍍忓皝闈紙鍥藉唴鏀寔锛屾捣澶栦笉鏀寔锛�
+ */
+- (void)requestRecordCover:(NSArray<EZDeviceRecordFile *> *)recordFiles;
+
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRecordDownloadTask.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRecordDownloadTask.h
new file mode 100644
index 0000000..ba50a2a
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRecordDownloadTask.h
@@ -0,0 +1,86 @@
+//
+//  EZRecordDownloadTask.h
+//  EZOpenSDK
+//
+//  Created by yuqian on 2019/7/2.
+//  Copyright 漏 2019 Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSInteger, EZRecordDownloaderStatus)
+{
+    EZRecordDownloaderStatusStart = 1,          //寮�濮嬩笅杞�
+    EZRecordDownloaderStatusFinish = 2,         //褰曞儚涓嬭浇缁撴潫
+    EZRecordDownloaderStatusMoreToken = 3,
+};
+
+typedef enum : NSUInteger {
+    EZRecordDownloadTaskWaitting,
+    EZRecordDownloadTaskDownloading,
+    EZRecordDownloadTaskCompleting,
+} EZRecordDownloadTaskStatus;
+
+@interface EZRecordDownloadTask : NSObject
+
+/**
+ 姣忎釜涓嬭浇浠诲姟鐨勫敮涓�鏍囪瘑
+ */
+@property (nonatomic, assign) NSUInteger taskID;
+
+
+@property (nonatomic, assign) EZRecordDownloadTaskStatus taskStatus;
+
+/**
+ 鏈湴瀛樻斁璺緞
+ */
+@property (nonatomic, strong) NSString *saveFilePath;
+
+/**
+ 缁撴潫鍥炶皟
+ */
+@property (nonatomic, copy) void(^finshed)(EZRecordDownloaderStatus statusCode);
+
+/**
+ 澶辫触鍥炶皟
+ */
+@property (nonatomic, copy) void(^failed)(NSError *error);
+
+/**
+ 宸蹭笅杞芥枃浠跺ぇ灏忓洖璋�
+ */
+@property (nonatomic, copy) void(^downloading)(NSUInteger downloadSize);
+
+/**
+ 寮�濮嬩笅杞�
+
+ @return 鎴愬姛0锛屽け璐�-1
+ */
+- (int)startRecordDownload;
+
+/**
+ 缁撴潫涓嬭浇锛屾竻鐞嗚祫婧�
+ */
+- (void)stopRecordDownload;
+
+/**
+ 璁剧疆涓嬭浇鍥炶皟
+ 
+ @param finshed 缁撴潫鍥炶皟
+ @param failed 澶辫触鍥炶皟
+ */
+- (void)setDownloadCallBackWithFinshed:(void(^)(EZRecordDownloaderStatus statusCode))finshed
+                                failed:(void(^)(NSError *error))failed;
+
+/**
+ 璁剧疆涓嬭浇杩涘害鍥炶皟
+ 
+ @param downloading 涓嬭浇鏂囦欢澶у皬鍥炶皟
+ */
+- (void)setDownloadCallBackWithDownloadSize:(void(^)(NSUInteger downloadSize))downloading;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRecordDownloader.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRecordDownloader.h
new file mode 100644
index 0000000..d815790
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZRecordDownloader.h
@@ -0,0 +1,49 @@
+//
+//  EZRecordDownloader.h
+//  EZOpenSDK
+//
+//  Created by yuqian on 2019/7/2.
+//  Copyright 漏 2019 Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class EZRecordDownloadTask;
+
+@interface EZRecordDownloader : NSObject
+
+
+/// 涓嬭浇浠诲姟闃熷垪
+@property (nonatomic, strong, readonly) NSMutableArray *tasks;
+
+/**
+ 鍒濆鍖栧崟渚�
+ 
+ @return 鍗曚緥
+ */
++ (instancetype) shareInstane;
+
+/**
+ 娣诲姞涓嬭浇浠诲姟锛屽苟寮�濮嬩笅杞�
+ 浠诲姟涓嬭浇骞跺彂鏁伴噺闄愬埗锛屾渶楂樻敮鎸� 10 涓换鍔″苟琛屼笅杞�
+ 璁惧褰曞儚涓嬭浇锛氫緷璧栬澶囨墍鏀寔鐨勬渶楂樿矾鏁伴檺鍒�
+ 
+ 
+ @param task 涓嬭浇浠诲姟
+ @return 鏄惁鍔犲叆闃熷垪鎴愬姛  0 寮�濮嬩笅杞� -1 浠诲姟涓虹┖   -2 浠诲姟宸插湪涓嬭浇 
+ */
+- (int) addDownloadTask:(EZRecordDownloadTask *)task;
+
+/**
+ 鍋滄涓嬭浇浠诲姟锛屽苟娓呴櫎涓嬭浇鍒楄〃涓殑浠诲姟銆備笅杞界粨鏉熸垨澶辫触鍧囪鎵ц锛屾竻鐞嗚祫婧�
+ 
+ @param task 涓嬭浇浠诲姟
+ @return 鏄惁绉婚櫎闃熷垪鎴愬姛
+ */
+- (int) stopDownloadTask:(EZRecordDownloadTask *)task;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZSADPDeviceInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZSADPDeviceInfo.h
new file mode 100644
index 0000000..7abbece
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZSADPDeviceInfo.h
@@ -0,0 +1,40 @@
+//
+//  EZSADPDeviceInfo.h
+//  EzvizOpenSDK
+//
+//  Created by linyong on 2017/8/15.
+//  Copyright 漏 2017骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface EZSADPDeviceInfo : NSObject
+
+///闀胯澶囧簭鍒楀彿
+@property (nonatomic,copy) NSString *deviceSerial;
+///璁惧mac鍦板潃
+@property (nonatomic,copy) NSString *deviceMac;
+///璁惧鏄惁婵�娲�
+@property (nonatomic,assign) BOOL actived;
+///璁惧鏈湴鍦板潃 IPV4
+@property (nonatomic,copy) NSString *localIp;
+///璁惧绔彛鍙�
+@property (nonatomic,assign) NSInteger localPort;
+///璁惧鏈湴鍦板潃 IPV6
+@property (nonatomic,copy) NSString *localIpV6;
+///http绔彛鍙�
+@property (nonatomic,assign) NSInteger httpPort;
+///璁惧绫诲瀷
+@property (nonatomic,assign) NSInteger deviceType;
+///璁惧绫诲瀷鎻忚堪
+@property (nonatomic,copy) NSString *deviceTypeDes;
+///璁惧鍥轰欢鐗堟湰鍙�
+@property (nonatomic,copy) NSString *firmwareVersion;
+///鎸変綅琛ㄧず,瀵瑰簲涓轰负1琛ㄧず鏀寔,0x01:鏄惁鏀寔Ipv6,0x02:鏄惁鏀寔淇敼Ipv6鍙傛暟,0x04:鏄惁鏀寔Dhcp,0x08:鏄惁鏀寔udp澶氭挱,0x10:鏄惁鍚姞瀵嗚妭鐐�,0x20:鏄惁鏀寔鎭㈠瀵嗙爜,0x40:鏄惁鏀寔閲嶇疆瀵嗙爜,0x80:鏄惁鏀寔鍚屾IPC瀵嗙爜
+@property (nonatomic,assign) NSInteger abilitySupport;
+///鏄惁鍚敤DHCP
+@property (nonatomic,assign) BOOL DHCPOn;
+///鏄惁鏄悿鐭宠澶�
+@property (nonatomic,assign) BOOL isEzvizDevice;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZStorageInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZStorageInfo.h
new file mode 100644
index 0000000..2393d5a
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZStorageInfo.h
@@ -0,0 +1,23 @@
+//
+//  EZStorageInfo.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/12/15.
+//  Copyright 漏 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓鸿澶囧瓨鍌ㄤ俊鎭璞�
+@interface EZStorageInfo : NSObject
+
+/// 瀛樺偍浠嬭川绱㈠紩
+@property (nonatomic) NSInteger index;
+/// 瀛樺偍浠嬭川鍚嶇О
+@property (nonatomic, copy) NSString *name;
+/// 瀛樺偍浠嬭川鐘舵�侊紝0姝e父銆�1瀛樺偍浠嬭川閿欍��2鏈牸寮忓寲銆�3姝e湪鏍煎紡鍖�
+@property (nonatomic) NSInteger status;
+/// 瀛樺偍浠嬭川鏍煎紡鍖栬繘搴�
+@property (nonatomic) NSInteger formatRate;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZStreamPlayer.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZStreamPlayer.h
new file mode 100644
index 0000000..408ba05
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZStreamPlayer.h
@@ -0,0 +1,118 @@
+//
+//  EZStreamPlayer.h
+//  EZOpenSDKFramework
+//
+//  Created by yuqian on 2020/4/3.
+//  Copyright 漏 2020 Hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "EZDeviceRecordFile.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class EZStreamPlayer;
+
+typedef enum : NSUInteger {
+    EZStreamPlayerMsgTypeUnknown,              //鏃犳晥绫诲瀷
+    EZStreamPlayerMsgTypeRealPlayStart,        //寮�鍚瑙堟垚鍔�
+    EZStreamPlayerMsgTypeRealPlayClose,        //鍏抽棴棰勮鎴愬姛
+    EZStreamPlayerMsgTypePlayBackStart,        //寮�鍚澶囧洖鏀炬垚鍔�
+    EZStreamPlayerMsgTypePlayBackClose,        //鍏抽棴璁惧鍥炴斁鎴愬姛
+} EZStreamPlayerMsgType;
+
+typedef enum : NSUInteger {
+    EZStreamDataTypeUnknown,                   // 鏃犳晥绫诲瀷
+    EZStreamDataTypeHeader,                    // 鎺ユ敹娴佸ご
+    EZStreamDataTypeData,                      // 鎺ユ敹鏁版嵁
+    EZStreamDataTypeStreamEnd,                 // 娴佺粨鏉�
+}EZStreamDataType;
+
+
+@protocol EZStreamPlayerDelegate <NSObject>
+
+/**
+ *  鎾斁鍣ㄦ挱鏀惧け璐ラ敊璇洖璋�
+ *
+ *  @param player 鎾斁鍣ㄥ璞�
+ *  @param error  鎾斁鍣ㄩ敊璇�
+ */
+- (void)streamPlayer:(EZStreamPlayer *)player didPlayFailed:(NSError *)error;
+
+/**
+ *  鎾斁鍣ㄦ秷鎭洖璋�
+ *
+ *  @param player      鎾斁鍣ㄥ璞�
+ *  @param msgType 鎾斁鍣ㄦ秷鎭爜
+ */
+- (void)streamPlayer:(EZStreamPlayer *)player didReceivedMessage:(EZStreamPlayerMsgType)msgType;
+
+/**
+ *  鐮佹祦鍥炶皟
+ *
+ *  @param player     鎾斁鍣ㄥ璞�
+ *  @param dataType  鏁版嵁绫诲瀷
+ *  @param data        鐮佹祦鏁版嵁
+ *  @param dataLength  闀垮害
+ */
+- (void)streamPlayer:(EZStreamPlayer *)player didReceivedData:(EZStreamDataType)dataType data:(int8_t *)data length:(int)dataLength;
+
+@end
+
+@interface EZStreamPlayer : NSObject
+
+@property (nonatomic, weak) id<EZStreamPlayerDelegate>delegate;
+
+/// 鏄惁璁╂挱鏀惧櫒澶勭悊杩涘叆鍚庡彴,YES:鑷姩澶勭悊;NO:涓嶅鐞�,榛樿涓篩ES
+@property (nonatomic) BOOL backgroundModeByPlayer;
+
+
+/**
+*  鏍规嵁璁惧搴忓垪鍙峰拰閫氶亾鍙峰垱寤篍ZPlayer瀵硅薄
+*
+*  @param deviceSerial 璁惧搴忓垪鍙�
+*  @param cameraNo     閫氶亾鍙�
+*
+*  @return EZStreamPlayer瀵硅薄
+*/
++ (instancetype)createPlayerWithDeviceSerial:(NSString *)deviceSerial cameraNo:(NSInteger)cameraNo;
+
+/**
+ *  閿�姣丒ZPlayer
+ *
+ *  @return YES/NO;
+ */
+- (BOOL)destoryPlayer;
+
+/**
+ *  寮�濮嬫挱鏀撅紝寮傛鎺ュ彛锛岃繑鍥炲�煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)startRealPlay;
+
+/**
+ *  鍋滄鎾斁锛屽紓姝ユ帴鍙�
+ *
+ */
+- (void)stopRealPlay;
+
+/**
+ *  寮�濮嬭澶囧洖鏀撅紝寮傛鎺ュ彛锛岃繑鍥炲�煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
+ *
+ *  @param deviceFile SD鍗℃枃浠朵俊鎭�
+ *
+ *  @return YES/NO
+ */
+- (BOOL)startDevicePlayback:(EZDeviceRecordFile *)deviceFile;
+
+/// 缁撴潫璁惧鍥炴斁
+- (void)stopDevicePlayback;
+
+/// 璁剧疆璁惧楠岃瘉鐮侊紝鎾斁鍓嶈缃�
+/// @param verifyCode 璁惧楠岃瘉鐮�
+- (void)setVerifyCode:(NSString *)verifyCode;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZTokenKit.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZTokenKit.h
new file mode 100644
index 0000000..03f143f
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZTokenKit.h
@@ -0,0 +1,40 @@
+//
+//  EzvizTokenKit.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/8/31.
+//  Copyright (c) 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface EZTokenKit : NSObject
+
+@property (nonatomic, readonly) NSString *token;  //鑾峰彇绗竴涓猼oken
+@property (nonatomic, readonly) NSInteger tokenCount; //褰撳墠tokenKit閲岃繕鏈夊灏憈oken鐨勬暟閲�
+
+/**
+ *  鍗曚緥鏂规硶
+ *
+ *  @return EZTokenKit瀵硅薄
+ */
++ (instancetype)sharedKit;
+
+/**
+ *  璁剧疆TokenList鏁扮粍
+ *
+ *  @param tokenList token鏁扮粍
+ */
+- (void)setTokens:(NSArray *)tokenList;
+
+/**
+ *  娓呯┖鏁扮粍
+ */
+- (void)clearTokens;
+
+/**
+ *  棰勫姞杞藉彇娴乼oken
+ */
+- (void)prepareToken:(void (^)(NSError *error))block;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZUserInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZUserInfo.h
new file mode 100644
index 0000000..dbfafe6
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZUserInfo.h
@@ -0,0 +1,23 @@
+//
+//  EZUserInfo.h
+//  EzvizOpenSDK
+//
+//  Created by DeJohn Dong on 15/12/11.
+//  Copyright 漏 2015骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓虹敤鎴蜂俊鎭璞�
+@interface EZUserInfo : NSObject
+
+/// 鐢ㄦ埛鍚�
+@property (nonatomic, copy) NSString *username;
+/// 鏄电О锛屾捣澶栫増鏈瀛楁涓虹┖
+@property (nonatomic, copy) NSString *nickname;
+/// 鐢ㄦ埛澶村儚鍦板潃锛屾捣澶栫増鏈瀛楁涓虹┖
+@property (nonatomic, copy) NSString *avatarUrl;
+/// 鐢ㄦ埛鍖哄煙domain
+@property (nonatomic, copy) NSString *areaDomain;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoQualityInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoQualityInfo.h
new file mode 100644
index 0000000..f392af7
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoQualityInfo.h
@@ -0,0 +1,23 @@
+//
+//  EZVideoQualityInfo.h
+//  EzvizOpenSDK
+//
+//  Created by linyong on 2017/2/28.
+//  Copyright 漏 2017骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/// 姝ょ被涓洪�氶亾鏀寔鐨勬竻鏅板害淇℃伅
+@interface EZVideoQualityInfo : NSObject
+
+/// 娓呮櫚搴﹀悕绉帮紝濡傝秴娓呫�侀珮娓呫�佸潎琛°�佹祦鐣呯瓑
+@property (nonatomic,copy) NSString *videoQualityName;
+
+/// 瑙嗛璐ㄩ噺锛�0-娴佺晠锛�1-鍧囪 锛�2-楂樻竻锛�3-瓒呮竻
+@property (nonatomic,assign) NSInteger videoLevel;
+
+/// 璇ユ竻鏅板害鎵�浣跨敤鐨勭爜娴佺被鍨嬶紝1涓轰富鐮佹祦锛�2涓哄瓙鐮佹祦
+@property (nonatomic,assign) NSInteger streamType;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalk.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalk.h
new file mode 100644
index 0000000..98fda05
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalk.h
@@ -0,0 +1,179 @@
+//
+//  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 "EZRTCMediaSessionDefines.h"
+#import "EZVideoTalkView.h"
+
+@class EZVideoTalk;
+@class EZRTCCameraParam;
+@class EZRTCVideoEncodeParam;
+
+@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 闄勫姞淇℃伅锛�
+    濡傛灉鏄疎ZBAVMessagePeerEnteredRoom銆丒ZBAVMessagePeerLeaveRoom娑堟伅锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄
+    濡傛灉娑堟伅鏄� 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锛歱aram role=1 reason=0 roomid=鏀跺埌鐨剅oomid 鎺ュ惉瀹岄�氳瘽涓寕鏂皟鐢╯top
+/// B.濡傛灉涓诲姩鎷掓帴 璋冪敤 start锛歱aram role=2 reason=101 roomid=鏀跺埌鐨剅oomid 鎷掓帴瀹屾垚鍚庣珛椹皟鐢╯top
+/// C.濡傛灉鏃犱汉鎺ュ惉 璋冪敤 start锛歱aram role=2 reason=102 roomid=鏀跺埌鐨剅oomid 瀹屾垚鍚庣珛椹皟鐢╯top
+@interface EZVideoTalk : NSObject
+
+@property (nonatomic, weak) id<EZVideoTalkDelegate> delegate;
+@property (nonatomic, assign, readonly) int32_t roomID;
+
+
+/**
+ 瀵硅鏃讹紝寮哄埗閲囩敤鎵0鍣ㄦ挱鏀惧0闊筹紝榛樿涓篩ES
+ */
+@property (nonatomic, assign) BOOL forceToSpeaker;
+
+
+/// 鍒濆鍖栬棰戦�氳瘽SDK瀵硅薄
+- (instancetype)init;
+
+
+
+/// 璁剧疆鏈湴鐨勯瑙堢獥鍙�
+/// @param localWin 绐楀彛window
+- (void)setLocalWindow:(EZVideoTalkView *)localWin;
+
+
+/// 鏈湴鎽勫儚澶村紑鍚�/鍏抽棴鎺ュ彛
+/// @param enable 鏄惁寮�鍚憚鍍忓ご
+- (NSInteger)enableVideoCapture:(BOOL)enable;
+
+
+/// 鏈湴楹﹀厠椋庡紑鍚�/鍏抽棴鎺ュ彛
+/// @param enable 鏄惁寮�鍚害鍏嬮
+- (NSInteger)enableAudioCatpure:(BOOL)enable;
+
+
+// 鏄惁寮�鍚睆骞曞叡浜�
+/// @param enable 鏄惁寮�鍚�
+/// @param block 涓荤嚎绋嬪洖璋冪粨鏋�
+- (void)enableScreenShare:(BOOL)enable andName:(NSString *)name withResultBlock:(EZScreenShareResultBlock)block;
+
+
+/// 鍙戣捣鍙屽悜闊宠棰戝璁诧紝鑰楁椂鎺ュ彛锛屾垚鍔熻繑鍥� 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:閫夋嫨鍚庣疆锛孨O:閫夋嫨鍓嶇疆
+- (int32_t)switchCamera:(BOOL)backCameraSelected;
+
+
+/// 寮�鍏宠繙绋嬪0闊筹紝榛樿寮�
+/// @param open 寮�鍚�
+- (int32_t)enableRemoteSound:(BOOL)open;
+/// 寮傛鑾峰彇鏈湴鎶撳浘
+/// @param block 鎶撳浘鎴愬姛鍥炶皟锛屽け璐mage涓簄il
+//- (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;
+
+
+/// 鍙戦�侀�忎紶娑堟伅鎺ュ彛锛屽悓姝ユ帴鍙o紝鍙兘鑰楁椂
+/// @param msg 娑堟伅鍐呭锛屾瘮濡俲son鏁版嵁
+- (int)sendTransferMsg:(NSString *)msg;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkComponent.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkComponent.h
new file mode 100644
index 0000000..2eaaa0e
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkComponent.h
@@ -0,0 +1,23 @@
+//
+//  EZVideoTalkComponent.h
+//  EZOpenSDK
+//
+//  Created by JuneCheng on 2022/7/23.
+//
+
+#ifndef EZVideoTalkComponent_h
+#define EZVideoTalkComponent_h
+
+#import <EZOpenSDKFramework/EZBAVParam.h>
+#import <EZOpenSDKFramework/EZConferenceClient.h>
+#import <EZOpenSDKFramework/EZRTCCameraParam.h>
+#import <EZOpenSDKFramework/EZRTCMediaSessionDefines.h>
+#import <EZOpenSDKFramework/EZRTCSampleHandleManager.h>
+#import <EZOpenSDKFramework/EZRTCVideoEncodeParam.h>
+#import <EZOpenSDKFramework/EZVideoTalk.h>
+#import <EZOpenSDKFramework/EZVideoTalkGlobal.h>
+#import <EZOpenSDKFramework/EZVideoTalkSDK.h>
+#import <EZOpenSDKFramework/EZVideoTalkSDKDefines.h>
+#import <EZOpenSDKFramework/EZVideoTalkView.h>
+
+#endif /* EZVideoTalkComponent_h */
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkGlobal.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkGlobal.h
new file mode 100644
index 0000000..5517624
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkGlobal.h
@@ -0,0 +1,63 @@
+//
+//  EZVideoTalkGlobal.h
+//  EZVideoTalk
+//
+//  Created by yuqian on 2018/9/12.
+//  Copyright 漏 2018骞� hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "EZRTCMediaSessionDefines.h"
+
+@class EZRTCVideoEncodeParam;
+@class EZRTCCameraParam;
+
+@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;
+
+
+
+/// 璁剧疆閲囬泦鐨勬憚鍍忓ご鍙傛暟锛屾瘮濡傞噰鐢ㄥ墠缃繕鏄悗缃紝鍦ㄥ彂璧蜂换浣曡棰戞搷浣滃墠璋冪敤鐢熸晥
+/// @param cameraParam 鎽勫儚澶村弬鏁�
++ (void)setCameraParam:(EZRTCCameraParam *)cameraParam;
+
+
+/// 璁剧疆閲囬泦鐨勮棰戠殑缂栫爜鍙傛暟锛屾瘮濡傞噰闆嗘渶缁堣緭鍑虹殑鍒嗚鲸鐜囥�佺爜鐜囩瓑
+/// @param encodeParam 缂栫爜鍙傛暟
++ (void)setVideoEncodeParam:(EZRTCVideoEncodeParam *)encodeParam;
+
+
+/// 璁剧疆閲囬泦鐨勮緟娴佺殑缂栫爜鍙傛暟锛屾瘮濡傞噰闆嗘渶缁堣緭鍑虹殑鍒嗚鲸鐜囥�佺爜鐜囩瓑
+/// @param encodeParam 缂栫爜鍙傛暟
++ (void)setSmallVideoEncodeParam:(EZRTCVideoEncodeParam *)encodeParam;
+
+
++ (EZRTCAudioEncodeType)audioEncodeType;
+
+/// 璁剧疆缂栫爜绫诲瀷锛屽湪瑙嗛閫氳瘽鍙戣捣鍓嶈缃湁鏁�
++ (void)setAudioEncodeType:(EZRTCAudioEncodeType)type;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkSDK.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkSDK.h
new file mode 100644
index 0000000..353e0c0
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkSDK.h
@@ -0,0 +1,268 @@
+//
+//  EZVideoTalkSDK.h
+//  EZOpenSDK
+//
+//  Created by yuqian on 2020/3/14.
+//  Copyright 漏 2020 Hikvision. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+#import "EZRTCMediaSessionDefines.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 閫忎紶娑堟伅锛�
+    濡傛灉鏄疎ZVideoTalkMessagePeerEnteredRoom鍜孍ZVideoTalkMessagePeerLeaveRoom娑堟伅锛宮sg鏄瘂@"clientID":@(9527),@"clientName":@"寮犱笁"}
+        濡傛灉娑堟伅鏄� EZVideoTalkMessageTransferData msg鏄� msg鏄瘂@"content":@"瀹為檯鐨勯�忎紶娑堟伅"}
+ */
+- (void)videoTalk:(id)client didReceivedMessage:(int32_t)messageCode msg:(id)msg;
+
+/// 鐢婚潰鏄剧ず鍥炶皟
+/// @param client client
+/// @param width 鐢婚潰鐨勫 鍍忕礌鍗曚綅
+/// @param height 鐢婚潰鐨勯珮 鍍忕礌鍗曚綅
+/// @param userID 鐢ㄦ埛id
+- (void)videoTalk:(id)client didDisplayWidth:(int32_t)width height:(int32_t)height ofRemoteClient:(NSString *)userID;
+
+@end
+
+@interface EZVideoTalkSDK : NSObject
+
+@property (nonatomic, weak) id<EZVideoTalkSDKDelegate> delegate;
+
+/// 鍔犲叆鐨勬埧闂村彿
+@property (nonatomic, assign, readonly) int32_t roomID;
+
+/**
+ 瀵硅鏃讹紝寮哄埗閲囩敤鎵0鍣ㄦ挱鏀惧0闊筹紝榛樿涓篩ES
+ */
+@property (nonatomic, assign) BOOL forceToSpeaker;
+
+- (instancetype)init;
+
+
+/// 璁剧疆鏈湴鐨勯瑙堢獥鍙�
+/// @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:閫夋嫨鍚庣疆锛孨O:閫夋嫨鍓嶇疆
+- (int32_t)switchCamera:(BOOL)backCameraSelected;
+
+
+/// 寮�鍏宠繙绋嬪0闊筹紝榛樿寮�
+/// @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 EZRTCClient : NSObject
+
+@property (nonatomic, weak) id<EZVideoTalkSDKDelegate> delegate;
+
+/// 鍔犲叆鐨勬埧闂村彿
+@property (nonatomic, assign, readonly) int32_t roomID;
+
+/**
+ 瀵硅鏃讹紝寮哄埗閲囩敤鎵0鍣ㄦ挱鏀惧0闊筹紝榛樿涓篩ES
+ */
+@property (nonatomic, assign) BOOL forceToSpeaker;
+
+
+/// 鍒濆鍖栬棰戦�氳瘽SDK瀵硅薄
+- (instancetype)init;
+
+
+/// 鍔犲叆浼氳锛堟柊鎺ュ彛锛�
+/// @param roomId 鎴块棿鍙�
+/// @param password 瀵嗙爜
+/// @param userID 鐢ㄦ埛鑷畾涔塈D
+- (void)enterRoom:(int32_t)roomId
+     withPassword:(NSString *)password
+       withUserID:(NSString *)userID
+       withAppId:(NSString *)appId;
+
+
+/// 閫�鍑轰細璁�
+- (NSInteger)exitRoom;
+
+
+/// 瑙f暎浼氳锛岃В鏁e悗锛屽叾浠栦笌浼氳�呬細鏀跺埌浼氳琚В鏁f秷鎭�
+- (void)dissolveRoom;
+
+/// 鏈湴鎽勫儚澶村紑鍚�/鍏抽棴鎺ュ彛.
+/// @param enable 鏄惁寮�鍚憚鍍忓ご
+- (NSInteger)enableLocalVideo:(BOOL)enable;
+
+/// 璁剧疆鏈湴鐨勯瑙堢獥鍙�
+/// @param localWin 绐楀彛window
+- (void)setLocalView:(EZVideoTalkView *)localWin;
+
+/// 鏄惁寮�鍚緟娴侊紝杈呮祦鍒嗚鲸鐜囨洿浣庛�佺爜鐜囨洿灏�
+/// @param enable 鏄惁寮�鍚�
+- (NSInteger)enableLocalSmallVideo:(BOOL)enable;
+
+/// 鏈湴楹﹀厠椋庡紑鍚�/鍏抽棴鎺ュ彛
+/// @param enable 鏄惁寮�鍚害鍏嬮
+/// @param block 涓荤嚎绋嬪洖璋冪粨鏋�
+- (void)enableLocalAudio:(BOOL)enable withResultBlock:(EZAudioOpenResultBlock)block;
+
+/// 寮�鍚睆骞曞叡浜�
+/// @param name 鍏变韩鍚嶇О
+/// @param resultBlock 灞忓箷鍏变韩缁撴灉鍥炶皟
+/// @param didFinishBlock 灞忓箷鍏变韩缁撴潫鍥炶皟锛屽湪姝e父鐨勫睆骞曞叡浜粨鏉熺粨鏉熷悗鍥炶皟
+- (void)startScreenShareWithName:(NSString *)name
+                 withResultBlock:(EZScreenShareResultBlock)resultBlock
+                   andEndedBlock:(dispatch_block_t)didFinishBlock;
+
+
+/// 缁撴潫灞忓箷鍏变韩
+- (void)stopScreenShare;
+
+
+/// 璁剧疆杩滅▼绐楀彛锛�1.蹇呴』鍦ㄦ嬁鍒拌繙绔鎴风鍔犲叆鐨勬秷鎭悗璁剧疆锛�2.蹇呴』鍦ㄤ富绾跨▼璋冪敤
+/// @param window 鎾斁绐楀彛
+/// @param clientID 鍔犲叆鐨勫鎴风鐨処D
+/// @param streamType 1瑙嗛 2闊抽 4灏忔祦
+- (int32_t)setRemoteView:(nullable UIView *)window ofUser:(NSString *)userID withStream:(NSInteger)streamType;
+
+/// 璁剧疆瑙傜湅灞忓箷鍏变韩鐨勭獥鍙�,蹇呴』鍦ㄤ富绾跨▼璋冪敤
+/// @param view 绐楀彛
+- (int32_t)setScreenShareView:(UIView *_Nullable)view;
+
+/// 鍒囨崲瀵硅鏃朵娇鐢ㄧ殑鎽勫儚澶达紝榛樿閲囩敤鍓嶇疆 鍚屾鎺ュ彛
+/// @param backCameraSelected YES:閫夋嫨鍚庣疆锛孨O:閫夋嫨鍓嶇疆
+- (int32_t)switchCamera:(BOOL)backCameraSelected;
+
+#pragma mark - 褰曞埗鐩稿叧鎺ュ彛
+/// 寮�濮嬫埧闂磋棰戜細璁綍鍒�
+/// @param roomId 鎴块棿鍙�
+/// @param customId 寮�鍙戣�呰嚜瀹氫箟鐢ㄦ埛ID
+/// @param recUsers 闇�瑕佸綍鍒剁殑鎴块棿鍙備笌鑰卛d
+/// @param projectId 浜戝瓨鍌ㄩ」鐩甀D
+/// @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 涓绘寔浜虹敤鎴穒d锛堝紑鍙戣�呰嚜瀹氫箟鐨勭敤鎴穒d锛�
+/// @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
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkSDKDefines.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkSDKDefines.h
new file mode 100644
index 0000000..c3347aa
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkSDKDefines.h
@@ -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
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkView.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkView.h
new file mode 100644
index 0000000..1ab4653
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTalkView.h
@@ -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
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTransformer.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTransformer.h
new file mode 100644
index 0000000..61c9126
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZVideoTransformer.h
@@ -0,0 +1,39 @@
+//
+//  EZVideoTransformer.h
+//  EZOpenSDK
+//
+//  Created by yuqian on 2019/6/17.
+//  Copyright 漏 2019 Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef enum {
+    
+    EZVideoTransformerTypeMP4,
+    
+} EZVideoTransformerType;
+
+@interface EZVideoTransformer : NSObject
+
+/// 鏈湴PS鏂囦欢杞崲涓篗P4鏂囦欢
+/// @param psPath ps鏂囦欢璺緞
+/// @param targetPath mp4鏂囦欢璺緞
+/// @param type 杞崲绫诲瀷
+/// @param key 璁惧楠岃瘉鐮�
+/// @param succBlock 鎴愬姛鍥炶皟
+/// @param processBlock 杩涘害鍥炶皟
+/// @param failBlock 澶辫触鍥炶皟
++ (void)videoTransFormerPSPath:(NSString *)psPath
+                        toPath:(NSString *)targetPath
+                          type:(EZVideoTransformerType)type
+                       withKey:(NSString *)key
+                     succBlock:(void (^)())succBlock
+                  processBlock:(void(^)(int rate))processBlock
+                     failBlock:(void(^)(int errCode))failBlock;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZWiFiItemInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZWiFiItemInfo.h
new file mode 100644
index 0000000..3ea2418
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EZWiFiItemInfo.h
@@ -0,0 +1,21 @@
+//
+//  EZWiFiItemInfo.h
+//  EZWiFiConfigSDK
+//
+//  Created by yuqian on 2020/7/28.
+//  Copyright 漏 2020 com.ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZWiFiItemInfo : NSObject
+
+@property (nonatomic, copy) NSString *ssid;             /*蹇呭~,SSID,string*/
+@property (nonatomic, assign) NSInteger signalStrength;   /*蹇呭~,淇″彿寮哄害,"-100-0",int锛屾暟鍊艰秺澶т俊鍙疯秺寮�*/
+@property (nonatomic, copy) NSString *securityMode;     /*鍙��,瀹夊叏妯″紡: "open,WEP,WPA-personal,WPA2-personal,WPA-WPA2-personal,WPA2-enterprise",string*/
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EzvizRecordFileInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EzvizRecordFileInfo.h
new file mode 100644
index 0000000..38db6dc
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EzvizRecordFileInfo.h
@@ -0,0 +1,47 @@
+//
+//  EzvizRecordFileInfo.h
+//  EzvizOpenSDK
+//
+//  Created by linyong on 2017/5/5.
+//  Copyright 漏 2017骞� Ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+///褰曞儚鏂囦欢淇℃伅
+@interface EzvizRecordFileInfo : NSObject
+
+///璁惧搴忓垪鍙�
+@property (nonatomic,copy) NSString *deviceSerial;
+
+///璁惧閫氶亾鍙�
+@property (nonatomic,assign) NSInteger channelNo;
+
+///鍥炴斁婧愶紝0-绯荤粺鑷姩閫夋嫨锛�1-浜戝瓨鍌紝2-鏈湴褰曞儚
+@property (nonatomic,assign) NSInteger recType;
+
+///鏂囦欢寮�濮嬫椂闂�
+@property (nonatomic,strong) NSDate *startTime;
+
+///鏂囦欢缁撴潫鏃堕棿
+@property (nonatomic,strong) NSDate *endTime;
+
+///鏂囦欢绫诲瀷0锛氱洰褰�1锛氳棰戞枃浠�2锛氬浘鐗囨枃浠�3锛氶煶棰戞枃浠�
+@property (nonatomic,assign) NSInteger fileType;
+
+///鏄惁鍔犲瘑0--涓嶅姞瀵�,1--鍔犲瘑
+@property (nonatomic,assign) NSInteger crypt;
+
+///楠岃瘉鐮丮D5鍊�
+@property (nonatomic,copy) NSString *keyChecksum;
+
+///鏂囦欢ID
+@property (nonatomic,copy) NSString *fileId;
+
+///灏侀潰鍥剧墖鍦板潃
+@property (nonatomic,copy) NSString *coverPic;
+
+///涓嬭浇璺緞
+@property (nonatomic,copy) NSString *downloadPath;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EzvizWatchServerInfo.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EzvizWatchServerInfo.h
new file mode 100644
index 0000000..acaf6d6
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/EzvizWatchServerInfo.h
@@ -0,0 +1,26 @@
+//
+//  EzvizWatchServerInfo.h
+//  EzvizOpenSDK
+//
+//  Created by yuqian on 2020/3/2.
+//  Copyright 漏 2020 Hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EzvizWatchServerInfo : NSObject
+
+@property (nonatomic, copy) NSString *domain;
+@property (nonatomic, copy) NSString *externalIp;
+@property (nonatomic, assign) int 	forceStreamType;
+@property (nonatomic, copy) NSString *idcType;
+@property (nonatomic, copy) NSString *internalIp;
+@property (nonatomic, assign) int isBackup;
+@property (nonatomic, copy) NSString *memo;
+@property (nonatomic, assign) int port;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/Sadp.h b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/Sadp.h
new file mode 100644
index 0000000..a6ec76d
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Headers/Sadp.h
@@ -0,0 +1,557 @@
+#ifndef _SADP_H_
+#define _SADP_H_
+
+
+#if defined _WIN32 || defined _WIN64
+#define CSADP_API  extern "C" __declspec(dllimport)
+#elif defined __linux__ || defined __APPLE__
+#define CSADP_API  extern "C"
+#endif
+
+#if defined _WIN32 || defined _WIN64
+#define CALLBACK __stdcall
+#elif defined __linux__ || defined __APPLE__
+#define CALLBACK  
+#endif
+
+#define     BOOL int
+
+//消息操作的类型
+#define SADP_ADD          1         //增加一设备
+#define SADP_UPDATE       2         //更新设备
+#define SADP_DEC          3         //设备下线
+#define SADP_RESTART      4         //设备重新启动
+#define SADP_UPDATEFAIL   5         //设备更新失败
+
+//外部命令码
+#define SADP_GET_DEVICE_CODE                1   //获取设备码,对应结构体SADP_SAFE_CODE
+#define SADP_GET_ENCRYPT_STRING             2   //获取加密串,对应结构体SADP_ENCRYPT_STRING
+#define SADP_GET_DEVICE_TYPE_UNLOCK_CODE    3   //获取设备类型解禁码,对应的结构体SADP_TYPE_UNLOCK_CODE
+#define SADP_SET_DEVICE_CUSTOM_TYPE         4   //设置设备自定义型号,对应的结构体SADP_CUSTOM_DEVICE_TYPE
+#define SADP_GET_GUID                       5   //获取GUID
+#define SADP_GET_SECURITY_QUESTION          6   //获取安全问题
+#define SADP_SET_SECURITY_QUESTION          7   //设置安全问题
+#define SADP_SET_HCPLATFORM_STATUS          8   //设置HCPLATFORM状态
+#define SADP_SET_VERIFICATION_CODE          9   //设置验证码(验证码用于萤石接入、预览、控制的唯一密码)
+#define SADP_GET_BIND_LIST                  12  //获取绑定设备列表
+#define SADP_SET_BIND_LIST                  13  //设置绑定设备列表
+#define SADP_RESTORE_INACTIVE               14  //恢复未激活
+#define SADP_SET_WIFI_REGION                15  //设置wifi区域
+#define SADP_SET_CHANNEL_DEFAULT_PASSWORD   16  //设置通道默认密码
+#define SADP_GET_SELF_CHECK                 17  //获取设备自检状态
+#define SADP_DISK_LOCATE                    18  //坏盘定位
+#define SADP_EHOME_ENABLE                   19  //EHome使能
+#define SADP_SET_USER_MAILBOX               20  //设置用户邮箱
+#define SADP_GET_QR_CODES                   21  //获取二维码数据
+#define SADP_GET_PASSWORD_RESET_TYPE        27  //获取重置密码方式参数
+
+
+
+#define SADP_MAX_VERIFICATION_CODE_LEN  12   //最大验证码长度
+#define MAX_PASS_LEN                    16   //设备最大密码长度
+#define MAX_QUESTION_LIST_LEN           32   //最多问题列表个数
+#define SADP_MAX_BIND_NUM               32   //最大绑定设备个数
+#define MAX_CPU_LEN                     32   //CPU长度
+#define MAX_MEMORY_LEN                  32   //内存长度
+#define MAX_USERNAME_LEN                32   //用户名最大长度
+#define SADP_MAX_SERIALNO_LEN           64   //最大设备序列号长度
+#define MAX_DEVICE_CODE                 128  //设备返回码长度,暂定最大128
+#define MAX_MAILBOX_LEN                 128  //邮箱长度,暂定最大128
+#define MAX_GUID_LEN                    128  //GUID长度
+#define MAX_EXCHANGE_CODE               256  //交换码长度
+#define MAX_ENCRYPT_CODE                256  //设备返回码加密后长度
+#define MAX_UNLOCK_CODE_KEY             256  //解禁密钥
+#define MAX_QR_CODES                    256  //二维码数据长度,暂定最大256
+#define MAX_ANSWER_LEN                  256  //最大答案长度
+#define MAX_UNLOCK_CODE_RANDOM_LEN      256  //解禁码随机串
+#define MAX_FILE_PATH_LEN               260  //文件最大路径长度
+
+
+
+
+// 错误码
+#define SADP_ERROR_BASE                 2000
+#define SADP_NOERROR                    0                     // 没有错误
+#define SADP_ALLOC_RESOURCE_ERROR       (SADP_ERROR_BASE+1)   // 资源分配错误
+#define SADP_NOT_START_ERROR            (SADP_ERROR_BASE+2)   // SADP未启动
+#define SADP_NO_ADAPTER_ERROR           (SADP_ERROR_BASE+3)   // 无网卡
+#define SADP_GET_ADAPTER_FAIL_ERROR     (SADP_ERROR_BASE+4)   // 获取网卡信息失败
+#define SADP_PARAMETER_ERROR            (SADP_ERROR_BASE+5)   // 参数错误
+#define SADP_OPEN_ADAPTER_FAIL_ERROR    (SADP_ERROR_BASE+6)   // 打开网卡失败
+#define SADP_SEND_PACKET_FAIL_ERROR     (SADP_ERROR_BASE+7)   // 发送数据失败
+#define SADP_SYSTEM_CALL_ERROR          (SADP_ERROR_BASE+8)   // 系统接口调用失败
+#define SADP_DEVICE_DENY                (SADP_ERROR_BASE+9)   // 设备拒绝处理
+#define SADP_NPF_INSTALL_ERROR          (SADP_ERROR_BASE+10)  // 安装NPF服务失败
+#define SADP_TIMEOUT                    (SADP_ERROR_BASE+11)  // 设备超时
+#define SADP_CREATE_SOCKET_ERROR        (SADP_ERROR_BASE+12)  // 创建socket失败
+#define SADP_BIND_SOCKET_ERROR          (SADP_ERROR_BASE+13)  // 绑定socket失败
+#define SADP_JOIN_MULTI_CAST_ERROR      (SADP_ERROR_BASE+14)  // 加入多播组失败
+#define SADP_NETWORK_SEND_ERROR         (SADP_ERROR_BASE+15)  // 发送出错
+#define SADP_NETWORK_RECV_ERROR         (SADP_ERROR_BASE+16)  // 接收出错
+#define SADP_XML_PARSE_ERROR            (SADP_ERROR_BASE+17)  // 多播XML解析出错
+#define SADP_LOCKED                     (SADP_ERROR_BASE+18)  // 设备锁定
+#define SADP_NOT_ACTIVATED              (SADP_ERROR_BASE+19)  // 设备未激活
+#define SADP_RISK_PASSWORD              (SADP_ERROR_BASE+20)  // 风险高的密码
+#define SADP_HAS_ACTIVATED              (SADP_ERROR_BASE+21)  // 设备已激活
+#define SADP_EMPTY_ENCRYPT_STRING       (SADP_ERROR_BASE+22)  // 加密串为空
+#define SADP_EXPORT_FILE_OVERDUE        (SADP_ERROR_BASE+23)  // 导出文件超期
+#define SADP_PASSWORD_ERROR             (SADP_ERROR_BASE+24)  // 密码错误
+#define SADP_LONG_SECURITY_ANSWER       (SADP_ERROR_BASE+25)  // 安全问题答案太长
+#define SADP_INVALID_GUID               (SADP_ERROR_BASE+26)  // 无效的GUID
+#define SADP_ANSWER_ERROR               (SADP_ERROR_BASE+27)  // 答案错误
+#define SADP_QUESTION_NUM_ERR           (SADP_ERROR_BASE+28)  // 安全问题个数配置错误
+#define SADP_LOAD_WPCAP_FAIL            (SADP_ERROR_BASE+30)  // 加载Wpcap失败
+#define SADP_ILLEGAL_VERIFICATION_CODE  (SADP_ERROR_BASE+33)  // 非法验证码
+#define SADP_BIND_ERROR_DEV             (SADP_ERROR_BASE+34)  // 绑定错误的设备
+#define SADP_EXTED_MAX_BIND_NUM         (SADP_ERROR_BASE+35)  // 超过最大绑定个数
+#define SADP_MAILBOX_NOT_EXIST          (SADP_ERROR_BASE+36)  // 邮箱不存在
+#define SADP_MAILBOX_NOT_SET            (SADP_ERROR_BASE+38)  // [add] <2019/01/08> by yangzheng 邮箱重置密码未设置邮箱
+#define SADP_INVALID_RESET_CODE         (SADP_ERROR_BASE+39)    // 重置密码  重置口令错误
+
+
+//SADP设备过滤规则类型
+//按位表示,为1表示过滤,0表示不过滤;
+//bit 1:是否过滤萤石;bit 2:是否过滤OEM;
+#define SADP_DISPLAY_ALL           0            //显示所有设备
+#define SADP_FILTER_EZVIZ          0x01         //过滤萤石设备
+#define SADP_FILTER_OEM            0x02         //过滤OEM设备
+#define SADP_FILTER_EZVIZ_OEM      0x03         //同时过滤萤石和OEM设备
+#define SADP_ONLY_DISPLAY_OEM      0xfffffffd   //仅显示OEM设备,对应结构体SADP_DISPLAY_OEM_CFG
+#define SADP_ONLY_DISPLAY_EZVIZ    0xfffffffe   //仅显示萤石设备
+// 结构体
+
+typedef struct tagSADP_DEVICE_INFO
+{
+    char            szSeries[12];          //设备系列(保留)
+    char            szSerialNO[48];        //设备序列号
+    char            szMAC[20];             //设备物理地址
+    char            szIPv4Address[16];     //设备IPv4地址
+    char            szIPv4SubnetMask[16];  //设备IPv4子网掩码
+    unsigned int    dwDeviceType;          //设备类型,具体数值代表的设备型号
+    unsigned int    dwPort;                //设备网络SDK服务端口号(默认8000)
+    unsigned int    dwNumberOfEncoders;    //设备编码器个数,即设备编码通道个数。对于解码器,其值设为0
+    unsigned int    dwNumberOfHardDisk;    //设备硬盘数目
+    char            szDeviceSoftwareVersion[48];  //设备软件版本号
+    char            szDSPVersion[48];      //设备DSP版本号
+    char            szBootTime[48];        //开机时间
+    int             iResult;               
+                    //信息类型: 1.设备上线  2.设备更新  3.设备下线  4.设备重启  5.设备更新失败
+                    //SADP_ADD        1   新设备上线,之前在SADP库列表中未出现的设备
+                    //SADP_UPDATE     2   在线的设备的网络参数或者某些状态改变
+                    //SADP_DEC        3   设备下线,设备自动发送下线消息或120秒内检测不到设备
+                    //SADP_RESTART    4   之前SADP库列表中出现过之后下线的设备再次上线
+                    //SADP_UPDATEFAIL 5   设备更新失败
+    char            szDevDesc[24];         //设备类型描述 与dwDeviceType对应
+    char            szOEMinfo[24];         //OEM产商信息
+    char            szIPv4Gateway[16];     //IPv4网关
+    char            szIPv6Address[46];     //IPv6地址
+    char            szIPv6Gateway[46];     //IPv6网关
+    unsigned char   byIPv6MaskLen;         //IPv6子网前缀长度
+    unsigned char   bySupport;           
+                    //按位表示,对应为为1表示支持
+                    //0x01:是否支持Ipv6
+                    //0x02:是否支持修改Ipv6参数
+                    //0x04:是否支持Dhcp	
+                    //0x08:是否支持udp多播 
+                    //0x10:是否含加密节点
+                    //0x20:是否支持恢复密码
+                    //0x40:是否支持重置密码
+                    //0x80:是否支持同步IPC密码
+    unsigned char   byDhcpEnabled;         //Dhcp状态, 0 不启用 1 启用
+    unsigned char   byDeviceAbility;       //设备能力
+                                           //0:设备不支持“‘设备类型描述’ 'OEM厂商' 'IPv4网关' ‘IPv6地址’ 'IPv6网关' ‘IPv6子网前缀’‘DHCP’”  
+                                           //1:支持上诉功能
+    unsigned short  wHttpPort;             //Http 端口
+    unsigned short  wDigitalChannelNum;    //数字通道数
+    char            szCmsIPv4[16];         //CMS注册服务器IPv4地址
+    unsigned short  wCmsPort;              //CMS注册服务器监听端口
+    unsigned char   byOEMCode;             //0-基线设备 1-OEM设备
+    unsigned char   byActivated;           //设备是否激活;0-激活,1-未激活(老的设备都是已激活状态)
+    char            szBaseDesc[24];        //基线短型号,不随定制而修改的型号,用于萤石平台进行型号对比
+    unsigned char   bySupport1; 
+                    //按位表示,  1表示支持,0表示不支持
+                    //0x01:是否支持重置密码方式2 
+                    //0x02;是否支持设备锁定功能
+                    //0x04:是否支持导入GUID重置密码
+                    //0x08:是否支持安全问题重置密码
+                    //0x10:是否支持OEM更换Logo
+                    //0x20:是否支持绑定操作
+                    //0x40:是否支持恢复未激活
+                    //0x80:是否支持wifi信号增强模式
+    unsigned char   byHCPlatform;          //是否支持HCPlatform 0-保留, 1-支持, 2-不支持   
+    unsigned char   byEnableHCPlatform;    //是否启用HCPlatform  0-保留, 1-启用, 2-不启用
+    unsigned char   byEZVIZCode;           //0-基线设备, 1-萤石设备
+    unsigned int    dwDetailOEMCode;       //详细OEMCode信息:oemcode由客户序号(可变位,从1开始,1~429496)+菜单风格(2位)+区域号(2位)三部分构成。	
+                                           //规则说明:oemcode最大值为4294967295,最多是十位数。
+                                           //0: 老设备
+                                           //1: 新基线设备
+                                           //10101: 有具体OEM code的为OEM设备
+    unsigned char   byModifyVerificationCode; //是否修改验证码 0-保留, 1-修改验证码, 2-不修改验证码
+    unsigned char   byMaxBindNum;          //支持绑定的最大个数(目前只有NVR支持该字段)
+    unsigned short  wOEMCommandPort;       //OEM命令端口
+    unsigned char   bySupportWifiRegion;
+                    //设备支持的wifi区域列表,按位表示,1表示支持,0表示不支持
+                    //0x01:是否支持default(默认功率和北美一致)
+                    //0x02:是否支持china
+                    //0x04:是否支持nothAmerica
+                    //0x08:是否支持japan
+                    //0x10:是否支持europe
+                    //0x20:是否支持world
+    unsigned char   byEnableWifiEnhancement;//是否启用wifi增强模式,0-不启用,1-启用
+    unsigned char   byWifiRegion;           //设备当前区域,0-default,1-china,2-nothAmerica,3-japan,4-europe,5-world
+    unsigned char   bySupport2; 
+                    //按位表示,  1表示支持,0表示不支持
+                    //0x01:是否支持通道默认密码配置(该密码用于nvr添加IPC, 默认使用的是nvr admin密码,会单独保存在本地)
+                    //0x02:是否支持邮箱重置密码
+                    //0x04:是否支持未激活配置SSID和Password
+}SADP_DEVICE_INFO, *LPSADP_DEVICE_INFO;
+
+typedef struct tagSADP_DEVICE_INFO_V40
+{
+    SADP_DEVICE_INFO struSadpDeviceInfo;
+    unsigned char   byLicensed;          //设备是否授权:0-保留,1-设备未授权,2-设备已授权
+    unsigned char   bySystemMode;        //系统模式 0-保留,1-单控,2-双控,3-单机集群,4-双控集群
+    unsigned char   byControllerType;    //控制器类型 0-保留,1-A控,2-B控
+    char            szEhmoeVersion[16];  //Ehmoe版本号
+    unsigned char   bySpecificDeviceType;//设备类型,1-中性设备  2-海康设备
+    unsigned int    dwSDKOverTLSPort;    //私有协议中 SDK Over TLS 命令端口
+    unsigned char   bySecurityMode;      //设备安全模式:0-standard,1-high-A,2-high-B,3-custom
+    unsigned char   bySDKServerStatus;   //设备SDK服务状态, 0-开启,1-关闭
+    unsigned char   bySDKOverTLSServerStatus;         //设备SDKOverTLS服务状态, 0-关闭,1-开启
+    char            szUserName[MAX_USERNAME_LEN + 1]; //管理员用户的用户名(设备安全模式在非标准模式下是允许用户设置管理员用户的用户名,标准模式默认为admin)
+    char            szWifiMAC[20];       //设备所连wifi的Mac地址
+    unsigned char   byDataFromMulticast; //0-链路 1-多播
+    unsigned char   bySupportEzvizUnbind; //是否支持萤石解绑 0-不支持 1-支持
+    unsigned char   bySupportCodeEncrypt; //是否支持重置口令AES128_ECB解密  0-不支持 1-支持
+    unsigned char   bySupportPasswordResetType; //是否支持获取密码重置方式参数  0-不支持 1-支持
+    unsigned char   byEZVIZBindStatus; //设备萤石云绑定状态,0-未知,1-已绑定,2-未绑定
+    char            szPhysicalAccessVerification[16]; //设备支持的物理接触式添加方式,1#AP配网传递,2#用户令牌(用户token)绑定,3#物理按键接触,4#扫码绑定(设备token)
+    unsigned char   byRes[411];
+}SADP_DEVICE_INFO_V40, *LPSADP_DEVICE_INFO_V40;
+
+//待修改的设备网络参数
+typedef struct tagSADP_DEV_NET_PARAM
+{
+    char            szIPv4Address[16];      // IPv4地址
+    char            szIPv4SubNetMask[16];   // IPv4子网掩码
+    char            szIPv4Gateway[16];      // IPv4网关
+    char            szIPv6Address[128];     // IPv6地址
+    char            szIPv6Gateway[128];     // IPv6网关
+    unsigned short  wPort;                  // 设备网络SDK服务端口号(默认8000)
+    unsigned char   byIPv6MaskLen;          // IPv6掩码长度
+    unsigned char   byDhcpEnable;           // DHCP使能
+    unsigned short  wHttpPort;              // HTTP端口
+    unsigned int    dwSDKOverTLSPort;       // 私有协议中 SDK Over TLS 命令端口
+    unsigned char   byRes[122];
+}SADP_DEV_NET_PARAM, *LPSADP_DEV_NET_PARAM;
+
+
+//设备返回网络参数信息
+typedef struct tagSADP_DEV_RET_NET_PARAM
+{
+    unsigned char   byRetryModifyTime;  //剩余可尝试修改网络参数次数
+    unsigned char   bySurplusLockTime;  //剩余时间,单位:分钟,用户锁定时此参数有效
+    unsigned char   byRes[126];
+}SADP_DEV_RET_NET_PARAM, *LPSADP_DEV_RET_NET_PARAM;
+
+// CMS参数
+typedef struct tagSADP_CMS_PARAM
+{
+    char            szPUID[32];         // 预分配的PUID
+    char            szPassword[16];     // 设置的登录密码
+    char            szCmsIPv4[16];      // CMS服务器IPv4地址
+    char            szCmsIPv6[128];     // CMS服务器IPv6地址
+    unsigned short  wCmsPort;           // CMS服务器监听端口
+    unsigned char   byRes[30];
+}SADP_CMS_PARAM, *LPSADP_CMS_PARAM;
+
+//设备安全码,对应配置命令SADP_GET_DEVICE_CODE,接口SADP_GetDeviceConfig
+typedef struct tagSADP_SAFE_CODE
+{
+    unsigned int    dwCodeSize;
+    char            szDeviceCode[MAX_DEVICE_CODE];
+    unsigned char   byRes[128];
+}SADP_SAFE_CODE, *LPSADP_SAFE_CODE;
+
+//设备二维码
+typedef struct tagSADP_QR_CODES
+{
+    unsigned int    dwCodeSize;
+    unsigned int    dwMailBoxSize;
+    unsigned int    dwServiceMailBoxSize;
+    char            szQrCodes[MAX_QR_CODES];
+    char            szMailBoxAddr[MAX_MAILBOX_LEN];         //要设置的邮箱地址
+    char            szServiceMailBoxAddr[MAX_MAILBOX_LEN];  //服务的邮箱地址
+    unsigned char   byRes[128];
+}SADP_QR_CODES, *LPSADP_QR_CODES;
+
+//加密串结构体,对应配置命令SADP_GET_ENCRYPT_STRING,接口SADP_GetDeviceConfig
+typedef struct tagSADP_ENCRYPT_STRING
+{
+    unsigned int    dwEncryptStringSize;               //加密串长度
+    char            szEncryptString[MAX_ENCRYPT_CODE]; //加密串内容
+    unsigned char   byRes[128];
+}SADP_ENCRYPT_STRING, *LPSADP_ENCRYPT_STRING;
+//恢复/重置密码结构体
+typedef struct tagSADP_RESET_PARAM
+{
+    char            szCode[MAX_ENCRYPT_CODE];     //日期转换过的特殊字符串或加密工具加密后的字符串 - 为兼容老接口
+    char            szAuthFile[MAX_FILE_PATH_LEN];//重置授权文件
+    char            szPassword[MAX_PASS_LEN];     //用户密码
+    unsigned char   byEnableSyncIPCPW;            //是否启用同步IPC密码。0 - 不启用, 1- 启用
+    unsigned char   byRes[511];
+}SADP_RESET_PARAM, *LSADP_RESET_PARAM;
+
+//显示OEM配置结构体
+typedef struct tagSADP_DISPLAY_OEM_CFG
+{
+    unsigned int    dwDisplayOEM;   //0-显示所有OEM,其它值为要显示的某一种类型的OEMCode,具体详见dwDetailOEMCode	
+    unsigned char   byRes[32];      //保留
+}SADP_DISPLAY_OEM_CFG, *LPSADP_DISPLAY_OEM_CFG;
+
+typedef struct tagSADP_TYPE_UNLOCK_CODE
+{
+    unsigned int   dwCodeSize;
+    char           szDeviceTypeUnlockCode[MAX_UNLOCK_CODE_RANDOM_LEN/*256*/];//设备型号解禁码
+    unsigned char  byRes[128];
+}SADP_TYPE_UNLOCK_CODE, *LPSADP_TYPE_UNLOCK_CODE;
+
+typedef struct tagSADP_CUSTOM_DEVICE_TYPE
+{
+    unsigned int   dwCodeSize;
+    char           szDeviceTypeSecretKey[MAX_UNLOCK_CODE_KEY/*256*/];//类型解禁秘钥
+    unsigned char  byRes[128];
+}SADP_CUSTOM_DEVICE_TYPE, *LPSADP_CUSTOM_DEVICE_TYPE;
+
+//获取GUID参数结构体
+typedef struct tagSADP_GUID_FILE_COND
+{
+    char           szPassword[MAX_PASS_LEN];  //用户密码
+    unsigned char  byRes[128];
+}SADP_GUID_FILE_COND, *LPSADP_GUID_FILE_COND;
+
+//GUID结构体
+typedef struct tagSADP_GUID_FILE
+{
+    unsigned int    dwGUIDSize;
+    char            szGUID[MAX_GUID_LEN];
+    unsigned char   byRetryGUIDTime;    //剩余可导入/导出GUID次数
+    unsigned char   bySurplusLockTime;  //剩余时间,单位:分钟,用户锁定时此参数有效
+    unsigned char   byRes[254];
+}SADP_GUID_FILE, *LPSADP_GUID_FILE;
+
+typedef struct tagSADP_SINGLE_SECURITY_QUESTION_CFG
+{
+    unsigned int    dwSize;
+    unsigned int    dwId;//序号
+    char            szAnswer[MAX_ANSWER_LEN/*256*/];//答案,只在设置时有效,获取时无效
+    unsigned char   byMark;//标记该序号的问题是否被设置  0-未设置 1-已设置
+    unsigned char   byRes[127];
+}SADP_SINGLE_SECURITY_QUESTION_CFG, *LPSADP_SINGLE_SECURITY_QUESTION_CFG;
+
+typedef struct tagSADP_SECURITY_QUESTION_CFG
+{
+    unsigned int   dwSize;
+    SADP_SINGLE_SECURITY_QUESTION_CFG  struSecurityQuestion[MAX_QUESTION_LIST_LEN/*32*/];//安全问题列表
+    char           szPassword[MAX_PASS_LEN];  //用户密码
+    unsigned char  byRes[512];
+}SADP_SECURITY_QUESTION_CFG, *LPSADP_SECURITY_QUESTION_CFG;
+
+typedef struct tagSADP_SECURITY_QUESTION
+{
+    unsigned char   byRetryAnswerTime;  //剩余可设置安全问题次数
+    unsigned char   bySurplusLockTime;  //剩余时间,单位:分钟,用户锁定时此参数有效
+    unsigned char   byRes[254];
+}SADP_SECURITY_QUESTION, *LPSADP_SECURITY_QUESTION;
+
+typedef struct tagSADP_RESET_PARAM_V40
+{
+    unsigned int    dwSize;
+    unsigned char   byResetType;              //密码重置类型 0-保留,1- 通过设备序列号恢复默认密码,2-导入/导出文件重置密码,3-二维码重置, 4-GUID重置,5-安全问题重置 6-邮箱重置密码
+    unsigned char   byEnableSyncIPCPW;        //是否同时将密码启用为NVR同步IPC密码。0 - 不启用, 1- 启用
+    unsigned char   byRes2[2];                //保留
+    char            szPassword[MAX_PASS_LEN]; //用户密码
+    char            szCode[MAX_ENCRYPT_CODE]; //日期转换过的特殊字符串或加密工具加密后的字符串 - byResetType 为1、3时有效
+    char            szAuthFile[MAX_FILE_PATH_LEN];//重置授权文件, byResetType 为2时有效
+    char            szGUID[MAX_GUID_LEN];     //GUID, byResetType 为4时有效
+    SADP_SECURITY_QUESTION_CFG struSecurityQuestionCfg;//安全问题结构体, byResetType 为5时有效
+    unsigned char   byRes[512];
+}SADP_RESET_PARAM_V40, *LPSADP_RESET_PARAM_V40;
+
+typedef struct tagSADP_RET_RESET_PARAM_V40
+{
+    unsigned char   byRetryGUIDTime;    //剩余可设置次数
+    unsigned char   bySurplusLockTime;  //剩余时间,单位:分钟,用户锁定时此参数有效
+    unsigned char   bRetryTimeValid; //byRetryGUIDTime字段是否有效  0-无效,1-有效
+    unsigned char   bLockTimeValid; //bySurplusLockTime字段是否有效  0-无效,1-有效
+    unsigned char   byRes[252];
+}SADP_RET_RESET_PARAM_V40, *LPSADP_RET_RESET_PARAM_V40;
+
+//HCPlatform状态
+typedef struct tagSADP_HCPLATFORM_STATUS_INFO
+{
+    unsigned int    dwSize;
+    unsigned char   byEnableHCPlatform;        //是否启用HCPlatform。0 - 保留, 1- 启用, 2-不启用
+    unsigned char   byRes[3];                  //保留
+    char            szPassword[MAX_PASS_LEN];  //用户密码
+    unsigned char   byRes2[128];
+}SADP_HCPLATFORM_STATUS_INFO, *LPSADP_HCPLATFORM_STATUS_INFO;
+
+typedef struct tagSADP_USER_MAILBOX
+{
+    unsigned int    dwSize;
+    char            szPassword[MAX_PASS_LEN];        //设备admin用户密码
+    char            szMailBoxAddr[MAX_MAILBOX_LEN];  //预留邮箱地址,用于接收密码服务器返回的安全码
+    unsigned char   byRes[128];
+}SADP_USER_MAILBOX, *LPSADP_USER_MAILBOX;
+//设备验证码
+typedef struct tagSADP_VERIFICATION_CODE_INFO
+{
+    unsigned int    dwSize;
+    char            szVerificationCode[SADP_MAX_VERIFICATION_CODE_LEN];  //验证码(验证码用于萤石接入、预览、控制的唯一密码)
+    char            szPassword[MAX_PASS_LEN];  //用户密码
+    unsigned char   byRes[128];
+}SADP_VERIFICATION_CODE_INFO, *LPSADP_VERIFICATION_CODE_INFO;
+
+//设备锁定信息
+typedef struct tagSADP_DEV_LOCK_INFO
+{
+    unsigned char   byRetryTime;       //剩余可尝试次数
+    unsigned char   bySurplusLockTime; //剩余时间,单位:分钟,用户锁定时此参数有效
+    unsigned char   byRes[126];
+}SADP_DEV_LOCK_INFO, *LPSADP_DEV_LOCK_INFO;
+
+//被绑定设备信息结构体
+typedef struct tagSADP_BIND_INFO
+{
+    char            szSerialNO[SADP_MAX_SERIALNO_LEN]; //被绑定设备的序列号
+    unsigned char   byiBind; //设备是否绑定 0-未绑定;1-已绑定
+    unsigned char   byRes[127];
+}SADP_BIND_INFO, *LPSADP_BIND_INFO;
+
+typedef struct tagSADP_BIND_LIST
+{
+    SADP_BIND_INFO   struBindInfo[SADP_MAX_BIND_NUM]; //绑定设备信息列表
+    char             szPassword[MAX_PASS_LEN]; //用户密码
+    unsigned char    byUnbindAll; //是否解绑所有设备 0-不解绑所有设备;1-解绑所有设备
+    unsigned char    byRes[127];
+}SADP_BIND_LIST, *LPSADP_BIND_LIST;
+
+typedef struct tagSADP_INACTIVE_INFO
+{
+    char             szPassword[MAX_PASS_LEN];  //用户密码
+    unsigned char    byRes[128];
+}SADP_INACTIVE_INFO, *LPSADP_INACTIVE_INFO;
+
+//wifi Region
+typedef struct tagSADP_WIFI_REGION_INFO
+{
+    unsigned char   byMode;                  //模式,0-保留,1-wifi区域配置模式,2-wifi增强模式
+    unsigned char   byWifiRegion;            //wifi区域,当byMode为1时,该字段有效。0 -default, 1- china, 2-nothAmerica,3-japan,4-europe,5-world
+    unsigned char   byWifiEnhancementEnabled;//是否启用wifi增强模式,当byMode为2时,该字段有效 0 -不启用, 1- 启用
+    unsigned char   byRes;                   //保留
+    char            szPassword[MAX_PASS_LEN];//用户密码
+    unsigned char   byRes2[128];
+}SADP_WIFI_REGION_INFO, *LPSADP_WIFI_REGION_INFO;
+
+//通道默认密码信息
+typedef struct tagSADP_CHANNEL_DEFAULT_PASSWORD
+{
+    char             szPassword[MAX_PASS_LEN]; //设备admin用户密码
+    char             szChannelDefaultPassword[MAX_PASS_LEN]; //通道默认密码(用户NVR激活,添加IPC)
+    unsigned char    byRes[128];
+}SADP_CHANNEL_DEFAULT_PASSWORD, *LPSADP_CHANNEL_DEFAULT_PASSWORD;
+
+
+//设备自检状态结构体
+typedef struct tagSADP_SELF_CHECK_STATE
+{
+    unsigned int    dwSize;
+    int             dwTotalDisk;               //磁盘总数(默认值为-1)
+    int             dwGoodDisk;                //好盘数(默认值为-1)
+    char            szCPU[MAX_CPU_LEN];        //CPU
+    char            szMemory[MAX_MEMORY_LEN];  //内存
+    unsigned char   byProgress;                //自检进度,0-100
+    unsigned char   byTemperatureState;        //温度状态,0-无效;1-正常;2-异常
+    unsigned char   byFanState;                //风扇状态,0-无效;1-正常;2-异常
+    unsigned char   byPowerState;              //电源状态,0-无效;1-正常;2-异常
+    unsigned char   bySASConnectState;         //SAS连接状态,0-无效;1-连接;2-未连接
+    char            byTotalNetworkPort;        //网口总数(默认值为-1)
+    char            byConnectNetworkPort;      //网口连接数(默认值为-1)
+    unsigned char   byRes[129];
+}SADP_SELF_CHECK_STATE, *LPSADP_SELF_CHECK_STATE;
+
+//EHome使能参数
+typedef struct tagSADP_EHOME_ENABLE_PARAM
+{
+    unsigned int    dwSize;
+    char            szDevID[MAX_PASS_LEN];     //设备ID
+    char            szEhomeKey[MAX_PASS_LEN];  //Ehome Key
+    char            szPassword[MAX_PASS_LEN];  //设备密码
+    unsigned char   byRes[64];
+}SADP_EHOME_ENABLE_PARAM, *LPSADP_EHOME_ENABLE_PARAM;
+
+//WIFI参数配置结构体
+typedef struct tagSADP_WIFI_CONFIG_PARAM
+{
+    unsigned int    dwSize;
+    char            szSSID[SADP_MAX_SERIALNO_LEN];      //SSID
+    char            szPassword[SADP_MAX_SERIALNO_LEN];  //Password
+    unsigned char   byWifiMode;  //wifi模式,0-默认,1-Station, 2-AP
+    unsigned char   byRes[64];
+}SADP_WIFI_CONFIG_PARAM, *LPSADP_WIFI_CONFIG_PARAM;
+
+//已配置重置密码类型参数配置结构体
+typedef struct tagSADP_PASSWORD_RESET_TYPE_PARAM
+{
+    unsigned int    dwSize;
+    unsigned char   byEnable;  //0-未配置  1-(GUID,安全问题,安全邮箱,HC)配置过一种或多种 
+    unsigned char   byGuidEnabled;  //0-未导出过GUID  1-导出过GUID
+    unsigned char   bySecurityQuestionEnabled;  //0-未配置过安全问题  1-配置过安全问题
+    unsigned char   bySecurityMailBoxEnabled;  //0-未配置过安全邮箱  1-配置过安全邮箱
+    unsigned char   byHikConnectEnabled;  //0-未绑定HikConnect账号  1-绑定过HikConnect账号
+    unsigned char   byRes1[3];
+    unsigned char   byRes[64];
+}SADP_PASSWORD_RESET_TYPE_PARAM, *LPSADP_PASSWORD_RESET_TYPE_PARAM;
+
+
+// 接口
+typedef void (CALLBACK *PDEVICE_FIND_CALLBACK)(const SADP_DEVICE_INFO *lpDeviceInfo, void *pUserData);
+CSADP_API BOOL CALLBACK SADP_Start_V30(PDEVICE_FIND_CALLBACK pDeviceFindCallBack, int bInstallNPF = 0, void* pUserData = NULL);
+typedef void (CALLBACK *PDEVICE_FIND_CALLBACK_V40)(const SADP_DEVICE_INFO_V40 *lpDeviceInfo, void *pUserData);
+CSADP_API BOOL CALLBACK SADP_Start_V40(PDEVICE_FIND_CALLBACK_V40 pDeviceFindCallBack, int bInstallNPF = 0, void* pUserData = NULL);
+CSADP_API BOOL CALLBACK SADP_SendInquiry(void);
+CSADP_API BOOL CALLBACK SADP_Stop(void);
+CSADP_API BOOL CALLBACK SADP_ModifyDeviceNetParam(const char* sMAC, const char* sPassword, const SADP_DEV_NET_PARAM *lpNetParam);
+CSADP_API unsigned int CALLBACK SADP_GetSadpVersion(void);
+CSADP_API BOOL CALLBACK SADP_SetLogToFile(int nLogLevel=0, char const *strLogDir = NULL, int bAutoDel = 1);		
+CSADP_API unsigned int CALLBACK SADP_GetLastError(void);
+CSADP_API BOOL CALLBACK SADP_ResetDefaultPasswd(const char* sDevSerialNO, const char* sCommand);
+CSADP_API BOOL CALLBACK SADP_SetCMSInfo(const char* sMac, const SADP_CMS_PARAM *lpCmsParam);
+CSADP_API BOOL CALLBACK SADP_Clearup(void);
+CSADP_API void CALLBACK SADP_SetAutoRequestInterval(unsigned int dwInterval); //设置自动搜索时间间隔(单位秒,为0则不自动请求,默认60s)
+
+CSADP_API BOOL CALLBACK SADP_GetDeviceConfig(const char* sDevSerialNO, unsigned int dwCommand, void* lpInBuffer, unsigned int  dwinBuffSize, void *lpOutBuffer, unsigned int  dwOutBuffSize);
+CSADP_API BOOL CALLBACK SADP_SetDeviceConfig(const char* sDevSerialNO, unsigned int dwCommand, void* lpInBuffer, unsigned int  dwInBuffSize, void* lpOutBuffer, unsigned int  dwOutBuffSize);
+CSADP_API BOOL CALLBACK SADP_GetDeviceConfigByMAC(const char* sDevMAC, unsigned int dwCommand, void* lpInBuffer, unsigned int  dwinBuffSize, void *lpOutBuffer, unsigned int  dwOutBuffSize);
+//激活设备
+CSADP_API BOOL CALLBACK SADP_ActivateDevice(const char* sDevSerialNO, const char* sCommand);
+
+//重置密码接口,兼容之前的恢复默认密码接口
+CSADP_API BOOL CALLBACK SADP_ResetPasswd(const char* sDevSerialNO, const SADP_RESET_PARAM *pResetParam);
+//重置密码接口V40,兼容之前的SADP_ResetPasswd
+CSADP_API BOOL CALLBACK SADP_ResetPasswd_V40(const char* sDevSerialNO, const SADP_RESET_PARAM_V40 *pResetParam, SADP_RET_RESET_PARAM_V40 *pRetResetParam);
+
+
+//设置设备过滤规则
+//dwFilterRule,按位表示,为1表示过滤,全0表示不过滤;0x01:过滤萤石设备;0x02:过滤OEM设备;0x03:过滤萤和OEM设备;0xfffffffe:仅显示萤石设备;0xfffffffd:仅显示OEM设备
+CSADP_API BOOL CALLBACK SADP_SetDeviceFilterRule( unsigned int dwFilterRule, const void *lpInBuff, unsigned int dwInBuffLen);
+//修改网络参数V40
+CSADP_API BOOL CALLBACK SADP_ModifyDeviceNetParam_V40(const char* sMAC, const char* sPassword, const SADP_DEV_NET_PARAM *lpNetParam, SADP_DEV_RET_NET_PARAM *lpRetNetParam, unsigned int  dwOutBuffSize);
+//点灯
+CSADP_API BOOL CALLBACK SADP_SendLamp(const char* sMAC, unsigned int dwCommand);
+#endif
+
+
+
+
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Info.plist b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Info.plist
new file mode 100644
index 0000000..7d15dcc
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Info.plist
Binary files differ
diff --git a/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Modules/module.modulemap b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Modules/module.modulemap
new file mode 100644
index 0000000..b77c28a
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/EZOpenSDKFramework.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module EZOpenSDKFramework {
+  umbrella header "EZOpenSDKFramework.h"
+
+  export *
+  module * { export * }
+}

--
Gitblit v1.8.0