From 4f0271c6055ad0532555f2cf4135998f07485dfb Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期四, 12 十一月 2020 14:25:13 +0800
Subject: [PATCH] 2020-11-12 1.更新SDK

---
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/main.m                                                              |   19 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ESVideo.h                                                           |   27 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoUITests/Info.plist                                                   |   22 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Info.plist                                                    |    0 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory                                  |    0 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Headers/ESError.h                                             |   76 +
 xamarin/ESVideoPhoneSDKXamarin/ESVideoPhoneSDKXamarin/ESvideoVideoIntercomViewController.m                                         |   71 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Base.lproj/LaunchScreen.storyboard                                  |   29 
 ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1                                                  |    0 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ESVideo.m                                                           |   75 +
 ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature                                                       |    0 
 xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h                                             |    2 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/ESVideoPhoneSDk                                               |    0 
 ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements                                                    |    0 
 ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/ESVideoPhoneSDk                                                                    |    0 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature                                  |    0 
 ESVideoPhoneSDKZigbee/ESVideoPhoneSDKDemo/ZigBee/ESvideoVideoIntercomViewController.m                                              |   71 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ViewController.h                                                    |   23 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoUITests/ESVideoPhoneSDKDemoUITests.m                                 |   48 +
 ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h                                                             |    2 
 xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements                                    |    0 
 xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature                                       |    0 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ViewController.mm                                                   |  580 ++++++++++++
 xamarin/Shared.IOS.ESVideoPhoneSDK/Library/libESVideoPhoneSDKXamarin.a                                                             |    0 
 xamarin/ESVideoPhoneSDKXamarin/ESVideoPhoneSDKXamarin/ESVideoMonitorViewController.m                                               |   72 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Base.lproj/Main.storyboard                                          |  181 +++
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements                               |    0 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist |    8 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Assets.xcassets/AppIcon.appiconset/Contents.json                    |   98 ++
 xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/ESVideoPhoneSDk                                                    |    0 
 ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources                                                       |    6 
 ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory                                                       |    0 
 ESVideoPhoneSDKZigbee/ESVideoPhoneSDKDemo/ZigBee/ESVideoMonitorViewController.m                                                    |   72 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Info.plist                                                          |   73 +
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AppDelegate.h                                                       |   15 
 xamarin/ESVideoPhoneSDKXamarin/README.md                                                                                           |    6 
 xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory                                       |    0 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AppDelegate.m                                                       |   42 
 xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1                                  |    0 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoTests/ESVideoPhoneSDKDemoTests.m                                     |   37 
 xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/Info.plist                                                         |    0 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Assets.xcassets/Contents.json                                       |    6 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata              |    7 
 xamarin/Shared.IOS.ESVideoPhoneSDK/Library/ESVideoPhoneSDk.a                                                                       |    0 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/SceneDelegate.m                                                     |   50 +
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.pbxproj                                           |  656 +++++++++++++
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/SceneDelegate.h                                                     |   16 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoTests/Info.plist                                                     |   22 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AudioSessionHelper.h                                                |   19 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources                                  |  132 ++
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1                             |    0 
 xamarin/Shared.IOS.ESVideoPhoneSDK/Properties/AssemblyInfo.cs                                                                      |    2 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h                                        |   83 +
 ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/Info.plist                                                                         |    0 
 ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AudioSessionHelper.m                                                |  124 ++
 xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources                                       |    6 
 56 files changed, 2,645 insertions(+), 133 deletions(-)

diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.pbxproj b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..4fa03de
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.pbxproj
@@ -0,0 +1,656 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 50;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		B96CCD7A24A88EAD00FCCEBF /* ESVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = B96CCD7824A88EAD00FCCEBF /* ESVideo.m */; };
+		C3385925233DAF06006940C3 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C3385924233DAF06006940C3 /* AppDelegate.m */; };
+		C3385928233DAF06006940C3 /* SceneDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C3385927233DAF06006940C3 /* SceneDelegate.m */; };
+		C338592B233DAF06006940C3 /* ViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = C338592A233DAF06006940C3 /* ViewController.mm */; };
+		C338592E233DAF06006940C3 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C338592C233DAF06006940C3 /* Main.storyboard */; };
+		C3385930233DAF12006940C3 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C338592F233DAF12006940C3 /* Assets.xcassets */; };
+		C3385933233DAF12006940C3 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C3385931233DAF12006940C3 /* LaunchScreen.storyboard */; };
+		C3385936233DAF12006940C3 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C3385935233DAF12006940C3 /* main.m */; };
+		C3385940233DAF12006940C3 /* ESVideoPhoneSDKDemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = C338593F233DAF12006940C3 /* ESVideoPhoneSDKDemoTests.m */; };
+		C338594B233DAF13006940C3 /* ESVideoPhoneSDKDemoUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = C338594A233DAF13006940C3 /* ESVideoPhoneSDKDemoUITests.m */; };
+		C345D08B233EEE520079C82C /* AudioSessionHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = C345D08A233EEE520079C82C /* AudioSessionHelper.m */; };
+		C3EBF9E823A72BCE00B62DDD /* ESVideoPhoneSDk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3EBF9E723A72BCD00B62DDD /* ESVideoPhoneSDk.framework */; };
+		C3F59377233E0717009F09E5 /* libbz2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = C3F59376233E0717009F09E5 /* libbz2.tbd */; };
+		C3F59379233E0723009F09E5 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = C3F59378233E0723009F09E5 /* libz.tbd */; };
+		C3F5937B233E0745009F09E5 /* libiconv.2.4.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = C3F5937A233E0744009F09E5 /* libiconv.2.4.0.tbd */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		C338593C233DAF12006940C3 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = C3385918233DAF06006940C3 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = C338591F233DAF06006940C3;
+			remoteInfo = ESVideoPhoneSDKDemo;
+		};
+		C3385947233DAF13006940C3 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = C3385918233DAF06006940C3 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = C338591F233DAF06006940C3;
+			remoteInfo = ESVideoPhoneSDKDemo;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+		B924480E24934E5500F118F1 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
+		B96CCD7824A88EAD00FCCEBF /* ESVideo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ESVideo.m; sourceTree = "<group>"; };
+		B96CCD7924A88EAD00FCCEBF /* ESVideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ESVideo.h; sourceTree = "<group>"; };
+		C3385920233DAF06006940C3 /* ESVideoPhoneSDKDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ESVideoPhoneSDKDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		C3385923233DAF06006940C3 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
+		C3385924233DAF06006940C3 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
+		C3385926233DAF06006940C3 /* SceneDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneDelegate.h; sourceTree = "<group>"; };
+		C3385927233DAF06006940C3 /* SceneDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SceneDelegate.m; sourceTree = "<group>"; };
+		C3385929233DAF06006940C3 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
+		C338592A233DAF06006940C3 /* ViewController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = ViewController.mm; sourceTree = "<group>"; };
+		C338592D233DAF06006940C3 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
+		C338592F233DAF12006940C3 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
+		C3385932233DAF12006940C3 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
+		C3385934233DAF12006940C3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		C3385935233DAF12006940C3 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+		C338593B233DAF12006940C3 /* ESVideoPhoneSDKDemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ESVideoPhoneSDKDemoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+		C338593F233DAF12006940C3 /* ESVideoPhoneSDKDemoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ESVideoPhoneSDKDemoTests.m; sourceTree = "<group>"; };
+		C3385941233DAF12006940C3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		C3385946233DAF13006940C3 /* ESVideoPhoneSDKDemoUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ESVideoPhoneSDKDemoUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+		C338594A233DAF13006940C3 /* ESVideoPhoneSDKDemoUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ESVideoPhoneSDKDemoUITests.m; sourceTree = "<group>"; };
+		C338594C233DAF13006940C3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		C345D089233EEE510079C82C /* AudioSessionHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioSessionHelper.h; sourceTree = "<group>"; };
+		C345D08A233EEE520079C82C /* AudioSessionHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AudioSessionHelper.m; sourceTree = "<group>"; };
+		C3EBF9E723A72BCD00B62DDD /* ESVideoPhoneSDk.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = ESVideoPhoneSDk.framework; sourceTree = "<group>"; };
+		C3F59376233E0717009F09E5 /* libbz2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libbz2.tbd; path = usr/lib/libbz2.tbd; sourceTree = SDKROOT; };
+		C3F59378233E0723009F09E5 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
+		C3F5937A233E0744009F09E5 /* libiconv.2.4.0.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.2.4.0.tbd; path = usr/lib/libiconv.2.4.0.tbd; sourceTree = SDKROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		C338591D233DAF06006940C3 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				C3EBF9E823A72BCE00B62DDD /* ESVideoPhoneSDk.framework in Frameworks */,
+				C3F5937B233E0745009F09E5 /* libiconv.2.4.0.tbd in Frameworks */,
+				C3F59379233E0723009F09E5 /* libz.tbd in Frameworks */,
+				C3F59377233E0717009F09E5 /* libbz2.tbd in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		C3385938233DAF12006940C3 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		C3385943233DAF13006940C3 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		C3385917233DAF06006940C3 = {
+			isa = PBXGroup;
+			children = (
+				C3385922233DAF06006940C3 /* ESVideoPhoneSDKDemo */,
+				C338593E233DAF12006940C3 /* ESVideoPhoneSDKDemoTests */,
+				C3385949233DAF13006940C3 /* ESVideoPhoneSDKDemoUITests */,
+				C3385921233DAF06006940C3 /* Products */,
+				C3E915CA233DFE4C00F77354 /* Frameworks */,
+			);
+			sourceTree = "<group>";
+		};
+		C3385921233DAF06006940C3 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				C3385920233DAF06006940C3 /* ESVideoPhoneSDKDemo.app */,
+				C338593B233DAF12006940C3 /* ESVideoPhoneSDKDemoTests.xctest */,
+				C3385946233DAF13006940C3 /* ESVideoPhoneSDKDemoUITests.xctest */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		C3385922233DAF06006940C3 /* ESVideoPhoneSDKDemo */ = {
+			isa = PBXGroup;
+			children = (
+				B96CCD7924A88EAD00FCCEBF /* ESVideo.h */,
+				B96CCD7824A88EAD00FCCEBF /* ESVideo.m */,
+				C3385923233DAF06006940C3 /* AppDelegate.h */,
+				C3385924233DAF06006940C3 /* AppDelegate.m */,
+				C3385926233DAF06006940C3 /* SceneDelegate.h */,
+				C3385927233DAF06006940C3 /* SceneDelegate.m */,
+				C3385929233DAF06006940C3 /* ViewController.h */,
+				C338592A233DAF06006940C3 /* ViewController.mm */,
+				C345D089233EEE510079C82C /* AudioSessionHelper.h */,
+				C345D08A233EEE520079C82C /* AudioSessionHelper.m */,
+				C338592C233DAF06006940C3 /* Main.storyboard */,
+				C338592F233DAF12006940C3 /* Assets.xcassets */,
+				C3385931233DAF12006940C3 /* LaunchScreen.storyboard */,
+				C3385934233DAF12006940C3 /* Info.plist */,
+				C3385935233DAF12006940C3 /* main.m */,
+			);
+			path = ESVideoPhoneSDKDemo;
+			sourceTree = "<group>";
+		};
+		C338593E233DAF12006940C3 /* ESVideoPhoneSDKDemoTests */ = {
+			isa = PBXGroup;
+			children = (
+				C338593F233DAF12006940C3 /* ESVideoPhoneSDKDemoTests.m */,
+				C3385941233DAF12006940C3 /* Info.plist */,
+			);
+			path = ESVideoPhoneSDKDemoTests;
+			sourceTree = "<group>";
+		};
+		C3385949233DAF13006940C3 /* ESVideoPhoneSDKDemoUITests */ = {
+			isa = PBXGroup;
+			children = (
+				C338594A233DAF13006940C3 /* ESVideoPhoneSDKDemoUITests.m */,
+				C338594C233DAF13006940C3 /* Info.plist */,
+			);
+			path = ESVideoPhoneSDKDemoUITests;
+			sourceTree = "<group>";
+		};
+		C3E915CA233DFE4C00F77354 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				B924480E24934E5500F118F1 /* AudioToolbox.framework */,
+				C3EBF9E723A72BCD00B62DDD /* ESVideoPhoneSDk.framework */,
+				C3F5937A233E0744009F09E5 /* libiconv.2.4.0.tbd */,
+				C3F59378233E0723009F09E5 /* libz.tbd */,
+				C3F59376233E0717009F09E5 /* libbz2.tbd */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		C338591F233DAF06006940C3 /* ESVideoPhoneSDKDemo */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = C338594F233DAF13006940C3 /* Build configuration list for PBXNativeTarget "ESVideoPhoneSDKDemo" */;
+			buildPhases = (
+				C338591C233DAF06006940C3 /* Sources */,
+				C338591D233DAF06006940C3 /* Frameworks */,
+				C338591E233DAF06006940C3 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = ESVideoPhoneSDKDemo;
+			productName = ESVideoPhoneSDKDemo;
+			productReference = C3385920233DAF06006940C3 /* ESVideoPhoneSDKDemo.app */;
+			productType = "com.apple.product-type.application";
+		};
+		C338593A233DAF12006940C3 /* ESVideoPhoneSDKDemoTests */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = C3385952233DAF13006940C3 /* Build configuration list for PBXNativeTarget "ESVideoPhoneSDKDemoTests" */;
+			buildPhases = (
+				C3385937233DAF12006940C3 /* Sources */,
+				C3385938233DAF12006940C3 /* Frameworks */,
+				C3385939233DAF12006940C3 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				C338593D233DAF12006940C3 /* PBXTargetDependency */,
+			);
+			name = ESVideoPhoneSDKDemoTests;
+			productName = ESVideoPhoneSDKDemoTests;
+			productReference = C338593B233DAF12006940C3 /* ESVideoPhoneSDKDemoTests.xctest */;
+			productType = "com.apple.product-type.bundle.unit-test";
+		};
+		C3385945233DAF13006940C3 /* ESVideoPhoneSDKDemoUITests */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = C3385955233DAF13006940C3 /* Build configuration list for PBXNativeTarget "ESVideoPhoneSDKDemoUITests" */;
+			buildPhases = (
+				C3385942233DAF13006940C3 /* Sources */,
+				C3385943233DAF13006940C3 /* Frameworks */,
+				C3385944233DAF13006940C3 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				C3385948233DAF13006940C3 /* PBXTargetDependency */,
+			);
+			name = ESVideoPhoneSDKDemoUITests;
+			productName = ESVideoPhoneSDKDemoUITests;
+			productReference = C3385946233DAF13006940C3 /* ESVideoPhoneSDKDemoUITests.xctest */;
+			productType = "com.apple.product-type.bundle.ui-testing";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		C3385918233DAF06006940C3 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 1100;
+				ORGANIZATIONNAME = eTouchSky;
+				TargetAttributes = {
+					C338591F233DAF06006940C3 = {
+						CreatedOnToolsVersion = 11.0;
+					};
+					C338593A233DAF12006940C3 = {
+						CreatedOnToolsVersion = 11.0;
+						TestTargetID = C338591F233DAF06006940C3;
+					};
+					C3385945233DAF13006940C3 = {
+						CreatedOnToolsVersion = 11.0;
+						TestTargetID = C338591F233DAF06006940C3;
+					};
+				};
+			};
+			buildConfigurationList = C338591B233DAF06006940C3 /* Build configuration list for PBXProject "ESVideoPhoneSDKDemo" */;
+			compatibilityVersion = "Xcode 9.3";
+			developmentRegion = en;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+				Base,
+			);
+			mainGroup = C3385917233DAF06006940C3;
+			productRefGroup = C3385921233DAF06006940C3 /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				C338591F233DAF06006940C3 /* ESVideoPhoneSDKDemo */,
+				C338593A233DAF12006940C3 /* ESVideoPhoneSDKDemoTests */,
+				C3385945233DAF13006940C3 /* ESVideoPhoneSDKDemoUITests */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		C338591E233DAF06006940C3 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				C3385933233DAF12006940C3 /* LaunchScreen.storyboard in Resources */,
+				C3385930233DAF12006940C3 /* Assets.xcassets in Resources */,
+				C338592E233DAF06006940C3 /* Main.storyboard in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		C3385939233DAF12006940C3 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		C3385944233DAF13006940C3 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		C338591C233DAF06006940C3 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				C338592B233DAF06006940C3 /* ViewController.mm in Sources */,
+				B96CCD7A24A88EAD00FCCEBF /* ESVideo.m in Sources */,
+				C3385925233DAF06006940C3 /* AppDelegate.m in Sources */,
+				C345D08B233EEE520079C82C /* AudioSessionHelper.m in Sources */,
+				C3385936233DAF12006940C3 /* main.m in Sources */,
+				C3385928233DAF06006940C3 /* SceneDelegate.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		C3385937233DAF12006940C3 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				C3385940233DAF12006940C3 /* ESVideoPhoneSDKDemoTests.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		C3385942233DAF13006940C3 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				C338594B233DAF13006940C3 /* ESVideoPhoneSDKDemoUITests.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		C338593D233DAF12006940C3 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = C338591F233DAF06006940C3 /* ESVideoPhoneSDKDemo */;
+			targetProxy = C338593C233DAF12006940C3 /* PBXContainerItemProxy */;
+		};
+		C3385948233DAF13006940C3 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = C338591F233DAF06006940C3 /* ESVideoPhoneSDKDemo */;
+			targetProxy = C3385947233DAF13006940C3 /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+		C338592C233DAF06006940C3 /* Main.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				C338592D233DAF06006940C3 /* Base */,
+			);
+			name = Main.storyboard;
+			sourceTree = "<group>";
+		};
+		C3385931233DAF12006940C3 /* LaunchScreen.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				C3385932233DAF12006940C3 /* Base */,
+			);
+			name = LaunchScreen.storyboard;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		C338594D233DAF13006940C3 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_ENABLE_OBJC_WEAK = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = dwarf;
+				ENABLE_BITCODE = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_TESTABILITY = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu11;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+				MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+				MTL_FAST_MATH = YES;
+				ONLY_ACTIVE_ARCH = YES;
+				OTHER_LDFLAGS = "-Wl,-all_load";
+				SDKROOT = iphoneos;
+				VALID_ARCHS = "arm64 arm64e";
+			};
+			name = Debug;
+		};
+		C338594E233DAF13006940C3 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_ENABLE_OBJC_WEAK = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				ENABLE_BITCODE = NO;
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu11;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+				MTL_ENABLE_DEBUG_INFO = NO;
+				MTL_FAST_MATH = YES;
+				OTHER_LDFLAGS = "-Wl,-all_load";
+				SDKROOT = iphoneos;
+				VALIDATE_PRODUCT = YES;
+				VALID_ARCHS = "arm64 arm64e";
+			};
+			name = Release;
+		};
+		C3385950233DAF13006940C3 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				CODE_SIGN_STYLE = Manual;
+				DEVELOPMENT_TEAM = BVTA78PRYA;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/ESVideoPhoneSDKDemo",
+					"$(PROJECT_DIR)",
+				);
+				INFOPLIST_FILE = ESVideoPhoneSDKDemo/Info.plist;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+				);
+				LIBRARY_SEARCH_PATHS = "$(inherited)";
+				MARKETING_VERSION = 1.2;
+				OTHER_LDFLAGS = "-Wl,-all_load";
+				PRODUCT_BUNDLE_IDENTIFIER = com.hdl.ESVideoPhoneSDKDemo2;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				PROVISIONING_PROFILE_SPECIFIER = Test;
+				TARGETED_DEVICE_FAMILY = 1;
+			};
+			name = Debug;
+		};
+		C3385951233DAF13006940C3 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				CODE_SIGN_STYLE = Manual;
+				DEVELOPMENT_TEAM = BVTA78PRYA;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/ESVideoPhoneSDKDemo",
+					"$(PROJECT_DIR)",
+				);
+				INFOPLIST_FILE = ESVideoPhoneSDKDemo/Info.plist;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+				);
+				LIBRARY_SEARCH_PATHS = "$(inherited)";
+				MARKETING_VERSION = 1.2;
+				OTHER_LDFLAGS = "-Wl,-all_load";
+				PRODUCT_BUNDLE_IDENTIFIER = com.hdl.ESVideoPhoneSDKDemo2;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				PROVISIONING_PROFILE_SPECIFIER = Test;
+				TARGETED_DEVICE_FAMILY = 1;
+			};
+			name = Release;
+		};
+		C3385953233DAF13006940C3 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				BUNDLE_LOADER = "$(TEST_HOST)";
+				CODE_SIGN_STYLE = Automatic;
+				DEVELOPMENT_TEAM = 754E2P9CSA;
+				INFOPLIST_FILE = ESVideoPhoneSDKDemoTests/Info.plist;
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+					"@loader_path/Frameworks",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = eTouchSky.ESVideoPhoneSDKDemoTests;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				TARGETED_DEVICE_FAMILY = "1,2";
+				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ESVideoPhoneSDKDemo.app/ESVideoPhoneSDKDemo";
+			};
+			name = Debug;
+		};
+		C3385954233DAF13006940C3 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				BUNDLE_LOADER = "$(TEST_HOST)";
+				CODE_SIGN_STYLE = Automatic;
+				DEVELOPMENT_TEAM = 754E2P9CSA;
+				INFOPLIST_FILE = ESVideoPhoneSDKDemoTests/Info.plist;
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+					"@loader_path/Frameworks",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = eTouchSky.ESVideoPhoneSDKDemoTests;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				TARGETED_DEVICE_FAMILY = "1,2";
+				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ESVideoPhoneSDKDemo.app/ESVideoPhoneSDKDemo";
+			};
+			name = Release;
+		};
+		C3385956233DAF13006940C3 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CODE_SIGN_STYLE = Automatic;
+				DEVELOPMENT_TEAM = 754E2P9CSA;
+				INFOPLIST_FILE = ESVideoPhoneSDKDemoUITests/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+					"@loader_path/Frameworks",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = eTouchSky.ESVideoPhoneSDKDemoUITests;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				TARGETED_DEVICE_FAMILY = "1,2";
+				TEST_TARGET_NAME = ESVideoPhoneSDKDemo;
+			};
+			name = Debug;
+		};
+		C3385957233DAF13006940C3 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CODE_SIGN_STYLE = Automatic;
+				DEVELOPMENT_TEAM = 754E2P9CSA;
+				INFOPLIST_FILE = ESVideoPhoneSDKDemoUITests/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+					"@loader_path/Frameworks",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = eTouchSky.ESVideoPhoneSDKDemoUITests;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				TARGETED_DEVICE_FAMILY = "1,2";
+				TEST_TARGET_NAME = ESVideoPhoneSDKDemo;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		C338591B233DAF06006940C3 /* Build configuration list for PBXProject "ESVideoPhoneSDKDemo" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				C338594D233DAF13006940C3 /* Debug */,
+				C338594E233DAF13006940C3 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		C338594F233DAF13006940C3 /* Build configuration list for PBXNativeTarget "ESVideoPhoneSDKDemo" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				C3385950233DAF13006940C3 /* Debug */,
+				C3385951233DAF13006940C3 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		C3385952233DAF13006940C3 /* Build configuration list for PBXNativeTarget "ESVideoPhoneSDKDemoTests" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				C3385953233DAF13006940C3 /* Debug */,
+				C3385954233DAF13006940C3 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		C3385955233DAF13006940C3 /* Build configuration list for PBXNativeTarget "ESVideoPhoneSDKDemoUITests" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				C3385956233DAF13006940C3 /* Debug */,
+				C3385957233DAF13006940C3 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = C3385918233DAF06006940C3 /* Project object */;
+}
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..77c97cf
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "self:ESVideoPhoneSDKDemo.xcodeproj">
+   </FileRef>
+</Workspace>
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IDEDidComputeMac32BitWarning</key>
+	<true/>
+</dict>
+</plist>
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AppDelegate.h b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AppDelegate.h
new file mode 100644
index 0000000..4ed4dc0
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AppDelegate.h
@@ -0,0 +1,15 @@
+//
+//  AppDelegate.h
+//  ESVideoPhoneSDKDemo
+//
+//  Created by eTouchSky on 2019/9/27.
+//  Copyright 漏 2019 eTouchSky. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface AppDelegate : UIResponder <UIApplicationDelegate>
+@property (strong, nonatomic) UIWindow *window;
+
+@end
+
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AppDelegate.m b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AppDelegate.m
new file mode 100644
index 0000000..411f78c
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AppDelegate.m
@@ -0,0 +1,42 @@
+//
+//  AppDelegate.m
+//  ESVideoPhoneSDKDemo
+//
+//  Created by eTouchSky on 2019/9/27.
+//  Copyright 漏 2019 eTouchSky. All rights reserved.
+//
+
+#import "AppDelegate.h"
+
+@interface AppDelegate ()
+
+@end
+
+@implementation AppDelegate
+
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
+    // Override point for customization after application launch.
+    
+    return YES;
+}
+
+
+#pragma mark - UISceneSession lifecycle
+
+
+- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options {
+    // Called when a new scene session is being created.
+    // Use this method to select a configuration to create the new scene with.
+    return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role];
+}
+
+
+- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet<UISceneSession *> *)sceneSessions {
+    // Called when the user discards a scene session.
+    // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
+    // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
+}
+
+
+@end
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Assets.xcassets/AppIcon.appiconset/Contents.json b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..d8db8d6
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,98 @@
+{
+  "images" : [
+    {
+      "idiom" : "iphone",
+      "size" : "20x20",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "20x20",
+      "scale" : "3x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "29x29",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "29x29",
+      "scale" : "3x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "40x40",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "40x40",
+      "scale" : "3x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "60x60",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "60x60",
+      "scale" : "3x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "20x20",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "20x20",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "29x29",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "29x29",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "40x40",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "40x40",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "76x76",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "76x76",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "83.5x83.5",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "ios-marketing",
+      "size" : "1024x1024",
+      "scale" : "1x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Assets.xcassets/Contents.json b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Assets.xcassets/Contents.json
new file mode 100644
index 0000000..da4a164
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AudioSessionHelper.h b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AudioSessionHelper.h
new file mode 100644
index 0000000..39ed2c9
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AudioSessionHelper.h
@@ -0,0 +1,19 @@
+//
+//  AudioSessionHelper.h
+//  VideoPhone
+//
+//  Created by eTouchSky on 2019/5/30.
+//  Copyright 漏 2019 eTouchSky. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+
+
+@interface AudioSessionHelper : NSObject
+
+- (void)setAudioSession;
+-(NSString *)speaker:(BOOL)isSpeaking;
+@end
+
+
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AudioSessionHelper.m b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AudioSessionHelper.m
new file mode 100644
index 0000000..c4039cc
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AudioSessionHelper.m
@@ -0,0 +1,124 @@
+//
+//  AudioSessionHelper.m
+//  VideoPhone
+//
+//  Created by eTouchSky on 2019/5/30.
+//  Copyright 漏 2019 eTouchSky. All rights reserved.
+//
+
+#import "AudioSessionHelper.h"
+#import <AVFoundation/AVFoundation.h>
+
+@interface AudioSessionHelper()
+
+@property (nonatomic,assign) BOOL                  speaking;
+
+@end
+
+@implementation AudioSessionHelper
+
+#pragma mark -- AVAudioSession鐨勮缃�
+-(void)setAudioSession{
+    NSError *error = nil;
+    //鍏嶆彁鎾斁 鏈夊洖澹帮細 缃戠粶寮曡捣鍥為煶锛堜袱涓墜鏈洪殧澶繎灏变細寰堝ぇ锛夈�� 鎵嬫満鏈韩鐨勮璁℃湁闂锛堝綍鎾級锛屽叧闂檷鍣姛鑳斤紙鍏抽棴鍚庡熀鏈病鏈変簡锛�
+    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
+    if (error) {
+        NSLog(@"AVAudioSessionCategoryPlayAndRecord error:%@", error);
+    }else{
+        NSLog(@"鍚瓛鎾斁");
+    }
+    
+    [[AVAudioSession sharedInstance] setActive:YES withOptions:kAudioSessionSetActiveFlag_NotifyOthersOnDeactivation error:&error];
+    
+    [[AVAudioSession sharedInstance] setPreferredIOBufferDuration:0.05 error:&error];
+    if (error) {
+        NSLog(@"AVAudioSessionSetPreferredIOBufferDuration error:%@", error);
+    }
+    
+    /**< 鐮佺巼璁剧疆涓嶆纭細瀵艰嚧鎾斁鍑烘潵鐨勫0闊冲彉灏栨垨鍙樺钩锛屾湁涓�鐐规嫋闊虫垨鑰呮渶鍚庝竴鐐归煶灏戜簡,8000鐨勯噰鏍风巼璁剧疆16000鐨勭爜鐜囧緢濂�>*/
+    [[AVAudioSession sharedInstance] setPreferredSampleRate:16000 error:&error];
+    if (error) {
+        NSLog(@"setPreferredSampleRate error:%@", error);
+    }
+}
+
+
+//蹇呴』鍏坰etActive:NO  鍐嶈缃畂ption  鍐峴etActive:YES锛� 鍚﹀垯鏈変簺绯荤粺锛屾湁浜涚暩褰紝鍦ㄥ惉绛掓ā寮忎笅涓嶈兘閲囬泦
+//杩欓噷鎵撴柇鐐规祴璇曞彲鑳戒細鎶ラ敊锛歱2p缁堢锛岃В鐮佸櫒缁堢銆�
+-(NSString *)speaker:(BOOL)isSpeaking{
+    
+    NSError *error = nil;
+    
+    [[AVAudioSession sharedInstance] setActive:NO error:&error];
+    if (error) {
+        NSLog(@"setActive:NO error:%@", error);
+    }
+    if (isSpeaking == NO) {
+        //鍚瓛鎾斁 鏁堟灉寰堝ソ
+        [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
+        if (error) {
+            NSLog(@"AVAudioSessionCategoryPlayAndRecord error:%@", error);
+            return nil;
+        }else{
+            NSLog(@"鍚瓛鎾斁");
+             [[AVAudioSession sharedInstance] setActive:YES withOptions:kAudioSessionSetActiveFlag_NotifyOthersOnDeactivation error:&error];
+            if (error) {
+                NSLog(@"setActive:YES error:%@", error);
+            }
+           
+           [self LogAudioSessionInfo];
+            
+            return @"鍏嶆彁";
+        }
+    }else{
+        //鍏嶆彁鎾斁 鏈夊洖澹帮細 缃戠粶寮曡捣鍥為煶锛堜袱涓墜鏈洪殧澶繎灏变細寰堝ぇ锛夈�� 鎵嬫満鏈韩鐨勮璁℃湁闂锛堝綍鎾級锛屽叧闂檷鍣姛鑳斤紙鍏抽棴鍚庡熀鏈病鏈変簡锛�
+        [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:&error];
+        if (error) {
+            NSLog(@"AVAudioSessionCategoryOptionDefaultToSpeaker error:%@", error);
+            return nil;
+        }else{
+            NSLog(@"鍏嶆彁鎾斁");
+             [[AVAudioSession sharedInstance] setActive:YES withOptions:kAudioSessionSetActiveFlag_NotifyOthersOnDeactivation error:&error];
+            if (error) {
+                NSLog(@"setActive:YES error:%@", error);
+            }
+            
+            //[self LogAudioSessionInfo];
+            
+            return @"鍚瓛";
+        }
+    }
+}
+
+-(void)LogAudioSessionInfo{
+    AVAudioSessionCategory category = [[AVAudioSession sharedInstance] category];
+    AVAudioSessionCategoryOptions option = [[AVAudioSession sharedInstance] categoryOptions];
+    NSArray* inputArray = [[AVAudioSession sharedInstance] availableInputs];
+    NSArray* outputArray = [AVAudioSession sharedInstance].currentRoute.outputs;
+    NSLog(@"%@", category);
+    NSLog(@"%lu", (unsigned long)option);
+    NSLog(@"%@", inputArray);
+    NSLog(@"%@", outputArray);
+}
+
+/*
+-(void)changeMicToHeadset{
+    NSArray* inputArray = [[AVAudioSession sharedInstance] availableInputs];
+    for (AVAudioSessionPortDescription* desc in inputArray) {
+        if ([desc.portType isEqualToString:AVAudioSessionPortHeadsetMic]) {
+            NSError* error;
+            [[AVAudioSession sharedInstance] setPreferredInput:desc error:&error];
+        }
+    }
+}
+-(void)changeMicToBuiltIn{
+    NSArray* inputArray = [[AVAudioSession sharedInstance] availableInputs];
+    for (AVAudioSessionPortDescription* desc in inputArray) {
+        if ([desc.portType isEqualToString:AVAudioSessionPortBuiltInMic]) {
+            NSError* error;
+            [[AVAudioSession sharedInstance] setPreferredInput:desc error:&error];
+        }
+    }
+}
+*/
+@end
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Base.lproj/LaunchScreen.storyboard b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Base.lproj/LaunchScreen.storyboard
new file mode 100644
index 0000000..035cbad
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Base.lproj/LaunchScreen.storyboard
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15702" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
+    <device id="retina4_7" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15704"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <scenes>
+        <!--View Controller-->
+        <scene sceneID="EHf-IW-A2E">
+            <objects>
+                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="oCk-sZ-pj6"/>
+                        <viewControllerLayoutGuide type="bottom" id="850-qB-SUI"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="Ze5-6b-2t3">
+                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="53" y="375"/>
+        </scene>
+    </scenes>
+</document>
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Base.lproj/Main.storyboard b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Base.lproj/Main.storyboard
new file mode 100644
index 0000000..3037ac2
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Base.lproj/Main.storyboard
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="Otu-wo-FUs">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15510"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <scenes>
+        <!--View Controller-->
+        <scene sceneID="tne-QT-ifu">
+            <objects>
+                <viewController id="BYZ-38-t0r" customClass="ViewController" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="Wzv-3T-9rg"/>
+                        <viewControllerLayoutGuide type="bottom" id="COG-Nv-9Ga"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="8bC-Xf-vdC">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="842"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vJi-oZ-LSc">
+                                <rect key="frame" x="40" y="738" width="60" height="30"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="30" id="2Pc-3k-dUO"/>
+                                    <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="60" id="cuo-Ky-5Dv"/>
+                                </constraints>
+                                <state key="normal" title="鍚瓛"/>
+                                <connections>
+                                    <action selector="speaker:" destination="BYZ-38-t0r" eventType="touchUpInside" id="W7q-iX-a2t"/>
+                                </connections>
+                            </button>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jPl-Vg-g3C">
+                                <rect key="frame" x="120" y="738" width="60" height="30"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="30" id="3O0-xV-2Xd"/>
+                                    <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="60" id="XJm-Mv-gZS"/>
+                                </constraints>
+                                <state key="normal" title="寮�闂�"/>
+                                <connections>
+                                    <action selector="openDoor:" destination="BYZ-38-t0r" eventType="touchUpInside" id="QiK-iu-wu4"/>
+                                </connections>
+                            </button>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mdf-GC-mIQ">
+                                <rect key="frame" x="200" y="738" width="60" height="30"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="60" id="Sm2-me-6Rj"/>
+                                    <constraint firstAttribute="height" constant="30" id="ln6-ba-aYV"/>
+                                </constraints>
+                                <state key="normal" title="鎴浘"/>
+                                <connections>
+                                    <action selector="onSnap:" destination="BYZ-38-t0r" eventType="touchUpInside" id="dvX-n1-L3W"/>
+                                </connections>
+                            </button>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="koH-BL-KZA">
+                                <rect key="frame" x="40" y="688" width="60" height="30"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="60" id="JB7-ql-xzA"/>
+                                </constraints>
+                                <state key="normal" title="鍙嶅懠"/>
+                                <connections>
+                                    <action selector="onReverseCall:" destination="BYZ-38-t0r" eventType="touchUpInside" id="R22-bQ-kpF"/>
+                                </connections>
+                            </button>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WJI-4Z-VeA">
+                                <rect key="frame" x="120" y="688" width="60" height="30"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="60" id="csc-sy-eEr"/>
+                                    <constraint firstAttribute="height" constant="30" id="vza-fv-qdl"/>
+                                </constraints>
+                                <state key="normal" title="鎸傛柇"/>
+                                <connections>
+                                    <action selector="onHangup:" destination="BYZ-38-t0r" eventType="touchUpInside" id="mUK-dK-0eT"/>
+                                </connections>
+                            </button>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="LcR-MR-y9c">
+                                <rect key="frame" x="200" y="688" width="60" height="30"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="60" id="7N3-EE-cFS"/>
+                                    <constraint firstAttribute="height" constant="30" id="go1-vo-L2j"/>
+                                </constraints>
+                                <state key="normal" title="鐩戞帶"/>
+                                <connections>
+                                    <action selector="onMonitor:" destination="BYZ-38-t0r" eventType="touchUpInside" id="RcS-6u-LBX"/>
+                                </connections>
+                            </button>
+                            <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Vfn-FR-1Ub">
+                                <rect key="frame" x="102" y="0.0" width="282" height="30"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="30" id="JFw-sW-vcm"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <textInputTraits key="textInputTraits" returnKeyType="done"/>
+                            </textField>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="闂ㄥ彛鏈�" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="E2O-cv-ota">
+                                <rect key="frame" x="40" y="0.0" width="52" height="30"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="30" id="VRD-h4-kIL"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Uhq-CJ-D5N">
+                                <rect key="frame" x="288" y="738" width="31" height="30"/>
+                                <state key="normal" title="杩斿洖"/>
+                                <connections>
+                                    <action selector="back:" destination="BYZ-38-t0r" eventType="touchUpInside" id="Cky-im-DhB"/>
+                                </connections>
+                            </button>
+                        </subviews>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        <constraints>
+                            <constraint firstItem="Vfn-FR-1Ub" firstAttribute="leading" secondItem="E2O-cv-ota" secondAttribute="trailing" constant="10" id="0RX-sz-eS9"/>
+                            <constraint firstItem="E2O-cv-ota" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leadingMargin" constant="20" id="17C-bm-Akt"/>
+                            <constraint firstItem="E2O-cv-ota" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leadingMargin" constant="20" id="1qo-7b-cDh"/>
+                            <constraint firstAttribute="trailing" secondItem="LcR-MR-y9c" secondAttribute="trailing" constant="154" id="Ac2-pr-p5A"/>
+                            <constraint firstItem="vJi-oZ-LSc" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leadingMargin" constant="20" id="AeG-dA-Pth"/>
+                            <constraint firstItem="Uhq-CJ-D5N" firstAttribute="leading" secondItem="mdf-GC-mIQ" secondAttribute="trailing" constant="28" id="BCG-1O-c7I"/>
+                            <constraint firstItem="vJi-oZ-LSc" firstAttribute="top" secondItem="koH-BL-KZA" secondAttribute="bottom" constant="20" id="Bgv-gv-AxZ"/>
+                            <constraint firstItem="jPl-Vg-g3C" firstAttribute="leading" secondItem="vJi-oZ-LSc" secondAttribute="trailing" constant="20" id="F7k-hc-PjM"/>
+                            <constraint firstItem="koH-BL-KZA" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leadingMargin" constant="20" id="GCM-h5-uZT"/>
+                            <constraint firstItem="E2O-cv-ota" firstAttribute="top" secondItem="Wzv-3T-9rg" secondAttribute="bottom" id="HUm-Q4-lcX"/>
+                            <constraint firstItem="Vfn-FR-1Ub" firstAttribute="top" secondItem="Wzv-3T-9rg" secondAttribute="bottom" id="Ifi-g7-5KM"/>
+                            <constraint firstItem="WJI-4Z-VeA" firstAttribute="leading" secondItem="koH-BL-KZA" secondAttribute="trailing" constant="20" id="MZc-33-aQU"/>
+                            <constraint firstAttribute="trailing" secondItem="mdf-GC-mIQ" secondAttribute="trailing" constant="154" id="Q2A-hp-SjO"/>
+                            <constraint firstAttribute="trailingMargin" secondItem="Uhq-CJ-D5N" secondAttribute="trailing" constant="75" id="Taz-RX-FBH"/>
+                            <constraint firstItem="LcR-MR-y9c" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="WJI-4Z-VeA" secondAttribute="trailing" symbolic="YES" id="Uor-VU-t3a"/>
+                            <constraint firstItem="Vfn-FR-1Ub" firstAttribute="top" secondItem="Wzv-3T-9rg" secondAttribute="bottom" id="Wua-9B-iLw"/>
+                            <constraint firstItem="koH-BL-KZA" firstAttribute="baseline" secondItem="WJI-4Z-VeA" secondAttribute="baseline" id="hB6-19-6BO"/>
+                            <constraint firstItem="Vfn-FR-1Ub" firstAttribute="leading" secondItem="E2O-cv-ota" secondAttribute="trailing" constant="10" id="hY9-F7-oE8"/>
+                            <constraint firstItem="mdf-GC-mIQ" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="jPl-Vg-g3C" secondAttribute="trailing" symbolic="YES" id="hiz-Om-gmC"/>
+                            <constraint firstAttribute="trailingMargin" secondItem="Vfn-FR-1Ub" secondAttribute="trailing" constant="10" id="nnC-yz-Mbc"/>
+                            <constraint firstItem="mdf-GC-mIQ" firstAttribute="top" secondItem="LcR-MR-y9c" secondAttribute="bottom" constant="20" id="nyj-zh-x4K"/>
+                            <constraint firstItem="koH-BL-KZA" firstAttribute="baseline" secondItem="LcR-MR-y9c" secondAttribute="baseline" id="uhc-hz-Lg4"/>
+                            <constraint firstItem="COG-Nv-9Ga" firstAttribute="top" secondItem="vJi-oZ-LSc" secondAttribute="bottom" constant="40" id="w71-ij-wzw"/>
+                            <constraint firstItem="COG-Nv-9Ga" firstAttribute="top" secondItem="Uhq-CJ-D5N" secondAttribute="bottom" constant="40" id="y0A-Wx-QLV"/>
+                            <constraint firstItem="COG-Nv-9Ga" firstAttribute="top" secondItem="jPl-Vg-g3C" secondAttribute="bottom" constant="40" id="zXK-Mn-zfv"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="mCallOrAccept" destination="koH-BL-KZA" id="Ryl-wC-8vS"/>
+                        <outlet property="monitorBtn" destination="LcR-MR-y9c" id="quQ-29-c3m"/>
+                        <outlet property="speakerBtn" destination="vJi-oZ-LSc" id="gAu-k3-y1u"/>
+                        <outlet property="uIDTextField" destination="Vfn-FR-1Ub" id="En1-hG-ZxX"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="131.8840579710145" y="103.79464285714285"/>
+        </scene>
+        <!--View Controller-->
+        <scene sceneID="dmc-0p-Aa4">
+            <objects>
+                <viewController id="Otu-wo-FUs" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="dsY-RY-Zva"/>
+                        <viewControllerLayoutGuide type="bottom" id="wHq-fg-3bZ"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="5aY-oG-FVH">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dnn-Zd-Y1M">
+                                <rect key="frame" x="192" y="246" width="31" height="30"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <state key="normal" title="璺宠浆"/>
+                                <connections>
+                                    <segue destination="BYZ-38-t0r" kind="modal" id="Ipt-A0-EwF"/>
+                                </connections>
+                            </button>
+                        </subviews>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="aje-Ad-KL1" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-620.28985507246387" y="111.83035714285714"/>
+        </scene>
+    </scenes>
+</document>
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ESVideo.h b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ESVideo.h
new file mode 100644
index 0000000..5d89628
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ESVideo.h
@@ -0,0 +1,27 @@
+//
+//  ESVideo.h
+//  ESVideoPhoneSDKDemo
+//
+//  Created by 闄堝槈涔� on 2020/6/28.
+//  Copyright 漏 2020 eTouchSky. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <ESVideoPhoneSDk/ESVideoPhone.h>
+#import <ESVideoPhoneSDk/ESError.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ESVideo : NSObject
+
+@property (nonatomic,strong) ESVideoPhone          *es;
+@property (nonatomic, copy) ImageCallback snapImageCallback;
+ 
+
++ (instancetype)shareInstance;
++ (void)haltSharedInstance;
+
+-(void)initSDK;
+
+@end
+NS_ASSUME_NONNULL_END
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ESVideo.m b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ESVideo.m
new file mode 100644
index 0000000..79c0429
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ESVideo.m
@@ -0,0 +1,75 @@
+//
+//  ESVideo.m
+//  ESVideoPhoneSDKDemo
+//
+//  Created by 闄堝槈涔� on 2020/6/28.
+//  Copyright 漏 2020 eTouchSky. All rights reserved.
+//
+
+#import "ESVideo.h"
+
+
+#define WEAKSELF_AT __weak __typeof(&*self)weakSelf_AT = self;
+@interface ESVideo()
+
+
+
+
+@end
+
+static ESVideo *_sharedInstance = nil;
+static dispatch_once_t _onceToken;
+
+@implementation ESVideo{
+    ImageCallback mSnapImageCallback;
+}
+
++ (instancetype)shareInstance {
+    dispatch_once(&_onceToken, ^{
+        _sharedInstance = [[ESVideo alloc] init];
+        if(_sharedInstance) {
+            
+        }
+        NSLog(@"ESVideo ShareInstance Did Create %p",_sharedInstance);
+    });
+    //NSLog(@"Access ESVideo %p",sharedInstance);
+    return _sharedInstance;
+}
+
++ (void)haltSharedInstance {
+    if (_sharedInstance) {
+        _sharedInstance = nil;
+        _onceToken = 0;
+    }
+}
+
+
+- (instancetype)init {
+    self = [super init];
+    
+    WEAKSELF_AT
+    mSnapImageCallback = ^(UIImage *image){
+        if(weakSelf_AT.snapImageCallback){
+            weakSelf_AT.snapImageCallback(image);
+        }
+    };
+    //闂ㄥ彛鏈轰細鏈夎棰戠殑闀垮楂橈紝鏄浐瀹氱殑锛堟殏鏃惰繕涓嶇‘瀹氾級
+    _es = [[ESVideoPhone alloc]initESVideoPhoneWithFrame: CGRectMake(10, 100, [[UIScreen mainScreen] bounds].size.width-20, ([[UIScreen mainScreen] bounds].size.width-20)/4*3) delegate:nil imagecallBack:mSnapImageCallback];
+    
+    
+    return self;
+}
+
+- (void)dealloc {
+    NSLog(@"ESVideo SharedInstance Did Halted ");
+}
+
+-(void)initSDK{
+    
+     NSLog(@"ESVideo initSDK");
+    
+}
+
+
+@end
+
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Info.plist b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Info.plist
new file mode 100644
index 0000000..fd4e93e
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Info.plist
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>$(DEVELOPMENT_LANGUAGE)</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>$(PRODUCT_NAME)</string>
+	<key>CFBundlePackageType</key>
+	<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
+	<key>CFBundleShortVersionString</key>
+	<string>$(MARKETING_VERSION)</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+	<key>LSRequiresIPhoneOS</key>
+	<true/>
+	<key>NSAppTransportSecurity</key>
+	<dict>
+		<key>NSAllowsArbitraryLoads</key>
+		<true/>
+	</dict>
+	<key>NSCameraUsageDescription</key>
+	<string>"闇�瑕佷娇鐢ㄧ浉鏈�"</string>
+	<key>NSMicrophoneUsageDescription</key>
+	<string>"闇�瑕佷娇鐢ㄩ害鍏嬮"</string>
+	<key>NSPhotoLibraryUsageDescription</key>
+	<string>"闇�瑕佷娇鐢ㄧ浉鍐�"</string>
+	<key>UIApplicationSceneManifest</key>
+	<dict>
+		<key>UIApplicationSupportsMultipleScenes</key>
+		<false/>
+		<key>UISceneConfigurations</key>
+		<dict>
+			<key>UIWindowSceneSessionRoleApplication</key>
+			<array>
+				<dict>
+					<key>UISceneConfigurationName</key>
+					<string>Default Configuration</string>
+					<key>UISceneDelegateClassName</key>
+					<string>SceneDelegate</string>
+					<key>UISceneStoryboardFile</key>
+					<string>Main</string>
+				</dict>
+			</array>
+		</dict>
+	</dict>
+	<key>UILaunchStoryboardName</key>
+	<string>Main</string>
+	<key>UIMainStoryboardFile</key>
+	<string>Main</string>
+	<key>UIRequiredDeviceCapabilities</key>
+	<array>
+		<string>armv7</string>
+	</array>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+</dict>
+</plist>
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/SceneDelegate.h b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/SceneDelegate.h
new file mode 100644
index 0000000..41b4557
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/SceneDelegate.h
@@ -0,0 +1,16 @@
+//
+//  SceneDelegate.h
+//  ESVideoPhoneSDKDemo
+//
+//  Created by eTouchSky on 2019/9/27.
+//  Copyright 漏 2019 eTouchSky. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface SceneDelegate : UIResponder <UIWindowSceneDelegate>
+
+@property (strong, nonatomic) UIWindow * window;
+
+@end
+
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/SceneDelegate.m b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/SceneDelegate.m
new file mode 100644
index 0000000..d6698dd
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/SceneDelegate.m
@@ -0,0 +1,50 @@
+#import "SceneDelegate.h"
+
+@interface SceneDelegate ()
+
+@end
+
+@implementation SceneDelegate
+
+
+- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
+    // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
+    // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
+    // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
+}
+
+
+- (void)sceneDidDisconnect:(UIScene *)scene {
+    // Called as the scene is being released by the system.
+    // This occurs shortly after the scene enters the background, or when its session is discarded.
+    // Release any resources associated with this scene that can be re-created the next time the scene connects.
+    // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead).
+}
+
+
+- (void)sceneDidBecomeActive:(UIScene *)scene {
+    // Called when the scene has moved from an inactive state to an active state.
+    // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.
+}
+
+
+- (void)sceneWillResignActive:(UIScene *)scene {
+    // Called when the scene will move from an active state to an inactive state.
+    // This may occur due to temporary interruptions (ex. an incoming phone call).
+}
+
+
+- (void)sceneWillEnterForeground:(UIScene *)scene {
+    // Called as the scene transitions from the background to the foreground.
+    // Use this method to undo the changes made on entering the background.
+}
+
+
+- (void)sceneDidEnterBackground:(UIScene *)scene {
+    // Called as the scene transitions from the foreground to the background.
+    // Use this method to save data, release shared resources, and store enough scene-specific state information
+    // to restore the scene back to its current state.
+}
+
+
+@end
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ViewController.h b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ViewController.h
new file mode 100755
index 0000000..15a25d4
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ViewController.h
@@ -0,0 +1,23 @@
+//
+//  ViewController.h
+//  ESVideoPhoneSDKDemo
+//
+//  Created by eTouchSky on 2019/9/27.
+//  Copyright 漏 2019 eTouchSky. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface ViewController : UIViewController
+
+
+@end
+
+/*
+[2019.12.12 15:56:16.217#40455][SendCustomData](/Users/maygion/corelooper/projects.oem/libvideophone/src/phone/phoneconnect.cpp:942)
+###Warning[2019.12.12 15:56:16.217#40455][recv custom data=[{"command":"open","room_id":1234,"devType":7,"status":1}]](/Users/maygion/corelooper/projects.oem/libvideophone/src/phone/phoneconnect.cpp:1121)
+2019-12-12 15:56:16.218004+0800 ESVideoPhoneSDKDemo[1724:882637] -[ESVideoPhone onPhoneEvent_UI:],msg=event=EVT_RECV_CUSTOM_DATA
+
+data=eyJjb21tYW5kIjoib3BlbiIsInJvb21faWQiOjEyMzQsImRldlR5cGUiOjcsInN0YXR1cyI6MX0=
+2019-12-12 15:56:16.218201+0800 ESVideoPhoneSDKDemo[1724:882637] 浜嬩欢EVT_RECV_CUSTOM_DATA
+*/
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ViewController.mm b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ViewController.mm
new file mode 100644
index 0000000..eadb201
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ViewController.mm
@@ -0,0 +1,580 @@
+//
+//  ViewController.m
+//  ESVideoPhoneSDKDemo
+//
+//  Created by eTouchSky on 2019/9/27.
+//  Copyright 漏 2019 eTouchSky. All rights reserved.
+//
+
+/*
+ 鈿狅笍
+ 1銆佺紪璇戣缃�,
+ BuildSettings璁剧疆 锛�
+ Enable Bitcode 璁剧疆涓篘O锛�
+ Other Linker Flags 璁剧疆涓�-Wl,-all_load銆�
+ 2銆乫ramework
+ 娣诲姞绯荤粺搴� libiconv2.4.0.tbd,libz.tbd,libbz2.tbd.
+ 3銆乨emo浠呭仛鍙傝�冿紝鍏蜂綋璇锋牴鎹瓵pp鐨勬儏鍐甸�傛椂璋冪敤
+ */
+#import <AVFoundation/AVFoundation.h>
+#import "ViewController.h"
+#import <ESVideoPhoneSDk/ESVideoPhone.h>
+#import <ESVideoPhoneSDk/ESError.h>
+#import "AudioSessionHelper.h"
+#import "ESVideo.h"
+
+@interface ViewController ()<ESVideoPhoneDelegate,UITextFieldDelegate>
+
+@property (nonatomic,strong) AudioSessionHelper    *sessionHelper;
+@property (nonatomic,strong) ESVideoPhone          *es;
+@property (nonatomic,assign) BOOL                  playing;
+@property (nonatomic,assign) BOOL                  isInterrupt;
+@property (nonatomic,assign) BOOL                  isSpeaking;
+@property (nonatomic,strong) UIImage               *snapImage; //鎴浘
+@property (weak, nonatomic) IBOutlet UIButton *speakerBtn;
+@property (weak, nonatomic) IBOutlet UITextField *uIDTextField;
+@property (weak, nonatomic) IBOutlet UIButton *mCallOrAccept;
+@property (weak, nonatomic) IBOutlet UIButton *monitorBtn;
+
+@end
+
+@implementation ViewController
+{
+    BOOL isAccessAudio;
+    BOOL isAccessVideo;
+    BOOL isBackGround;
+    BOOL iSVideoNotDetermined;
+    BOOL iSAudioNotDetermined;
+    
+    
+}
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    [ESVideo.shareInstance initSDK];
+    //鍒濆鍖栦腑鏂紝杩涘叆鍚庡彴鐨則ag
+    _playing = NO;
+    _isSpeaking = NO;
+    self.isInterrupt = NO;
+    _es = ESVideo.shareInstance.es;
+    _es.isInterrupt = NO;
+    isBackGround = NO;
+    [_speakerBtn setTitle:@"鍚瓛" forState:UIControlStateNormal];
+//    _mCallOrAccept.enabled = NO;
+//    _monitorBtn.enabled = NO;
+//    _uIDTextField.text = @"JJY000016YWECG";//@"JJY000007FSEYX" 榛樿闂ㄥ彛鏈虹殑ID
+//       _uIDTextField.text = @"JJY000017XLUXX";//@"JJY000007FSEYX" 榛樿闂ㄥ彛鏈虹殑ID
+    _uIDTextField.text = @"JJY000019VPLLF";//@"JJY000019VPLLF" 榛樿闂ㄥ彛鏈虹殑ID
+    
+//           _uIDTextField.text = @"JJY000016YWECG";//@"JJY000016YWECG" 榛樿闂ㄥ彛鏈虹殑ID
+    
+    _uIDTextField.delegate = self;    //鈿狅笍杩欓噷蹇呴』瑕佹鏌ユ槸鍚﹀凡缁忔巿鏉冨惁鍒欎細澶辫触锛屽垵濮嬪寲瑙嗛闊抽閲囬泦
+    [self requestAccessForAVMediaType:AVMediaTypeAudio];
+     if (isAccessAudio) {
+        ImageCallback snapImageCallback = ^(UIImage *image){
+             //block鏄湪鍒嗙嚎绋嬩腑璋冪敤鐨勶紝杩欓噷瑕佹斁鍒颁富绾跨▼
+             dispatch_async(dispatch_get_main_queue(), ^{
+                 self->_snapImage = image;
+                 [self saveImage:image];
+             });
+         };
+         //闂ㄥ彛鏈轰細鏈夎棰戠殑闀垮楂橈紝鏄浐瀹氱殑锛堟殏鏃惰繕涓嶇‘瀹氾級
+//         _es = [[ESVideoPhone alloc]initESVideoPhoneWithFrame:CGRectMake(10, 100, self.view.frame.size.width-20, (self.view.frame.size.width-20)/4*3) delegate:self imagecallBack:snapImageCallback];
+         if (_es) {
+             //鍒ゆ柇瑙嗛娓叉煋鏄惁鍒濆鍖栨垚鍔燂紝濡傛灉澶辫触浼氳蛋ESVideoPhoneDelegate鏂规硶
+             if (_es.showView) {
+//                 _es.showView.frame = CGRectMake(10, 100, self.view.frame.size.width-20, (self.view.frame.size.width-20)/4*3);
+                 ESVideo.shareInstance.snapImageCallback = snapImageCallback;
+                 _es.showView.backgroundColor = [UIColor greenColor];
+                 _es.delegate = self;
+                 [self.view addSubview:_es.showView];
+             }else{
+                 NSLog(@"_es.showView null");
+                 
+             }
+         }else{
+             NSLog(@"ESVideoPhone 鍒濆鍖栧け璐�");
+             return;
+         }
+         // 鍒濆鍖朅udio閲囬泦Unit
+         if(![_es initAudioCaptureSession]){
+             return;
+         }
+     }else{
+         //闊抽娌℃湁鏉冮檺寤鸿涓嶈鍙戣捣閫氳瘽
+         return;
+     }
+    //鍒濆鍖栬棰戦噰闆咰apture
+    [self requestAccessForAVMediaType:AVMediaTypeVideo];
+    if (isAccessVideo) {
+        if(![_es initVideoCaptureSession]){
+            NSLog(@"VideoCaptureSession 鍒濆鍖栧け璐�");
+        }
+    }
+    //鍒濆鍖朅udioSession
+    _sessionHelper = [[AudioSessionHelper alloc]init];
+    [_sessionHelper setAudioSession];
+    //娣诲姞杩涘叆鍚庡彴锛屼腑鏂瓑閫氱煡
+    [self addObservers];
+}
+
+-(void)viewDidAppear:(BOOL)animated{
+    //杩欎釜鏂规硶璇锋牴鎹瓵pp鐨勫叿浣撴儏鍐佃皟鐢�
+    //鍦╲iewDidLoad涓� 璋冪敤requestAccessForAVMediaType: 鏄负浜嗚妭绾﹀垵濮嬪寲鐨勬椂闂�
+    //鍦╲iewDidAppear涓皟鐢╮equestAccessForAVMediaType: 鏄负浜嗗脊鍑烘彁绀烘墦寮�鏉冮檺鐨凙lert
+//娴嬭瘯鐨勬椂鍊欏彂鐜板涓嬫儏鍐碉細濡傛灉鍙妸鎺堟潈鏂规硶鏀惧埌ViewDidAppear鏂规硶涓鐞嗭紝濡傛灉娌℃湁鎺堟潈鍦ㄥ垵濮嬪寲閲囬泦鍣ㄦ椂浼氬け璐ャ�傚悓鏍稟lertView浼氬洜涓篤iew娌℃湁didLoad鑰屽鑷磒resent涓嶅嚭鏉�
+    if (!isAccessVideo || !isAccessAudio) {
+        [self requestAccessForAVMedia];
+    }
+}
+-(void)setIsInterrupt:(BOOL)isInterrupt{
+    if (_es) {
+        _es.isInterrupt = isInterrupt;
+    }
+}
+-(void)viewWillDisappear:(BOOL)animated{
+    [super viewWillDisappear:animated];
+    //闃叉鐢ㄦ埛涓嶆寜鎸傛柇锛屾垨鑰呬笉绛夋敹鍒板鏂圭殑鎸傛柇锛岀偣鍑昏繑鍥炴寜閽��
+    [_es onStopCapture];
+    [_es stopTalk];
+}
+-(void)dealloc{
+    _es.delegate = nil;
+//    _es.showView
+      NSLog(@"==============dealloc1");
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
+      NSLog(@"==============dealloc2");
+//    [_es freeSubClass];
+      NSLog(@"==============dealloc3");
+}
+
+#pragma mark ButtonAction
+- (IBAction)back:(id)sender {
+    [self dismissViewControllerAnimated:YES completion:NULL];
+       
+}
+//鍙嶅懠锛氭ā鎷熼棬鍙f満鍛煎彨鎵嬫満锛岄渶瑕侀棬鍙f満鍏堢偣鍛煎彨锛岀瓑1-2S鍚庯紝鎵嬫満鐐瑰弽鍛笺��
+//params鏍锋湰 address=192.168.1.3:8554,tag=mobile://123,
+- (IBAction)onReverseCall:(id)sender {
+    NSString *title = [sender titleForState:UIControlStateNormal];
+    if ([title isEqualToString:@"鍙嶅懠"]) {
+       NSString *normalStr = _uIDTextField.text;
+       NSString *param = [NSString stringWithFormat:@"address=%@,tag=mobile://123,",normalStr];
+       NSLog(@"============鐐瑰弽鍛�%@", param);
+       [_es onReverseCall:param];
+    }else if([title isEqualToString:@"鎺ュ惉"]){
+        [_es onAccept];
+    }
+  
+}
+- (IBAction)onHangup:(id)sender {
+    [_es onHangup];
+}
+- (IBAction)onMonitor:(id)sender {
+    [_es onMonitor:_uIDTextField.text];
+}
+- (IBAction)speaker:(UIButton *)sender {
+    [_es stopTalk];
+      
+      NSString *result = nil;
+      //鍚瓛鐘舵�� 鎻掕�冲鍚庢嫈鎺夊悗鎭㈠鍒伴粯璁よ缃�
+      if (sender == nil) {
+          result = [_sessionHelper speaker:NO];
+      }else{
+          if(!_isSpeaking){
+              result = [_sessionHelper speaker:YES];
+              _isSpeaking = YES;
+          }else{
+              result = [_sessionHelper speaker:NO];
+              _isSpeaking = NO;
+          }
+      }
+      if (result) {
+          [sender setTitle:result forState:UIControlStateNormal];
+          [_es startTalk];
+      }
+      
+}
+
+- (IBAction)openDoor:(id)sender {
+    [_es openTheDoorWithRoomid: 1234];
+}
+- (IBAction)onSnap:(id)sender {
+    [_es onSnap];
+}
+//鈿狅笍 鏂囨湰杈撳叆妗�
+    
+#pragma mark ESVideoPhoneDelegate
+//瑙嗛閫氳瘽鐨勭姸鎬佷唬鐞嗕簨浠讹紝phoneEvent涓鸿繑鍥炵殑娑堟伅閲岄潰鍖呭惈event鐘舵�佷笌涓巈vent鐩稿叧鐨勬暟鎹�
+-(void)getPhoneEvent_UI:(NSString *)phoneEvent{
+    NSLog(@"浜嬩欢%@", phoneEvent);
+    NSArray *strArray = [phoneEvent componentsSeparatedByString:@"\r\n"];
+    NSArray *eventArray = [strArray.firstObject componentsSeparatedByString:@"="];
+    NSString *phoneEventStr = eventArray.lastObject;
+    
+    if([phoneEventStr isEqual:@"EVT_Ringing"]){
+           [_mCallOrAccept setTitle:@"鎺ュ惉" forState:UIControlStateNormal];
+       }else if([phoneEventStr isEqual:@"EVT_StartStream"]){
+
+       } else if([phoneEventStr isEqual:@"EVT_StopStream"]){
+           [_mCallOrAccept setTitle:@"鍙嶅懠" forState:UIControlStateNormal];
+       }else if([phoneEventStr isEqual:@"EVT_Connected"]){
+           [_mCallOrAccept setTitle:@"閫氳瘽涓�..." forState:UIControlStateNormal];
+       }else if([phoneEventStr  isEqual:@"EVT_HangUp"]){
+           [_mCallOrAccept setTitle:@"鍙嶅懠" forState:UIControlStateNormal];
+       }else if([phoneEventStr  isEqual:@"EVT_P2POnlineStatusChanged"]){
+           //EVT_P2PStarted(p2p鍒濆鍖朞K锛屽彲浠ヨ繛鎺�),EVT_P2POnlineStatusChangedonline=1
+           //p2p鍒濆鍖栨垚鍔�,鎵嬫満绔洰鍓嶆病鏈夎繖涓洖璋冧簡
+          //_mCallOrAccept.enabled = YES;
+          //_monitorBtn.enabled = YES;
+       }else if([phoneEventStr  isEqual:@"EVT_RECV_CUSTOM_DATA"]){
+           //寮�闂ㄧ殑缁撴灉浠庤繖閲岃繑鍥�
+           NSString *baseStr = [strArray[1] substringFromIndex:5];
+           NSData *data = [[NSData alloc]initWithBase64EncodedString:baseStr options:NSDataBase64DecodingIgnoreUnknownCharacters];
+           NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
+           NSInteger status = [[dic valueForKey:@"status"]integerValue];
+             if(status && status == 1){
+                 NSLog(@"寮�闂ㄦ垚鍔�");
+             }else{
+                 NSLog(@"寮�闂ㄥけ璐�");
+             }
+       }
+}
+
+-(void)getAErrorForESVideoPhone:(NSString *)errorStr type:(NSUInteger)errortype{
+    NSLog(@"閿欒%@", errorStr);
+    //娌℃湁鎺堟潈
+    if (errortype == LMPVideoCaptureErrorNotAuthorized) {
+        NSLog(@"閿欒%@", errorStr);
+    }
+}
+#pragma mark AudioSession涓嶯otifications澶勭悊
+
+- (void) addObservers
+{
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name: UIKeyboardWillChangeFrameNotification  object: nil];
+    
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sessionRuntimeError:) name:AVCaptureSessionRuntimeErrorNotification object:nil];
+    
+    //isAccessVideo锛屽鏋淎VCaptureSession娌℃湁new鍑烘潵涓嶄細鏀跺埌閫氱煡
+    if (isAccessVideo) {
+        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sessionWasInterrupted:) name:AVCaptureSessionWasInterruptedNotification object:nil];
+        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sessionInterruptionEnded:) name:AVCaptureSessionInterruptionEndedNotification object:nil];
+    }else{
+        //object:涓簄il 鍙兘涓嶄細瑙﹀彂閫氱煡
+        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleInterruption:)
+            name:AVAudioSessionInterruptionNotification object:[AVAudioSession
+            sharedInstance]];
+    }
+
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(audioRouteChangeListenerCallback:)   name:AVAudioSessionRouteChangeNotification object:nil];
+     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willEnterForeground:) name:UIApplicationDidBecomeActiveNotification object:nil];
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willEnterBackground:) name:UIApplicationDidEnterBackgroundNotification object:nil];
+}
+
+- (void) sessionRuntimeError:(NSNotification*)notification
+{
+    NSError* error = notification.userInfo[AVCaptureSessionErrorKey];
+    NSLog(@"Capture session runtime error: %@", error);
+    
+    // If media services were reset, and the last start succeeded, restart the session.
+    if (error.code == AVErrorMediaServicesWereReset) {
+        [_es onStopCapture];
+        [_es startTalk];
+    }
+}
+
+- (void)handleInterruption:(NSNotification *)notification
+{
+    NSUInteger interruptionType = [[[notification userInfo]
+                                                        objectForKey:AVAudioSessionInterruptionTypeKey] unsignedIntegerValue];
+    
+    if (AVAudioSessionInterruptionTypeBegan == interruptionType)
+    {
+      if (isBackGround) {
+          return;
+      }
+        [_es stopTalk];
+    }
+    else if (AVAudioSessionInterruptionTypeEnded == interruptionType)
+    {
+      if (self.isInterrupt == NO) {
+          return;
+      }else{
+          //鐩存帴鍦ㄨ繘鍏ュ墠鍙伴偅涓�氱煡閲岄潰瀹炵幇锛屽疄闄呬笂杩涘叆鍓嶅彴鐨勬柟娉曚細鍦ㄨ繖涓柟娉曞墠闈㈣皟鐢紝鏁堟灉鏇村ソ
+          [self InterruptionEndedAVAudioSessionSetActiveYES];
+      }
+    }
+}
+
+//AVAudioPlayer 绫诲拰 AVAudioRecorder 绫伙紝褰撳彂鐢熶腑鏂椂锛岀郴缁熶細鑷姩鏆傚仠鎾斁鎴栧綍鍒�
+- (void) sessionWasInterrupted:(NSNotification*)notification
+{
+    if (_playing == YES) {
+        self.isInterrupt = YES;
+       //AVCaptureSessionInterruptionReason
+        if (@available(iOS 9.0, *)) {
+            NSInteger reason = [notification.userInfo[AVCaptureSessionInterruptionReasonKey] integerValue]; //鐢佃瘽涓柇鏄�1
+            NSLog(@"Capture session was interrupted with reason %ld", (long)reason);
+            
+            //闊抽纭欢鏆傛椂涓嶅彲鐢ㄨ�岄�犳垚鐨勪腑鏂紝渚嬪锛岀數璇濇垨璀︽姤銆�
+            if (reason == AVCaptureSessionInterruptionReasonAudioDeviceInUseByAnotherClient ||
+                reason == AVCaptureSessionInterruptionReasonVideoDeviceInUseByAnotherClient) {
+                NSLog(@"AVCaptureSessionInterruptionReasonVideoDeviceInUseByAnotherClient");
+                
+                //VAudioPlayer 绫诲拰 AVAudioRecorder 绫伙紝褰撳彂鐢熶腑鏂椂锛岀郴缁熶細鑷姩鏆傚仠鎾斁鎴栧綍鍒�
+                //Audio Queue Services, I/O audio unit
+                [_es onStopCapture];
+                [_es stopTalk];
+                /*
+                 NSError *error = nil;
+                 [[AVAudioSession sharedInstance] setActive:NO error:&error];
+                 if (error) {
+                 NSLog(@"sessionWasInterruptedSetActiveNO error:%@", error);
+                 }
+                 */
+            }else if (reason == AVCaptureSessionInterruptionReasonVideoDeviceNotAvailableInBackground){
+                NSLog(@"AVCaptureSessionInterruptionReasonVideoDeviceNotAvailableInBackground");
+                //濡傛灉鏄數璇濅腑鏂紝涓嶄細璧拌繘鍏ュ悗鍙扮殑閫氱煡锛岃繘鍏ュ悗鍙板啀鍒囨崲鍒板墠鍙拌繖閲屾槸涓嶇敤澶勭悊鐨�
+                if (isBackGround) {
+                    return;
+                }
+                [_es onStopCapture];
+                [_es stopTalk];
+            }
+            //澶氫釜搴旂敤绋嬪簭璧勬簮浜夌敤璐ㄩ噺涓嬮檷銆傚彧鏈夊綋搴旂敤绋嬪簭鍗犳嵁鍏ㄥ睆鏃讹紝浼氳瘽鎵嶈兘杩愯銆�
+            else if (reason == AVCaptureSessionInterruptionReasonVideoDeviceNotAvailableWithMultipleForegroundApps) {
+                NSLog(@"AVCaptureSessionInterruptionReasonVideoDeviceNotAvailableWithMultipleForegroundApps");
+                // Fade-in a label to inform the user that the camera is unavailable.
+            }else if (@available(iOS 11.1, *)) {
+                if (reason == AVCaptureSessionInterruptionReasonVideoDeviceNotAvailableDueToSystemPressure){
+                    NSLog(@"AVCaptureSessionInterruptionReasonVideoDeviceNotAvailableDueToSystemPressure");
+                }
+            } else {
+                // Fallback on earlier versions
+            }
+        } else {
+            if (isBackGround) {
+                return;
+            }
+            [_es onStopCapture];
+            [_es stopTalk];
+        }
+    }
+}
+
+//杩欎釜閫氱煡鍙兘浼氳幏鍙栦笉鍒帮紝
+- (void) sessionInterruptionEnded:(NSNotification*)notification
+{
+//    NSInteger reason = [notification.userInfo[AVCaptureSessionInterruptionReasonKey] integerValue];
+    NSLog(@"Capture session interruption ended");
+    if (self.isInterrupt == NO) {
+        return;
+    }else{
+        //鐩存帴鍦ㄨ繘鍏ュ墠鍙伴偅涓�氱煡閲岄潰瀹炵幇锛屽疄闄呬笂杩涘叆鍓嶅彴鐨勬柟娉曚細鍦ㄨ繖涓柟娉曞墠闈㈣皟鐢紝鏁堟灉鏇村ソ
+        [self InterruptionEndedAVAudioSessionSetActiveYES];
+    }
+    
+}
+
+-(void)InterruptionEndedAVAudioSessionSetActiveYES{
+    if (isBackGround) {
+        return;
+    }
+    if (self.isInterrupt == YES) {
+        [_es onStartCapture];
+        [_es startTalk];
+        self.isInterrupt = NO;
+    }
+}
+
+
+
+- (void)audioRouteChangeListenerCallback:(NSNotification*)notification
+{
+    
+    NSDictionary *interuptionDict = notification.userInfo;
+    NSInteger routeChangeReason = [[interuptionDict valueForKey:AVAudioSessionRouteChangeReasonKey] integerValue];
+    switch (routeChangeReason) {
+        case AVAudioSessionRouteChangeReasonNewDeviceAvailable:
+           //NSLog(@"AVAudioSessionRouteChangeReasonNewDeviceAvailable");
+            //鍏嶆彁鐘舵�佷笅鑰虫満鎻掑叆娌℃湁閲囬泦锛屽悓鎰忓垏鎹㈠埌榛樿鐘舵��
+            NSLog(@"鑰虫満鎻掑叆");
+            [self speaker:nil];
+            break;
+        case AVAudioSessionRouteChangeReasonOldDeviceUnavailable:
+            //NSLog(@"AVAudioSessionRouteChangeReasonOldDeviceUnavailable");
+            NSLog(@"鑰虫満鎷斿嚭");
+            if([[_speakerBtn titleForState:UIControlStateNormal] isEqualToString:@"鍏嶆彁"]){
+                 [self speaker:nil];
+            }else{
+                [self speaker:_speakerBtn];
+            }
+            
+            break;
+        case AVAudioSessionRouteChangeReasonCategoryChange:
+            // called at start - also when other audio wants to play
+            //NSLog(@"AVAudioSessionRouteChangeReasonCategoryChange");
+            break;
+    }
+}
+
+/*
+ 闇�瑕佹敞鎰忕殑鏄紝鏈変竴涓腑鏂紑濮嬫秷鎭笉涓�瀹氫細鏈変竴涓腑鏂粨鏉熸秷鎭紝杩欏氨鎰忓懗鐫�涓柇缁撴潫鐨勫洖璋冮噷鐨勫鐞嗛�昏緫鍙兘浼氭病鏈夎鎵ц鍒般��
+ 鎵�浠ラ渶瑕佸叧娉ㄥ綋鍒囧埌鍓嶅彴杩愯鐘舵�佹椂锛屾槸涓嶆槸闇�瑕侀噸鏂版縺娲讳綘鐨� Audio Session銆�
+ */
+- (void)willEnterForeground:(NSNotification*)notification{
+     NSLog(@"willEnterForeground");
+    //鍒濇鍚姩浼氳蛋杩欎釜閫氱煡(鏍归〉闈�)锛岃繖鏃跺�欐槸娌℃湁杩涘叆鍚庡彴鐨�
+    if (isBackGround) {
+        return;
+    }
+    
+    [self InterruptionEndedAVAudioSessionSetActiveYES];
+
+    // 杩欓噷鏄�冭檻鍒扮敤鎴锋病鏈夋巿鏉冿紝涔嬪悗閫氳繃AlertAction璺宠浆鍒拌缃〉闈㈡巿鏉冨悗鍐嶅洖鍒癆PP鏃跺仛鐨勯噸鏂版娴�
+    //璺宠浆鍒拌缃〉闈紝鎺堟潈鍚庤繑鍥為〉闈紝缁х画鍒濆鍖栭噰闆嗗櫒
+    if (isAccessAudio && isAccessVideo) {
+        return;
+    }
+    if (isAccessVideo && !isAccessAudio) {
+        [self requestAccessForAVMediaType:AVMediaTypeAudio];
+        if (isAccessAudio) {
+            [_es initAudioCaptureSession];
+        }
+    }else if (!isAccessVideo && isAccessAudio){
+        [self requestAccessForAVMediaType:AVMediaTypeVideo];
+        if (isAccessVideo) {
+            [_es initVideoCaptureSession];
+        }
+       
+    }else if (!isAccessVideo && !isAccessAudio){
+        [self requestAccessForAVMediaType:AVMediaTypeAudio];
+        [self requestAccessForAVMediaType:AVMediaTypeVideo];
+        if (isAccessAudio) {
+            [_es initAudioCaptureSession];
+        }
+        if (isAccessVideo) {
+            [_es initVideoCaptureSession];
+        }
+    }
+}
+- (void)willEnterBackground:(NSNotification *)notification {
+    isBackGround = YES;
+}
+
+//鎺堟潈Alert
+-(void)requestAccessForAVMedia{
+    if (!isAccessAudio) {
+        [self requestAccessForAVMediaType:AVMediaTypeAudio];
+    }
+    if (!isAccessVideo) {
+         [self requestAccessForAVMediaType:AVMediaTypeVideo];
+    }
+    if (!iSAudioNotDetermined && iSVideoNotDetermined){
+        [self creatAlertViewWith:@"鎺堟潈璇锋眰" message:@"楹﹀厠椋庢病鏈夋巿鏉�,璇峰湪璁剧疆涓紑鍚潈闄�,鍚﹀垯灏嗗奖鍝嶉�氳鍔熻兘銆�" cancel:@"纭畾"];
+    }else if(iSAudioNotDetermined && !iSVideoNotDetermined){
+        [self creatAlertViewWith:@"鎺堟潈璇锋眰" message:@"鐩告満娌℃湁鎺堟潈,璇峰湪璁剧疆涓紑鍚潈闄�,鍚﹀垯灏嗗奖鍝嶉�氳鍔熻兘銆�" cancel:@"纭畾"];
+    }else if(!iSAudioNotDetermined && !iSVideoNotDetermined){
+        [self creatAlertViewWith:@"鎺堟潈璇锋眰" message:@"楹﹀厠椋庝笌鐩告満鎺堟潈,璇峰湪璁剧疆涓紑鍚潈闄�,鍚﹀垯灏嗗奖鍝嶉�氳鍔熻兘銆�" cancel:@"纭畾"];
+    }
+}
+
+-(void)requestAccessForAVMediaType:(AVMediaType)type{
+    if (type == AVMediaTypeVideo) {
+        isAccessVideo = YES;
+        iSVideoNotDetermined = YES;
+    }else{
+        isAccessAudio = YES;
+        iSAudioNotDetermined = YES;
+    }
+    switch ([AVCaptureDevice authorizationStatusForMediaType:type])
+    {
+        case AVAuthorizationStatusAuthorized:
+        {
+            break;
+        }
+        case AVAuthorizationStatusNotDetermined:
+        {
+            dispatch_suspend(dispatch_get_main_queue());
+            [AVCaptureDevice requestAccessForMediaType:type completionHandler:^(BOOL granted) {
+                if (!granted) {
+                    if (type == AVMediaTypeVideo) {
+                        self->isAccessVideo = NO;
+                    }else{
+                        self->isAccessAudio = NO;
+                    }
+                }
+                dispatch_resume(dispatch_get_main_queue());
+            }];
+            break;
+        }
+        default:
+        {
+            if (type == AVMediaTypeVideo) {
+                isAccessVideo = NO;
+                 iSVideoNotDetermined = NO;
+            }else{
+                isAccessAudio = NO;
+                iSAudioNotDetermined = NO;
+            }
+           break;
+        }
+    }
+}
+
+-(void)creatAlertViewWith:(NSString *)title message:(NSString *) msg cancel:(NSString *)cancelMsg{
+    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:msg preferredStyle:UIAlertControllerStyleAlert];
+    [alertController addAction:[UIAlertAction actionWithTitle:cancelMsg style:UIAlertActionStyleCancel handler:nil]];
+    [alertController addAction:[UIAlertAction actionWithTitle:@"璁剧疆" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
+        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
+    }]];
+   [self presentViewController:alertController animated:YES completion:nil];
+}
+
+
+#pragma mark --privita 杈呭姪
+- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
+    [self.view endEditing:YES];
+}
+- (BOOL)textFieldShouldReturn:(UITextField *)textField {
+    if(textField.returnKeyType == UIReturnKeyDone){
+        [textField resignFirstResponder];//閿洏鏀惰捣
+        return NO;
+    }
+    return YES;
+}
+- (void)keyboardWillChangeFrame:(NSNotification *)notification {
+    NSValue *notiValue =notification.userInfo[@"UIKeyboardFrameEndUserInfoKey"];
+     if(notiValue){
+         CGRect rect = [notiValue CGRectValue];
+         [UIView animateWithDuration:0.5 animations:^{
+             
+             if (self.view.frame.origin.y < 0) {
+                 //宸茬粡涓婄Щ鍔ㄤ竴娆′簡锛屽氨涓嶇敤绉诲姩浜�
+                 if (self.view.frame.origin.y == 0){
+                     CGFloat yFloat = self.view.frame.origin.y;
+                     self.view.frame = CGRectMake(self.view.frame.origin.x, yFloat+50, self.view.frame.size.width, self.view.frame.size.height);
+                 }
+             }
+             if (rect.origin.y == [UIScreen mainScreen].bounds.size.height) { //閿洏灏嗚鏀惰捣
+                 self.view.frame = CGRectMake(self.view.frame.origin.x, 0, self.view.frame.size.width, self.view.frame.size.height);
+             }
+         } completion:nil];
+    }
+}
+
+- (void)saveImage:(UIImage *)image {
+    NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
+    
+    
+    NSString *filePath = [[paths objectAtIndex:0]stringByAppendingPathComponent:
+                          [NSString stringWithFormat:@"demo.png"]];  // 淇濆瓨鏂囦欢鐨勫悕绉�
+    
+    BOOL result =[UIImagePNGRepresentation(image)writeToFile:filePath   atomically:YES]; // 淇濆瓨鎴愬姛浼氳繑鍥瀁ES
+    if (result == YES) {
+        NSLog(@"淇濆瓨鎴愬姛");
+    }
+    
+}
+
+@end
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/main.m b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/main.m
new file mode 100644
index 0000000..c4763ae
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/main.m
@@ -0,0 +1,19 @@
+//
+//  main.m
+//  ESVideoPhoneSDKDemo
+//
+//  Created by eTouchSky on 2019/9/27.
+//  Copyright 漏 2019 eTouchSky. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "AppDelegate.h"
+
+int main(int argc, char * argv[]) {
+    NSString * appDelegateClassName;
+    @autoreleasepool {
+        // Setup code that might create autoreleased objects goes here.
+        appDelegateClassName = NSStringFromClass([AppDelegate class]);
+    }
+    return UIApplicationMain(argc, argv, nil, appDelegateClassName);
+}
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoTests/ESVideoPhoneSDKDemoTests.m b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoTests/ESVideoPhoneSDKDemoTests.m
new file mode 100644
index 0000000..97a51c7
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoTests/ESVideoPhoneSDKDemoTests.m
@@ -0,0 +1,37 @@
+//
+//  ESVideoPhoneSDKDemoTests.m
+//  ESVideoPhoneSDKDemoTests
+//
+//  Created by eTouchSky on 2019/9/27.
+//  Copyright 漏 2019 eTouchSky. All rights reserved.
+//
+
+#import <XCTest/XCTest.h>
+
+@interface ESVideoPhoneSDKDemoTests : XCTestCase
+
+@end
+
+@implementation ESVideoPhoneSDKDemoTests
+
+- (void)setUp {
+    // Put setup code here. This method is called before the invocation of each test method in the class.
+}
+
+- (void)tearDown {
+    // Put teardown code here. This method is called after the invocation of each test method in the class.
+}
+
+- (void)testExample {
+    // This is an example of a functional test case.
+    // Use XCTAssert and related functions to verify your tests produce the correct results.
+}
+
+- (void)testPerformanceExample {
+    // This is an example of a performance test case.
+    [self measureBlock:^{
+        // Put the code you want to measure the time of here.
+    }];
+}
+
+@end
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoTests/Info.plist b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoTests/Info.plist
new file mode 100644
index 0000000..64d65ca
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoTests/Info.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>$(DEVELOPMENT_LANGUAGE)</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>$(PRODUCT_NAME)</string>
+	<key>CFBundlePackageType</key>
+	<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+</dict>
+</plist>
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoUITests/ESVideoPhoneSDKDemoUITests.m b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoUITests/ESVideoPhoneSDKDemoUITests.m
new file mode 100644
index 0000000..baa643c
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoUITests/ESVideoPhoneSDKDemoUITests.m
@@ -0,0 +1,48 @@
+//
+//  ESVideoPhoneSDKDemoUITests.m
+//  ESVideoPhoneSDKDemoUITests
+//
+//  Created by eTouchSky on 2019/9/27.
+//  Copyright 漏 2019 eTouchSky. All rights reserved.
+//
+
+#import <XCTest/XCTest.h>
+
+@interface ESVideoPhoneSDKDemoUITests : XCTestCase
+
+@end
+
+@implementation ESVideoPhoneSDKDemoUITests
+
+- (void)setUp {
+    // Put setup code here. This method is called before the invocation of each test method in the class.
+
+    // In UI tests it is usually best to stop immediately when a failure occurs.
+    self.continueAfterFailure = NO;
+
+    // In UI tests it鈥檚 important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
+}
+
+- (void)tearDown {
+    // Put teardown code here. This method is called after the invocation of each test method in the class.
+}
+
+- (void)testExample {
+    // UI tests must launch the application that they test.
+    XCUIApplication *app = [[XCUIApplication alloc] init];
+    [app launch];
+
+    // Use recording to get started writing UI tests.
+    // Use XCTAssert and related functions to verify your tests produce the correct results.
+}
+
+- (void)testLaunchPerformance {
+    if (@available(macOS 10.15, iOS 13.0, tvOS 13.0, *)) {
+        // This measures how long it takes to launch your application.
+        [self measureWithMetrics:@[XCTOSSignpostMetric.applicationLaunchMetric] block:^{
+            [[[XCUIApplication alloc] init] launch];
+        }];
+    }
+}
+
+@end
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoUITests/Info.plist b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoUITests/Info.plist
new file mode 100644
index 0000000..64d65ca
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoUITests/Info.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>$(DEVELOPMENT_LANGUAGE)</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>$(PRODUCT_NAME)</string>
+	<key>CFBundlePackageType</key>
+	<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+</dict>
+</plist>
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/ESVideoPhoneSDk b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/ESVideoPhoneSDk
new file mode 100644
index 0000000..6867847
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/ESVideoPhoneSDk
Binary files differ
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Headers/ESError.h b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Headers/ESError.h
new file mode 100644
index 0000000..1cda4f1
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Headers/ESError.h
@@ -0,0 +1,76 @@
+//
+//  ESError.h
+//  ESVideoPhoneSDk
+//
+//  Created by eTouchSky on 2019/12/14.
+//  Copyright 漏 2019 eTouchSky. All rights reserved.
+//
+//  ESVideoPhone鐨凟SVideoPhoneDelegate鏂规硶鈥�- (void)getAErrorForESVideoPhone:(NSString *)errorStr type:(NSUInteger) errortype鈥� 涓璭rrortype鐨勭被鍨�
+
+
+#import <Foundation/Foundation.h>
+//瑙嗛閲囬泦锛屼細瀵艰嚧闂ㄥ彛鏈虹湅涓嶅埌App鐨勮棰戯紙鐩戞帶鐘舵�佹椂锛岄棬鍙f満鏄湅涓嶅埌App鐨勮棰戠殑锛�
+//App闇�瑕佸鐞� LMPVideoCaptureErrorGetDevice涓嶭MPVideoCaptureErrorNotAuthorized 绫诲瀷鐨勯敊璇�
+typedef NS_ENUM (NSUInteger, LMPVideoCaptureError){
+    LMPVideoCaptureErrorGetDevice                      = 0,//鑾峰彇鎽勫儚澶村け璐�
+    LMPVideoCaptureErrorGetInput                       = 1,//鑾峰彇瑙嗛杈撳叆閿欒,浠巈rror涓幏鍙栧叿浣撲俊鎭�
+    LMPVideoCaptureErrorAddInput                       = 2,//AddInputVideo閿欒
+    LMPVideoCaptureErrorAddOutput                      = 3,//AddOutputVideo閿欒
+    LMPVideoCaptureErrorNotAuthorized                  = 4,//娌℃湁鎺堟潈锛屾巿鏉冨鐞嗙敱App瀹炵幇
+    LMPVideoCaptureErrorSetSessionPreset               = 5,//SetSessionPreset澶辫触
+};
+//openGl瑙嗛娓叉煋锛屼細瀵艰嚧闂ㄥ彛鏈虹湅涓嶅埌App鐨勮棰戯紙鐩戞帶鐘舵�佹椂锛岄棬鍙f満鏄湅涓嶅埌App鐨勮棰戠殑锛�
+typedef NS_ENUM (NSUInteger, LMPOpenglError){
+    LMPOpenglErrorSetCurrentContext                      = 0,//EAGLContext涓婁笅鏂囧垱寤哄け璐�
+    LMPOpenglErrorRenderbuffer                           = 1,//OpenGL attach娓叉煋缂撳啿鍖哄け璐�
+    LMPOpenglErrorGenTextures                            = 2,//OpenGL 绾圭悊鍒涘缓澶辫触
+    LMPOpenglErrorShaderConnection                       = 3,//OpenGL 鐫�鑹插櫒杩炴帴澶辫触
+    LMPOpenglErrorLoadShader                             = 4,//OpenGL 鍔犺浇鐫�鑹插櫒澶辫触
+    LMPOpenglErrorShaderCompilation                      = 5,//OpenGL 鐫�鑹插櫒缂栬瘧澶辫触
+};
+/**瑙嗛瑙g爜锛屼細瀵艰嚧App鐪嬩笉鍒伴棬鍙f満鐨勮棰�
+debug妯″紡涓嬶紝鏂偣鍙兘瀵艰嚧鍑虹幇LMPH264HwDecoderErrorKVTInvalidSessionErr鐨勯敊璇�
+鍓嶅彴鍚庡垏鎹紝鏉ョ數绛夊師鍥犵殑涓柇鍙兘浼氬嚭鐜癓MPH264HwDecoderErrorKVTInvalidSessionErr鐨勯敊璇紙宸茬粡淇锛屾敞鎰忔祴璇曡繃绋嬩腑鏄惁杩樹細鍑虹幇锛�
+*/
+typedef NS_ENUM (NSUInteger, LMPH264HwDecoderError){
+    LMPH264HwDecoderErrorInitH264HardwareDecoder                     = 0,//InitH264HardwareDecoderErr
+    LMPH264HwDecoderErrorKVTVideoDecoderMalfunction                  = 1,//kVTVideoDecoderMalfunctionErr
+    LMPH264HwDecoderErrorKVTInvalidSessionErr                        = 2,//kVTInvalidSessionErr
+    LMPH264HwDecoderErrorKVTVideoDecoderBadDataErr                   = 3,//kVTVideoDecoderBadDataErr
+    LMPH264HwDecoderErrorDecodeOtherErr                              = 4,//纭В鐮佸叾浠栭敊璇�
+    LMPH264HwDecoderErrorCVPixelBufferRefPlantErr                    = 5,//CVPixelBufferRef涓暟鎹负绌�
+    LMPH264HwDecoderErrorCVPixelBufferRefYUVErr                      = 6,//CVPixelBufferRef涓彇鍑篩UV澶辫触
+};
+//瑙嗛缂栫爜锛屼細瀵艰嚧闂ㄥ彛鏈虹湅涓嶅埌App鐨勮棰戯紙鐩戞帶鐘舵�佹椂锛岄棬鍙f満鏄湅涓嶅埌App鐨勮棰戠殑锛�
+typedef NS_ENUM (NSUInteger, LMPH264EncoderError){
+    LMPH264EncoderErrorVTCompressionSessionCreate                    = 0,//VTCompressionSessionCreateErr
+    LMPH264EncoderErrorVideoCompressonOutputCallback                 = 1,//缂栫爜鍥炶皟澶辫触
+};
+//闊抽閲囬泦锛屼細瀵艰嚧涓嶈兘閲囬泦闊抽锛屽鏂瑰惉涓嶅埌App鐨勫0闊筹紙鐩戞帶鐘舵�佹椂锛岄棬鍙f満鏄惉涓嶅埌App鐨勫0闊崇殑锛�
+typedef NS_ENUM (NSUInteger, LMPAudioCaptureError){
+    LMPAudioCaptureErrorGetNew                         = 0,//AudioComponentInstanceNew澶辫触
+    LMPAudioCaptureErrorStreamFormat                   = 1,//kAudioUnitProperty_StreamFormat澶辫触
+    LMPAudioCaptureErrorEnableRecord                   = 2,//鎵撳紑褰曢煶澶辫触
+    LMPAudioCaptureErrorEnablePlay                     = 3,//鍏抽棴鎾斁澶辫触
+    LMPAudioCaptureErrorSetInputCallback               = 4,//AudioUnitSetCallback澶辫触
+    LMPAudioCaptureErrorShouldAllocateBuffer           = 5,//浣跨敤鑷繁鐨勭紦瀛樺け璐�
+    LMPAudioCaptureErrorBypassVoiceProcessing          = 6,//鎵撳紑鍥炲0娑堥櫎鍔熻兘澶辫触
+    LMPAudioCaptureErrorAudioUnitInitialize          = 7,//AudioUnitInitialize澶辫触
+};
+//闊抽鎾斁锛屼細瀵艰嚧涓嶈兘鎾斁闊抽锛屽惉涓嶅埌瀵规柟鐨勫0闊�
+typedef NS_ENUM (NSUInteger, LMPAudioPlayError){
+    LMPAudioPlayErrorGetNew                         = 0,//AudioPlay_AudioComponentInstanceNew澶辫触
+    LMPAudioPlayErrorStreamFormat                   = 1,//AudioPlay_kAudioUnitProperty_StreamFormat澶辫触
+    LMPAudioPlayErrorEnableRecord                   = 2,//AudioPlay_鍏抽棴褰曢煶澶辫触
+    LMPAudioPlayErrorEnablePlay                     = 3,//AudioPlay_鎵撳紑鎾斁澶辫触
+    LMPAudioPlayErrorSetRenderCallback              = 4,//AudioPlay_AudioUnitSetRenderCallback澶辫触
+    LMPAudioPlayErrorShouldAllocateBuffer           = 5,//浣跨敤鑷繁鐨勭紦瀛樺け璐�
+    LMPAudioPlayErrorBypassVoiceProcessing          = 6,//AudioPlay_鎵撳紑鍥炲0娑堥櫎鍔熻兘澶辫触
+    LMPAudioPlayErrorAudioUnitInitialize            = 7,//AudioPlay_AudioUnitInitialize澶辫触
+};
+
+@interface ESError : NSObject
+
+@end
+
+
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h
new file mode 100644
index 0000000..11f1d89
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h
@@ -0,0 +1,83 @@
+
+//  ESVideoPhone.h
+//  VideoPhone
+//
+//  Created by maygion on 2019/3/26.
+//  Copyright 漏 2019 eTouchSky. All rights reserved.
+//  SDK鐗堟湰鍙凤細1.0.0  娴嬭瘯鐗�1
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+typedef void (^ImageCallback)(UIImage *image);
+
+@protocol ESVideoPhoneDelegate <NSObject>
+- (void)getAErrorForESVideoPhone:(NSString *)errorStr type:(NSUInteger) errortype;
+- (void)getPhoneEvent_UI:(NSString*)phoneEvent;
+@end
+
+@interface ESVideoPhone : NSObject
+
+//閿欒淇℃伅
+@property(nonatomic,weak) id<ESVideoPhoneDelegate> delegate;
+////鑾峰彇瑙嗛鎴浘鐨刡lock
+//@property(nonatomic,copy) ImageCallback snapImageCallback;
+//瑙嗛鏄剧ず鐨刅iew 鈿狅笍璇峰仛闈炵┖鍒ゆ柇
+@property(nonatomic,strong,readonly) UIView* showView;
+//涓柇璁剧疆
+@property (nonatomic,assign,readwrite) BOOL isInterrupt;
+
+/**
+* ESVideoPhone 鍒濆鍖栨柟娉�
+*
+* @param frame 鐢熸垚鏄剧ず瑙嗛鐨凜GRect
+* @param delegate ESVideoPhoneDelegate浠g悊
+* @paramimagecallBack 鑾峰彇瑙嗛鎴浘鐨刡lock
+*
+*  @return ESVideoPhone 瀹炰緥,杩斿洖nil琛ㄧず鍒濆鍖栧け璐ャ��
+*/
+- (instancetype)initESVideoPhoneWithFrame:(CGRect)frame delegate: (id<ESVideoPhoneDelegate>)del imagecallBack:(ImageCallback)callBack;
+//鎺堟潈鍚庢墦寮�闊抽閲囬泦锛岃棰戞病鏈夋潈闄愪篃鍙互鍙煶棰戦�氳瘽
+-(BOOL)initAudioCaptureSession;
+//鈿狅笍鎺堟潈鍚庢墦寮�瑙嗛閲囬泦锛岄煶棰戞病鏈夋潈闄愬缓璁笉瑕佸彂璧烽�氳瘽
+-(BOOL)initVideoCaptureSession;
+/**
+* 鐩戞帶
+*
+* @param deviceId 闂ㄥ彛鏈鸿澶嘔D锛岃繖涓弬鏁颁細浠庡悗鍙版媺鍙栵紙涓�鑸槸涓暟缁勫叾涓寘鍚鐢ㄦ埛鏉冮檺鎷ユ湁鐨勬墍鏈夐棬鍙f満锛�
+*/
+- (void)onMonitor:(NSString *)deviceId;
+/**
+* 鎺ュ惉
+* 杩欎釜鏂规硶浼氬湪AppDelegate鐨勯�氱煡鎺ュ彛涓皟鐢紝閲囩敤灏忕背鎺ㄩ��
+* @param deviceId 闂ㄥ彛鏈鸿澶嘔D锛岃繖涓弬鏁颁細浠庨�氱煡涓幏鍙栫敱璁惧ID涓庡崟娆¢�氳瘽tag鎷兼垚锛堝彲鑳戒細鏈夊彉鍔級
+*/
+- (void)onReverseCall:(NSString *)deviceId;
+//鎺ュ惉
+- (void)onAccept;
+//鎸傛柇
+- (void)onHangup;
+//鎵撳紑闊抽閲囬泦涓庨煶棰戞挱鏀�
+-(void)startTalk;
+//鍏抽棴闊抽閲囬泦涓庨煶棰戞挱鏀�
+- (void)stopTalk;
+//鑾峰彇瑙嗛鎴浘
+- (void)onSnap;
+//鎵撳紑瑙嗛閲囬泦
+- (void)onStartCapture;
+//鍏抽棴瑙嗛閲囬泦
+- (void)onStopCapture;
+/**
+* 寮�闂紝缁撴灉鍦‥SVideoPhoneDelegate 鏂规硶涓繑鍥�
+*
+* @param roomId 浣忔埛鐨剅oomid锛�
+*/
+-(void)openTheDoorWithRoomid: (int)roomId;
+//閲婃斁璧勬簮锛坉elegate閲婃斁绛夛級
+-(void)freeSubClass;
+@end
+
+
+
+
+
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Info.plist b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Info.plist
new file mode 100644
index 0000000..6a58dbc
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Info.plist
Binary files differ
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory
new file mode 100644
index 0000000..22986fc
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory
Binary files differ
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements
new file mode 100644
index 0000000..fdb3ae6
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements
Binary files differ
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1 b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1
new file mode 100644
index 0000000..f31b403
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1
Binary files differ
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources
new file mode 100644
index 0000000..71cc318
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>files</key>
+	<dict>
+		<key>Headers/ESError.h</key>
+		<data>
+		6x23lohs1gRaX2F7raZcezxZt4A=
+		</data>
+		<key>Headers/ESVideoPhone.h</key>
+		<data>
+		PXntC+GjEn5A+q23YZHDZYIGj3k=
+		</data>
+		<key>Info.plist</key>
+		<data>
+		pac6jrrTIT3Ur/3XHh3CoCOUlnE=
+		</data>
+	</dict>
+	<key>files2</key>
+	<dict>
+		<key>Headers/ESError.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			6x23lohs1gRaX2F7raZcezxZt4A=
+			</data>
+			<key>hash2</key>
+			<data>
+			y8ReVa9YaZ6fyPjy8EeTl3jbaUadZUYVC0IdLJ/HrgM=
+			</data>
+		</dict>
+		<key>Headers/ESVideoPhone.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			PXntC+GjEn5A+q23YZHDZYIGj3k=
+			</data>
+			<key>hash2</key>
+			<data>
+			MboPVH5djlpgR//Z7UcRBMEeaakW6FWQbZxlkx4KzaM=
+			</data>
+		</dict>
+	</dict>
+	<key>rules</key>
+	<dict>
+		<key>^.*</key>
+		<true/>
+		<key>^.*\.lproj/</key>
+		<dict>
+			<key>optional</key>
+			<true/>
+			<key>weight</key>
+			<real>1000</real>
+		</dict>
+		<key>^.*\.lproj/locversion.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>1100</real>
+		</dict>
+		<key>^Base\.lproj/</key>
+		<dict>
+			<key>weight</key>
+			<real>1010</real>
+		</dict>
+		<key>^version.plist$</key>
+		<true/>
+	</dict>
+	<key>rules2</key>
+	<dict>
+		<key>.*\.dSYM($|/)</key>
+		<dict>
+			<key>weight</key>
+			<real>11</real>
+		</dict>
+		<key>^(.*/)?\.DS_Store$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>2000</real>
+		</dict>
+		<key>^.*</key>
+		<true/>
+		<key>^.*\.lproj/</key>
+		<dict>
+			<key>optional</key>
+			<true/>
+			<key>weight</key>
+			<real>1000</real>
+		</dict>
+		<key>^.*\.lproj/locversion.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>1100</real>
+		</dict>
+		<key>^Base\.lproj/</key>
+		<dict>
+			<key>weight</key>
+			<real>1010</real>
+		</dict>
+		<key>^Info\.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^PkgInfo$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^embedded\.provisionprofile$</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^version\.plist$</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+	</dict>
+</dict>
+</plist>
diff --git a/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature
new file mode 100644
index 0000000..8bda88d
--- /dev/null
+++ b/ESVideoPhoneSDKDemo1.3/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature
Binary files differ
diff --git a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDKDemo/ZigBee/ESVideoMonitorViewController.m b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDKDemo/ZigBee/ESVideoMonitorViewController.m
index 7baab16..f384f71 100644
--- a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDKDemo/ZigBee/ESVideoMonitorViewController.m
+++ b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDKDemo/ZigBee/ESVideoMonitorViewController.m
@@ -120,7 +120,7 @@
     UIView *TopView =  [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, APP_TOP_BAR_HEIGHT)];
     TopView.backgroundColor = HEXCOLORA(0xF9F9F9,1.0);
     [TopView addSubview:self.backButton];
-    [TopView addSubview:self.moreButton];
+//    [TopView addSubview:self.moreButton];
     [self.view addSubview:TopView];
     TopView.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.25].CGColor;
     TopView.layer.shadowOffset = CGSizeMake(0,0.5);
@@ -445,12 +445,12 @@
         return;
     }
     //鍒濆鍖栬棰戦噰闆咰apture
-    [self requestAccessForAVMediaType:AVMediaTypeVideo];
-    if (isAccessVideo) {
-        if(![_es initVideoCaptureSession]){
-            NSLog(@"VideoCaptureSession 鍒濆鍖栧け璐�");
-        }
-    }
+//    [self requestAccessForAVMediaType:AVMediaTypeVideo];
+//    if (isAccessVideo) {
+//        if(![_es initVideoCaptureSession]){
+//            NSLog(@"VideoCaptureSession 鍒濆鍖栧け璐�");
+//        }
+//    }
     //鍒濆鍖朅udioSession
     _sessionHelper = [[AudioSessionHelper alloc]init];
     [_sessionHelper setAudioSession];
@@ -512,7 +512,12 @@
     //鍦╲iewDidLoad涓� 璋冪敤requestAccessForAVMediaType: 鏄负浜嗚妭绾﹀垵濮嬪寲鐨勬椂闂�
     //鍦╲iewDidAppear涓皟鐢╮equestAccessForAVMediaType: 鏄负浜嗗脊鍑烘彁绀烘墦寮�鏉冮檺鐨凙lert
     //娴嬭瘯鐨勬椂鍊欏彂鐜板涓嬫儏鍐碉細濡傛灉鍙妸鎺堟潈鏂规硶鏀惧埌ViewDidAppear鏂规硶涓鐞嗭紝濡傛灉娌℃湁鎺堟潈鍦ㄥ垵濮嬪寲閲囬泦鍣ㄦ椂浼氬け璐ャ�傚悓鏍稟lertView浼氬洜涓篤iew娌℃湁didLoad鑰屽鑷磒resent涓嶅嚭鏉�
-    if (!isAccessVideo || !isAccessAudio) {
+
+//    if (!isAccessVideo || !isAccessAudio) {
+//        [self requestAccessForAVMedia];
+//    }
+    
+    if (!isAccessAudio) {
         [self requestAccessForAVMedia];
     }
 }
@@ -831,30 +836,37 @@
     
     // 杩欓噷鏄�冭檻鍒扮敤鎴锋病鏈夋巿鏉冿紝涔嬪悗閫氳繃AlertAction璺宠浆鍒拌缃〉闈㈡巿鏉冨悗鍐嶅洖鍒癆PP鏃跺仛鐨勯噸鏂版娴�
     //璺宠浆鍒拌缃〉闈紝鎺堟潈鍚庤繑鍥為〉闈紝缁х画鍒濆鍖栭噰闆嗗櫒
-    if (isAccessAudio && isAccessVideo) {
-        return;
-    }
-    if (isAccessVideo && !isAccessAudio) {
+    if(!isAccessAudio){
         [self requestAccessForAVMediaType:AVMediaTypeAudio];
         if (isAccessAudio) {
             [_es initAudioCaptureSession];
         }
-    }else if (!isAccessVideo && isAccessAudio){
-        [self requestAccessForAVMediaType:AVMediaTypeVideo];
-        if (isAccessVideo) {
-            [_es initVideoCaptureSession];
-        }
-        
-    }else if (!isAccessVideo && !isAccessAudio){
-        [self requestAccessForAVMediaType:AVMediaTypeAudio];
-        [self requestAccessForAVMediaType:AVMediaTypeVideo];
-        if (isAccessAudio) {
-            [_es initAudioCaptureSession];
-        }
-        if (isAccessVideo) {
-            [_es initVideoCaptureSession];
-        }
     }
+    
+//    if (isAccessAudio && isAccessVideo) {
+//        return;
+//    }
+//    if (isAccessVideo && !isAccessAudio) {
+//        [self requestAccessForAVMediaType:AVMediaTypeAudio];
+//        if (isAccessAudio) {
+//            [_es initAudioCaptureSession];
+//        }
+//    }else if (!isAccessVideo && isAccessAudio){
+////        [self requestAccessForAVMediaType:AVMediaTypeVideo];
+////        if (isAccessVideo) {
+////            [_es initVideoCaptureSession];
+////        }
+//
+//    }else if (!isAccessVideo && !isAccessAudio){
+//        [self requestAccessForAVMediaType:AVMediaTypeAudio];
+////        [self requestAccessForAVMediaType:AVMediaTypeVideo];
+//        if (isAccessAudio) {
+//            [_es initAudioCaptureSession];
+//        }
+////        if (isAccessVideo) {
+////            [_es initVideoCaptureSession];
+////        }
+//    }
 }
 - (void)willEnterBackground:(NSNotification *)notification {
     isBackGround = YES;
@@ -865,9 +877,9 @@
     if (!isAccessAudio) {
         [self requestAccessForAVMediaType:AVMediaTypeAudio];
     }
-    if (!isAccessVideo) {
-        [self requestAccessForAVMediaType:AVMediaTypeVideo];
-    }
+//    if (!isAccessVideo) {
+////        [self requestAccessForAVMediaType:AVMediaTypeVideo];
+//    }
     if (!iSAudioNotDetermined && iSVideoNotDetermined){
         [self creatAlertViewWith:@"鎺堟潈璇锋眰" message:@"楹﹀厠椋庢病鏈夋巿鏉�,璇峰湪璁剧疆涓紑鍚潈闄�,鍚﹀垯灏嗗奖鍝嶉�氳鍔熻兘銆�" cancel:@"纭畾"];
     }else if(iSAudioNotDetermined && !iSVideoNotDetermined){
diff --git a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDKDemo/ZigBee/ESvideoVideoIntercomViewController.m b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDKDemo/ZigBee/ESvideoVideoIntercomViewController.m
index 8c073d9..3ddb126 100644
--- a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDKDemo/ZigBee/ESvideoVideoIntercomViewController.m
+++ b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDKDemo/ZigBee/ESvideoVideoIntercomViewController.m
@@ -137,7 +137,7 @@
     UIView *TopView =  [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, APP_TOP_BAR_HEIGHT)];
     TopView.backgroundColor = HEXCOLORA(0xF9F9F9,1.0);
     //    [TopView addSubview:self.backButton];
-    [TopView addSubview:self.moreButton];
+//    [TopView addSubview:self.moreButton];
     [self.view addSubview:TopView];
     TopView.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.25].CGColor;
     TopView.layer.shadowOffset = CGSizeMake(0,0.5);
@@ -632,12 +632,12 @@
         return;
     }
     //鍒濆鍖栬棰戦噰闆咰apture
-    [self requestAccessForAVMediaType:AVMediaTypeVideo];
-    if (isAccessVideo) {
-        if(![_es initVideoCaptureSession]){
-            NSLog(@"VideoCaptureSession 鍒濆鍖栧け璐�");
-        }
-    }
+//    [self requestAccessForAVMediaType:AVMediaTypeVideo];
+//    if (isAccessVideo) {
+//        if(![_es initVideoCaptureSession]){
+//            NSLog(@"VideoCaptureSession 鍒濆鍖栧け璐�");
+//        }
+//    }
     //鍒濆鍖朅udioSession
     _sessionHelper = [[AudioSessionHelper alloc]init];
     [_sessionHelper setAudioSession];
@@ -720,7 +720,11 @@
     //鍦╲iewDidLoad涓� 璋冪敤requestAccessForAVMediaType: 鏄负浜嗚妭绾﹀垵濮嬪寲鐨勬椂闂�
     //鍦╲iewDidAppear涓皟鐢╮equestAccessForAVMediaType: 鏄负浜嗗脊鍑烘彁绀烘墦寮�鏉冮檺鐨凙lert
     //娴嬭瘯鐨勬椂鍊欏彂鐜板涓嬫儏鍐碉細濡傛灉鍙妸鎺堟潈鏂规硶鏀惧埌ViewDidAppear鏂规硶涓鐞嗭紝濡傛灉娌℃湁鎺堟潈鍦ㄥ垵濮嬪寲閲囬泦鍣ㄦ椂浼氬け璐ャ�傚悓鏍稟lertView浼氬洜涓篤iew娌℃湁didLoad鑰屽鑷磒resent涓嶅嚭鏉�
-    if (!isAccessVideo || !isAccessAudio) {
+//    if (!isAccessVideo || !isAccessAudio) {
+//        [self requestAccessForAVMedia];
+//    }
+//
+    if (!isAccessAudio) {
         [self requestAccessForAVMedia];
     }
 }
@@ -1021,30 +1025,37 @@
     
     // 杩欓噷鏄�冭檻鍒扮敤鎴锋病鏈夋巿鏉冿紝涔嬪悗閫氳繃AlertAction璺宠浆鍒拌缃〉闈㈡巿鏉冨悗鍐嶅洖鍒癆PP鏃跺仛鐨勯噸鏂版娴�
     //璺宠浆鍒拌缃〉闈紝鎺堟潈鍚庤繑鍥為〉闈紝缁х画鍒濆鍖栭噰闆嗗櫒
-    if (isAccessAudio && isAccessVideo) {
-        return;
-    }
-    if (isAccessVideo && !isAccessAudio) {
+    if(!isAccessAudio){
         [self requestAccessForAVMediaType:AVMediaTypeAudio];
         if (isAccessAudio) {
             [_es initAudioCaptureSession];
         }
-    }else if (!isAccessVideo && isAccessAudio){
-        [self requestAccessForAVMediaType:AVMediaTypeVideo];
-        if (isAccessVideo) {
-            [_es initVideoCaptureSession];
-        }
-        
-    }else if (!isAccessVideo && !isAccessAudio){
-        [self requestAccessForAVMediaType:AVMediaTypeAudio];
-        [self requestAccessForAVMediaType:AVMediaTypeVideo];
-        if (isAccessAudio) {
-            [_es initAudioCaptureSession];
-        }
-        if (isAccessVideo) {
-            [_es initVideoCaptureSession];
-        }
     }
+    
+//    if (isAccessAudio && isAccessVideo) {
+//        return;
+//    }
+//    if (isAccessVideo && !isAccessAudio) {
+//        [self requestAccessForAVMediaType:AVMediaTypeAudio];
+//        if (isAccessAudio) {
+//            [_es initAudioCaptureSession];
+//        }
+//    }else if (!isAccessVideo && isAccessAudio){
+////        [self requestAccessForAVMediaType:AVMediaTypeVideo];
+////        if (isAccessVideo) {
+////            [_es initVideoCaptureSession];
+////        }
+//
+//    }else if (!isAccessVideo && !isAccessAudio){
+//        [self requestAccessForAVMediaType:AVMediaTypeAudio];
+////        [self requestAccessForAVMediaType:AVMediaTypeVideo];
+//        if (isAccessAudio) {
+//            [_es initAudioCaptureSession];
+//        }
+////        if (isAccessVideo) {
+////            [_es initVideoCaptureSession];
+////        }
+//    }
 }
 - (void)willEnterBackground:(NSNotification *)notification {
     isBackGround = YES;
@@ -1055,9 +1066,9 @@
     if (!isAccessAudio) {
         [self requestAccessForAVMediaType:AVMediaTypeAudio];
     }
-    if (!isAccessVideo) {
-        [self requestAccessForAVMediaType:AVMediaTypeVideo];
-    }
+//    if (!isAccessVideo) {
+//        [self requestAccessForAVMediaType:AVMediaTypeVideo];
+//    }
     if (!iSAudioNotDetermined && iSVideoNotDetermined){
         [self creatAlertViewWith:@"鎺堟潈璇锋眰" message:@"楹﹀厠椋庢病鏈夋巿鏉�,璇峰湪璁剧疆涓紑鍚潈闄�,鍚﹀垯灏嗗奖鍝嶉�氳鍔熻兘銆�" cancel:@"纭畾"];
     }else if(iSAudioNotDetermined && !iSVideoNotDetermined){
diff --git a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/ESVideoPhoneSDk b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/ESVideoPhoneSDk
index b4e6dac..6867847 100644
--- a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/ESVideoPhoneSDk
+++ b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/ESVideoPhoneSDk
Binary files differ
diff --git a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h
index 5e92338..11f1d89 100644
--- a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h
+++ b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h
@@ -4,7 +4,7 @@
 //
 //  Created by maygion on 2019/3/26.
 //  Copyright 漏 2019 eTouchSky. All rights reserved.
-//  SDK鐗堟湰鍙凤細1.1.0 
+//  SDK鐗堟湰鍙凤細1.0.0  娴嬭瘯鐗�1
 
 #import <Foundation/Foundation.h>
 #import <UIKit/UIKit.h>
diff --git a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/Info.plist b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/Info.plist
index a2ebd3b..6a58dbc 100644
--- a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/Info.plist
+++ b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/Info.plist
Binary files differ
diff --git a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory
index 66da18c..22986fc 100644
--- a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory
+++ b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory
Binary files differ
diff --git a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements
index 4a29992..fdb3ae6 100644
--- a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements
+++ b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements
Binary files differ
diff --git a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1 b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1
index 6c9adc7..f31b403 100644
--- a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1
+++ b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1
Binary files differ
diff --git a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources
index 94318a3..71cc318 100644
--- a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources
+++ b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources
@@ -4,10 +4,6 @@
 <dict>
 	<key>files</key>
 	<dict>
-		<key>.DS_Store</key>
-		<data>
-		Y/zzZVahlzqsXsKRy9ythZX/tmM=
-		</data>
 		<key>Headers/ESError.h</key>
 		<data>
 		6x23lohs1gRaX2F7raZcezxZt4A=
@@ -18,7 +14,7 @@
 		</data>
 		<key>Info.plist</key>
 		<data>
-		YgFQhxxTQ5/xhKsrQd4C5NGn22w=
+		pac6jrrTIT3Ur/3XHh3CoCOUlnE=
 		</data>
 	</dict>
 	<key>files2</key>
diff --git a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature
index 7d20839..8bda88d 100644
--- a/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature
+++ b/ESVideoPhoneSDKZigbee/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature
Binary files differ
diff --git a/xamarin/ESVideoPhoneSDKXamarin/ESVideoPhoneSDKXamarin/ESVideoMonitorViewController.m b/xamarin/ESVideoPhoneSDKXamarin/ESVideoPhoneSDKXamarin/ESVideoMonitorViewController.m
index 7baab16..f384f71 100644
--- a/xamarin/ESVideoPhoneSDKXamarin/ESVideoPhoneSDKXamarin/ESVideoMonitorViewController.m
+++ b/xamarin/ESVideoPhoneSDKXamarin/ESVideoPhoneSDKXamarin/ESVideoMonitorViewController.m
@@ -120,7 +120,7 @@
     UIView *TopView =  [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, APP_TOP_BAR_HEIGHT)];
     TopView.backgroundColor = HEXCOLORA(0xF9F9F9,1.0);
     [TopView addSubview:self.backButton];
-    [TopView addSubview:self.moreButton];
+//    [TopView addSubview:self.moreButton];
     [self.view addSubview:TopView];
     TopView.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.25].CGColor;
     TopView.layer.shadowOffset = CGSizeMake(0,0.5);
@@ -445,12 +445,12 @@
         return;
     }
     //鍒濆鍖栬棰戦噰闆咰apture
-    [self requestAccessForAVMediaType:AVMediaTypeVideo];
-    if (isAccessVideo) {
-        if(![_es initVideoCaptureSession]){
-            NSLog(@"VideoCaptureSession 鍒濆鍖栧け璐�");
-        }
-    }
+//    [self requestAccessForAVMediaType:AVMediaTypeVideo];
+//    if (isAccessVideo) {
+//        if(![_es initVideoCaptureSession]){
+//            NSLog(@"VideoCaptureSession 鍒濆鍖栧け璐�");
+//        }
+//    }
     //鍒濆鍖朅udioSession
     _sessionHelper = [[AudioSessionHelper alloc]init];
     [_sessionHelper setAudioSession];
@@ -512,7 +512,12 @@
     //鍦╲iewDidLoad涓� 璋冪敤requestAccessForAVMediaType: 鏄负浜嗚妭绾﹀垵濮嬪寲鐨勬椂闂�
     //鍦╲iewDidAppear涓皟鐢╮equestAccessForAVMediaType: 鏄负浜嗗脊鍑烘彁绀烘墦寮�鏉冮檺鐨凙lert
     //娴嬭瘯鐨勬椂鍊欏彂鐜板涓嬫儏鍐碉細濡傛灉鍙妸鎺堟潈鏂规硶鏀惧埌ViewDidAppear鏂规硶涓鐞嗭紝濡傛灉娌℃湁鎺堟潈鍦ㄥ垵濮嬪寲閲囬泦鍣ㄦ椂浼氬け璐ャ�傚悓鏍稟lertView浼氬洜涓篤iew娌℃湁didLoad鑰屽鑷磒resent涓嶅嚭鏉�
-    if (!isAccessVideo || !isAccessAudio) {
+
+//    if (!isAccessVideo || !isAccessAudio) {
+//        [self requestAccessForAVMedia];
+//    }
+    
+    if (!isAccessAudio) {
         [self requestAccessForAVMedia];
     }
 }
@@ -831,30 +836,37 @@
     
     // 杩欓噷鏄�冭檻鍒扮敤鎴锋病鏈夋巿鏉冿紝涔嬪悗閫氳繃AlertAction璺宠浆鍒拌缃〉闈㈡巿鏉冨悗鍐嶅洖鍒癆PP鏃跺仛鐨勯噸鏂版娴�
     //璺宠浆鍒拌缃〉闈紝鎺堟潈鍚庤繑鍥為〉闈紝缁х画鍒濆鍖栭噰闆嗗櫒
-    if (isAccessAudio && isAccessVideo) {
-        return;
-    }
-    if (isAccessVideo && !isAccessAudio) {
+    if(!isAccessAudio){
         [self requestAccessForAVMediaType:AVMediaTypeAudio];
         if (isAccessAudio) {
             [_es initAudioCaptureSession];
         }
-    }else if (!isAccessVideo && isAccessAudio){
-        [self requestAccessForAVMediaType:AVMediaTypeVideo];
-        if (isAccessVideo) {
-            [_es initVideoCaptureSession];
-        }
-        
-    }else if (!isAccessVideo && !isAccessAudio){
-        [self requestAccessForAVMediaType:AVMediaTypeAudio];
-        [self requestAccessForAVMediaType:AVMediaTypeVideo];
-        if (isAccessAudio) {
-            [_es initAudioCaptureSession];
-        }
-        if (isAccessVideo) {
-            [_es initVideoCaptureSession];
-        }
     }
+    
+//    if (isAccessAudio && isAccessVideo) {
+//        return;
+//    }
+//    if (isAccessVideo && !isAccessAudio) {
+//        [self requestAccessForAVMediaType:AVMediaTypeAudio];
+//        if (isAccessAudio) {
+//            [_es initAudioCaptureSession];
+//        }
+//    }else if (!isAccessVideo && isAccessAudio){
+////        [self requestAccessForAVMediaType:AVMediaTypeVideo];
+////        if (isAccessVideo) {
+////            [_es initVideoCaptureSession];
+////        }
+//
+//    }else if (!isAccessVideo && !isAccessAudio){
+//        [self requestAccessForAVMediaType:AVMediaTypeAudio];
+////        [self requestAccessForAVMediaType:AVMediaTypeVideo];
+//        if (isAccessAudio) {
+//            [_es initAudioCaptureSession];
+//        }
+////        if (isAccessVideo) {
+////            [_es initVideoCaptureSession];
+////        }
+//    }
 }
 - (void)willEnterBackground:(NSNotification *)notification {
     isBackGround = YES;
@@ -865,9 +877,9 @@
     if (!isAccessAudio) {
         [self requestAccessForAVMediaType:AVMediaTypeAudio];
     }
-    if (!isAccessVideo) {
-        [self requestAccessForAVMediaType:AVMediaTypeVideo];
-    }
+//    if (!isAccessVideo) {
+////        [self requestAccessForAVMediaType:AVMediaTypeVideo];
+//    }
     if (!iSAudioNotDetermined && iSVideoNotDetermined){
         [self creatAlertViewWith:@"鎺堟潈璇锋眰" message:@"楹﹀厠椋庢病鏈夋巿鏉�,璇峰湪璁剧疆涓紑鍚潈闄�,鍚﹀垯灏嗗奖鍝嶉�氳鍔熻兘銆�" cancel:@"纭畾"];
     }else if(iSAudioNotDetermined && !iSVideoNotDetermined){
diff --git a/xamarin/ESVideoPhoneSDKXamarin/ESVideoPhoneSDKXamarin/ESvideoVideoIntercomViewController.m b/xamarin/ESVideoPhoneSDKXamarin/ESVideoPhoneSDKXamarin/ESvideoVideoIntercomViewController.m
index 8c073d9..3ddb126 100644
--- a/xamarin/ESVideoPhoneSDKXamarin/ESVideoPhoneSDKXamarin/ESvideoVideoIntercomViewController.m
+++ b/xamarin/ESVideoPhoneSDKXamarin/ESVideoPhoneSDKXamarin/ESvideoVideoIntercomViewController.m
@@ -137,7 +137,7 @@
     UIView *TopView =  [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, APP_TOP_BAR_HEIGHT)];
     TopView.backgroundColor = HEXCOLORA(0xF9F9F9,1.0);
     //    [TopView addSubview:self.backButton];
-    [TopView addSubview:self.moreButton];
+//    [TopView addSubview:self.moreButton];
     [self.view addSubview:TopView];
     TopView.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.25].CGColor;
     TopView.layer.shadowOffset = CGSizeMake(0,0.5);
@@ -632,12 +632,12 @@
         return;
     }
     //鍒濆鍖栬棰戦噰闆咰apture
-    [self requestAccessForAVMediaType:AVMediaTypeVideo];
-    if (isAccessVideo) {
-        if(![_es initVideoCaptureSession]){
-            NSLog(@"VideoCaptureSession 鍒濆鍖栧け璐�");
-        }
-    }
+//    [self requestAccessForAVMediaType:AVMediaTypeVideo];
+//    if (isAccessVideo) {
+//        if(![_es initVideoCaptureSession]){
+//            NSLog(@"VideoCaptureSession 鍒濆鍖栧け璐�");
+//        }
+//    }
     //鍒濆鍖朅udioSession
     _sessionHelper = [[AudioSessionHelper alloc]init];
     [_sessionHelper setAudioSession];
@@ -720,7 +720,11 @@
     //鍦╲iewDidLoad涓� 璋冪敤requestAccessForAVMediaType: 鏄负浜嗚妭绾﹀垵濮嬪寲鐨勬椂闂�
     //鍦╲iewDidAppear涓皟鐢╮equestAccessForAVMediaType: 鏄负浜嗗脊鍑烘彁绀烘墦寮�鏉冮檺鐨凙lert
     //娴嬭瘯鐨勬椂鍊欏彂鐜板涓嬫儏鍐碉細濡傛灉鍙妸鎺堟潈鏂规硶鏀惧埌ViewDidAppear鏂规硶涓鐞嗭紝濡傛灉娌℃湁鎺堟潈鍦ㄥ垵濮嬪寲閲囬泦鍣ㄦ椂浼氬け璐ャ�傚悓鏍稟lertView浼氬洜涓篤iew娌℃湁didLoad鑰屽鑷磒resent涓嶅嚭鏉�
-    if (!isAccessVideo || !isAccessAudio) {
+//    if (!isAccessVideo || !isAccessAudio) {
+//        [self requestAccessForAVMedia];
+//    }
+//
+    if (!isAccessAudio) {
         [self requestAccessForAVMedia];
     }
 }
@@ -1021,30 +1025,37 @@
     
     // 杩欓噷鏄�冭檻鍒扮敤鎴锋病鏈夋巿鏉冿紝涔嬪悗閫氳繃AlertAction璺宠浆鍒拌缃〉闈㈡巿鏉冨悗鍐嶅洖鍒癆PP鏃跺仛鐨勯噸鏂版娴�
     //璺宠浆鍒拌缃〉闈紝鎺堟潈鍚庤繑鍥為〉闈紝缁х画鍒濆鍖栭噰闆嗗櫒
-    if (isAccessAudio && isAccessVideo) {
-        return;
-    }
-    if (isAccessVideo && !isAccessAudio) {
+    if(!isAccessAudio){
         [self requestAccessForAVMediaType:AVMediaTypeAudio];
         if (isAccessAudio) {
             [_es initAudioCaptureSession];
         }
-    }else if (!isAccessVideo && isAccessAudio){
-        [self requestAccessForAVMediaType:AVMediaTypeVideo];
-        if (isAccessVideo) {
-            [_es initVideoCaptureSession];
-        }
-        
-    }else if (!isAccessVideo && !isAccessAudio){
-        [self requestAccessForAVMediaType:AVMediaTypeAudio];
-        [self requestAccessForAVMediaType:AVMediaTypeVideo];
-        if (isAccessAudio) {
-            [_es initAudioCaptureSession];
-        }
-        if (isAccessVideo) {
-            [_es initVideoCaptureSession];
-        }
     }
+    
+//    if (isAccessAudio && isAccessVideo) {
+//        return;
+//    }
+//    if (isAccessVideo && !isAccessAudio) {
+//        [self requestAccessForAVMediaType:AVMediaTypeAudio];
+//        if (isAccessAudio) {
+//            [_es initAudioCaptureSession];
+//        }
+//    }else if (!isAccessVideo && isAccessAudio){
+////        [self requestAccessForAVMediaType:AVMediaTypeVideo];
+////        if (isAccessVideo) {
+////            [_es initVideoCaptureSession];
+////        }
+//
+//    }else if (!isAccessVideo && !isAccessAudio){
+//        [self requestAccessForAVMediaType:AVMediaTypeAudio];
+////        [self requestAccessForAVMediaType:AVMediaTypeVideo];
+//        if (isAccessAudio) {
+//            [_es initAudioCaptureSession];
+//        }
+////        if (isAccessVideo) {
+////            [_es initVideoCaptureSession];
+////        }
+//    }
 }
 - (void)willEnterBackground:(NSNotification *)notification {
     isBackGround = YES;
@@ -1055,9 +1066,9 @@
     if (!isAccessAudio) {
         [self requestAccessForAVMediaType:AVMediaTypeAudio];
     }
-    if (!isAccessVideo) {
-        [self requestAccessForAVMediaType:AVMediaTypeVideo];
-    }
+//    if (!isAccessVideo) {
+//        [self requestAccessForAVMediaType:AVMediaTypeVideo];
+//    }
     if (!iSAudioNotDetermined && iSVideoNotDetermined){
         [self creatAlertViewWith:@"鎺堟潈璇锋眰" message:@"楹﹀厠椋庢病鏈夋巿鏉�,璇峰湪璁剧疆涓紑鍚潈闄�,鍚﹀垯灏嗗奖鍝嶉�氳鍔熻兘銆�" cancel:@"纭畾"];
     }else if(iSAudioNotDetermined && !iSVideoNotDetermined){
diff --git a/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/ESVideoPhoneSDk b/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/ESVideoPhoneSDk
index b4e6dac..6867847 100644
--- a/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/ESVideoPhoneSDk
+++ b/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/ESVideoPhoneSDk
Binary files differ
diff --git a/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h b/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h
index 5e92338..11f1d89 100644
--- a/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h
+++ b/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h
@@ -4,7 +4,7 @@
 //
 //  Created by maygion on 2019/3/26.
 //  Copyright 漏 2019 eTouchSky. All rights reserved.
-//  SDK鐗堟湰鍙凤細1.1.0 
+//  SDK鐗堟湰鍙凤細1.0.0  娴嬭瘯鐗�1
 
 #import <Foundation/Foundation.h>
 #import <UIKit/UIKit.h>
diff --git a/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/Info.plist b/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/Info.plist
index a2ebd3b..6a58dbc 100644
--- a/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/Info.plist
+++ b/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/Info.plist
Binary files differ
diff --git a/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory b/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory
index 66da18c..22986fc 100644
--- a/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory
+++ b/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory
Binary files differ
diff --git a/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements b/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements
index 4a29992..fdb3ae6 100644
--- a/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements
+++ b/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements
Binary files differ
diff --git a/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1 b/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1
index 6c9adc7..f31b403 100644
--- a/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1
+++ b/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1
Binary files differ
diff --git a/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources b/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources
index 94318a3..71cc318 100644
--- a/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources
+++ b/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources
@@ -4,10 +4,6 @@
 <dict>
 	<key>files</key>
 	<dict>
-		<key>.DS_Store</key>
-		<data>
-		Y/zzZVahlzqsXsKRy9ythZX/tmM=
-		</data>
 		<key>Headers/ESError.h</key>
 		<data>
 		6x23lohs1gRaX2F7raZcezxZt4A=
@@ -18,7 +14,7 @@
 		</data>
 		<key>Info.plist</key>
 		<data>
-		YgFQhxxTQ5/xhKsrQd4C5NGn22w=
+		pac6jrrTIT3Ur/3XHh3CoCOUlnE=
 		</data>
 	</dict>
 	<key>files2</key>
diff --git a/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature b/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature
index 7d20839..8bda88d 100644
--- a/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature
+++ b/xamarin/ESVideoPhoneSDKXamarin/Extern/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature
Binary files differ
diff --git a/xamarin/ESVideoPhoneSDKXamarin/README.md b/xamarin/ESVideoPhoneSDKXamarin/README.md
new file mode 100644
index 0000000..9626774
--- /dev/null
+++ b/xamarin/ESVideoPhoneSDKXamarin/README.md
@@ -0,0 +1,6 @@
+## 涓版灄鍙瀵硅
+
+### *****V1.0.2*****
+### 1.鏇存柊SDK,瑙e喅鍙嶅懠涓嶆寕鏂棶棰樸��
+
+
diff --git a/xamarin/Shared.IOS.ESVideoPhoneSDK/Library/ESVideoPhoneSDk.a b/xamarin/Shared.IOS.ESVideoPhoneSDK/Library/ESVideoPhoneSDk.a
index b4e6dac..6867847 100644
--- a/xamarin/Shared.IOS.ESVideoPhoneSDK/Library/ESVideoPhoneSDk.a
+++ b/xamarin/Shared.IOS.ESVideoPhoneSDK/Library/ESVideoPhoneSDk.a
Binary files differ
diff --git a/xamarin/Shared.IOS.ESVideoPhoneSDK/Library/libESVideoPhoneSDKXamarin.a b/xamarin/Shared.IOS.ESVideoPhoneSDK/Library/libESVideoPhoneSDKXamarin.a
index 9e04c42..1fe6224 100644
--- a/xamarin/Shared.IOS.ESVideoPhoneSDK/Library/libESVideoPhoneSDKXamarin.a
+++ b/xamarin/Shared.IOS.ESVideoPhoneSDK/Library/libESVideoPhoneSDKXamarin.a
Binary files differ
diff --git a/xamarin/Shared.IOS.ESVideoPhoneSDK/Properties/AssemblyInfo.cs b/xamarin/Shared.IOS.ESVideoPhoneSDK/Properties/AssemblyInfo.cs
index c507ba8..9bd96e0 100644
--- a/xamarin/Shared.IOS.ESVideoPhoneSDK/Properties/AssemblyInfo.cs
+++ b/xamarin/Shared.IOS.ESVideoPhoneSDK/Properties/AssemblyInfo.cs
@@ -25,7 +25,7 @@
 // The form "{Major}.{Minor}.*" will automatically update the build and revision,
 // and "{Major}.{Minor}.{Build}.*" will update just the revision.
 
-[assembly: AssemblyVersion("1.0.1")]
+[assembly: AssemblyVersion("1.0.2")]
 
 // The following attributes are used to specify the signing key for the assembly,
 // if desired. See the Mono documentation for more information about signing.

--
Gitblit v1.8.0