EZDemo/HDLEZDemo/HDLEZDemo/AppDelegate.m | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
EZDemo/HDLEZDemo/HDLEZDemo/EZMain.storyboard | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
EZDemo/HDLEZDemo/HDLEZDemo/ViewController.m | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
EZDemo/HDLEZDemo/HDLEZDemo/libEZSDK.a | 补丁 | 查看 | 原始文档 | blame | 历史 | |
EZDemo/HDLEZDemo/HDLEZDemo/resources/en.lproj/Localizable.strings | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
EZDemo/HDLEZDemo/HDLEZDemo/resources/zh-Hans.lproj/Localizable.strings | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceTableViewController.m | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
EZSDK/EZSDK/EZ/UIViewControllers/EZSettingViewController.m | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
EZSDK/EZSDK/EZSDK.m | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
EZDemo/HDLEZDemo/HDLEZDemo/AppDelegate.m
@@ -25,10 +25,10 @@ // Override point for customization after application launch. [[EZSDK sharedInstance] initLibWithAppKey:@"1aa98a90489b4838b966b57018b4b04b" globalAppKey:@"1aa98a90489b4838b966b57018b4b04b"]; // [[EZSDK sharedInstance] initLibWithAppKey:@"941b1b72b6294998acfd36c14931b675" globalAppKey:@"941b1b72b6294998acfd36c14931b675"]; [[EZSDK sharedInstance] setHDlAccessToken:@"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiI1NTc3YTY5ZDYxMTM0YzgxYjFiMzQ3NjczYjAzYTI3MSIsImNvbXBhbnlJZCI6IjAiLCJyb2xlIjoiIiwiaGVhZGVyUHJlZml4IjoiQmVhcmVyICIsInVzZXJBY2NvdW50Ijoid3hyIiwidGVuYW50SWQiOiIyMCIsInVzZXJUeXBlIjoiVVNFUl9DIiwidG9rZW5UeXBlIjoiYWNjZXNzX3Rva2VuIiwidXNlck5hbWUiOiJ3eHIiLCJ1c2VyRGF0YVJpZ2h0IjoiMSIsIm9wZW5BcHBsaWNhdGlvbklkIjoiMCIsInVzZXJJZCI6IjEzOTIwMzU1NjgyMDQ0MjMxNjkiLCJleHAiOjE2ODE3MzEwOTMsIm5iZiI6MTY4MTcyMzg5M30.E-h5ba1N1vJZjrNgvBAx0XLg13oTxITqjMVuzxeXdgoxYRzhmYUlGATIz_B3OK71Bv91pVq-q2Z6LlA8-40pUNDGN_YGLBSt4p34KliTGisr106ksoFd5B2f3qJt3bgfDHANJCp8tfFcUBGSdX0I9TSworLkQYS0K4Asd_t-ObA" refreshToken:@"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJmNDZlOTYzMDQ1ODU0MzI4YTUwOWE2ZDljYmE2YjU1NCIsImNvbXBhbnlJZCI6IjAiLCJoZWFkZXJQcmVmaXgiOiJCZWFyZXIgIiwidGVuYW50SWQiOiIyMCIsInRva2VuVHlwZSI6InJlZnJlc2hfdG9rZW4iLCJvcGVuQXBwbGljYXRpb25JZCI6IjAiLCJ1c2VySWQiOiIxMzkyMDM1NTY4MjA0NDIzMTY5IiwiZXhwIjoxNjgyMzI4NjkzLCJuYmYiOjE2ODE3MjM4OTN9.iQu24WYLPqr3g7LUklZFS7JlY5eO_smPDgUwM3z9s2ldK528nw1EMp0SQgy5USpKpgFzATliDLpb_UDXhx-8-uUjO9dtL8dY3P-I9xmpwjnF13I8eYg5h40hZa5ihuokURsOf9DnD7cjLEItQ_FCsT8rdu9vFzQSE-TWoTmkSV8"]; [[EZSDK sharedInstance] setRequestHttpsHostAndPlatform:@"https://test-gz.hdlcontrol.com" platform:1 homeId:@"1547099040465408002"]; // [[EZSDK sharedInstance] setRequestHttpsHostAndPlatform:@"https://test-gz.hdlcontrol.com" platform:1 homeId:@"1644171733588557825"]; [[EZSDK sharedInstance] setEZAccessToken:@"ra.be9kj2gsdeldsty13rdsieay3wigmdxn-9dccz2nop6-11v2z1o-jslwzcqgz"]; [[EZSDK sharedInstance] setHDlAccessToken:@"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiIyM2UwOTM3YjliNGU0YzU4YWUxMzRiODdlNzkxY2M0NSIsImNvbXBhbnlJZCI6IjAiLCJyb2xlIjoiIiwiaGVhZGVyUHJlZml4IjoiQmVhcmVyICIsInRlbmFudElkIjoiMjAiLCJ1c2VyVHlwZSI6IlVTRVJfQyIsInRva2VuVHlwZSI6ImFjY2Vzc190b2tlbiIsInVzZXJOYW1lIjoiS2FlZGUiLCJ1c2VyRGF0YVJpZ2h0IjoiMSIsIm9wZW5BcHBsaWNhdGlvbklkIjoiMCIsInVzZXJJZCI6IjEzNTAyODA5OTU5OTg4NjMzNjEiLCJleHAiOjE2ODcxNzY4NDgsIm5iZiI6MTY4NzE2OTY0OH0.XqlQEtiyKvoVSo3HmDOW9LSRhdJI7KOGWEOLDCerb0Nod_rDnjPYvYuPct-vPGYhXklEqqcPz0vILHimmS3VpJj04O_5q_Rgsjnpp11rUJ2CxoqZmXAdpfis5HHeIj3n_UVg1exCjsyK-DOdEijIgaToGrLuHM5uvgfD_nvvNDI" refreshToken:@"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiI2MWI3Y2Y4YmFlMjY0NzMyYjc5YjFiYWUzMzE3NzYxMSIsImNvbXBhbnlJZCI6IjAiLCJoZWFkZXJQcmVmaXgiOiJCZWFyZXIgIiwidGVuYW50SWQiOiIyMCIsInRva2VuVHlwZSI6InJlZnJlc2hfdG9rZW4iLCJvcGVuQXBwbGljYXRpb25JZCI6IjAiLCJ1c2VySWQiOiIxMzUwMjgwOTk1OTk4ODYzMzYxIiwiZXhwIjoxNjg3Nzc0NDQ4LCJuYmYiOjE2ODcxNjk2NDh9.eUcIwEGgpX3xSLvLfSlyANsTNpi0IHGkspF2O3igyRIDUWcQcs8fPouLBzXf29y87_A9AuCURI6ZAj5OPnC9xafQkgnV9_KTBAG62kGTRbAGiOBiAtyJmD6HQ4zUuI8sNmzoI67ewhu2gCQPFPoHOlJ8duODpbSk3NkUrYvxL2k"]; // [[EZSDK sharedInstance] setRequestHttpsHostAndPlatform:@"https://test-gz.hdlcontrol.com" platform:1 homeId:@"1547099040465408002"]; [[EZSDK sharedInstance] setRequestHttpsHostAndPlatform:@"https://nearest.hdlcontrol.com" platform:1 homeId:@"1546324800135176193"]; [[EZSDK sharedInstance] setEZAccessToken:@"ra.6noaub1s86aqfnbz56vp17q2cn7w5bqp-1lbac5acq7-1m25l9w-ai5d2u8gp"]; // [[EZSDK sharedInstance] setEZAccessToken:@"ra.3hkirwcadrpfmaa89wep99io3wto4yds-7zptb10d20-1wxg4f3-ygiojudee"]; EZDemo/HDLEZDemo/HDLEZDemo/EZMain.storyboard
@@ -1289,6 +1289,98 @@ <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <nil key="highlightedColor"/> </label> <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sMv-Yh-W5N"> <rect key="frame" x="0.0" y="312" width="375" height="355"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="---" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8Fe-E7-C5g"> <rect key="frame" x="32" y="89" width="311" height="21"/> <fontDescription key="fontDescription" type="system" pointSize="17"/> <color key="textColor" red="0.090196078430000007" green="0.094117647060000004" blue="0.29411764709999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="aq5-rn-Dgo"> <rect key="frame" x="142.5" y="160" width="84.5" height="35"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <state key="normal" title="Button"/> <buttonConfiguration key="configuration" style="plain" title="忽略"/> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> <integer key="value" value="8"/> </userDefinedRuntimeAttribute> <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth"> <real key="value" value="0.5"/> </userDefinedRuntimeAttribute> <userDefinedRuntimeAttribute type="color" keyPath="layer. borderColorWithUIColor"> <color key="value" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> <connections> <action selector="clickCalloutIgnoreAction:" destination="uBF-Yq-Qo0" eventType="touchUpInside" id="fTQ-p0-9jk"/> </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="2bC-B5-gMZ"> <rect key="frame" x="259" y="160" width="84" height="35"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <state key="normal" title="Button"/> <buttonConfiguration key="configuration" style="plain" title="接听"/> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> <integer key="value" value="8"/> </userDefinedRuntimeAttribute> <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth"> <real key="value" value="0.5"/> </userDefinedRuntimeAttribute> <userDefinedRuntimeAttribute type="color" keyPath="layer. borderColorWithUIColor"> <color key="value" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> <connections> <action selector="clickCalloutAnswerAction:" destination="uBF-Yq-Qo0" eventType="touchUpInside" id="2tR-65-1sv"/> </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jPI-nC-uAq"> <rect key="frame" x="32" y="160" width="78.5" height="35"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <state key="normal" title="Button"/> <buttonConfiguration key="configuration" style="plain" title="挂断"/> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> <integer key="value" value="8"/> </userDefinedRuntimeAttribute> <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth"> <real key="value" value="0.5"/> </userDefinedRuntimeAttribute> <userDefinedRuntimeAttribute type="color" keyPath="layer. borderColorWithUIColor"> <color key="value" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> <connections> <action selector="clickCalloutHangupAction:" destination="uBF-Yq-Qo0" eventType="touchUpInside" id="Szo-xH-Mh6"/> </connections> </button> </subviews> <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <constraints> <constraint firstItem="aq5-rn-Dgo" firstAttribute="centerY" secondItem="jPI-nC-uAq" secondAttribute="centerY" id="0YK-rV-xIW"/> <constraint firstAttribute="trailing" secondItem="8Fe-E7-C5g" secondAttribute="trailing" constant="32" id="8NR-Fc-tPc"/> <constraint firstItem="aq5-rn-Dgo" firstAttribute="leading" secondItem="jPI-nC-uAq" secondAttribute="trailing" constant="32" id="8ht-5u-0y7"/> <constraint firstItem="2bC-B5-gMZ" firstAttribute="height" secondItem="aq5-rn-Dgo" secondAttribute="height" id="B0O-2O-7OG"/> <constraint firstAttribute="height" secondItem="aq5-rn-Dgo" secondAttribute="height" multiplier="10.1429" id="BR6-y6-ljY"/> <constraint firstItem="jPI-nC-uAq" firstAttribute="centerY" secondItem="sMv-Yh-W5N" secondAttribute="centerY" id="Fa3-MI-9zW"/> <constraint firstItem="aq5-rn-Dgo" firstAttribute="width" secondItem="jPI-nC-uAq" secondAttribute="width" multiplier="1.07143" id="Jzm-Kq-s1B"/> <constraint firstItem="aq5-rn-Dgo" firstAttribute="top" secondItem="8Fe-E7-C5g" secondAttribute="bottom" constant="50" id="aM7-YH-wta"/> <constraint firstItem="aq5-rn-Dgo" firstAttribute="height" secondItem="jPI-nC-uAq" secondAttribute="height" id="dri-gY-bvB"/> <constraint firstItem="jPI-nC-uAq" firstAttribute="leading" secondItem="sMv-Yh-W5N" secondAttribute="leading" constant="32" id="eUw-x2-5HY"/> <constraint firstItem="2bC-B5-gMZ" firstAttribute="leading" secondItem="aq5-rn-Dgo" secondAttribute="trailing" constant="32" id="eu1-g4-zxI"/> <constraint firstAttribute="trailing" secondItem="2bC-B5-gMZ" secondAttribute="trailing" constant="32" id="fzR-kq-9dw"/> <constraint firstItem="2bC-B5-gMZ" firstAttribute="centerY" secondItem="aq5-rn-Dgo" secondAttribute="centerY" id="jQf-ae-vvC"/> <constraint firstItem="8Fe-E7-C5g" firstAttribute="leading" secondItem="sMv-Yh-W5N" secondAttribute="leading" constant="32" id="p4O-md-aUe"/> <constraint firstItem="2bC-B5-gMZ" firstAttribute="width" secondItem="aq5-rn-Dgo" secondAttribute="width" id="w2D-Ia-3nQ"/> </constraints> </view> </subviews> <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> @@ -1297,6 +1389,7 @@ <constraint firstItem="YwB-6z-DKL" firstAttribute="leading" secondItem="PYB-vu-Xcw" secondAttribute="leading" id="135-mO-STg"/> <constraint firstItem="7Gq-77-ypg" firstAttribute="top" secondItem="NRj-hs-uOI" secondAttribute="bottom" priority="751" constant="37" id="4Dh-L5-Wxp"/> <constraint firstItem="YwB-6z-DKL" firstAttribute="centerX" secondItem="PYB-vu-Xcw" secondAttribute="centerX" id="58C-Bi-adb"/> <constraint firstItem="3qm-Zv-a7S" firstAttribute="top" secondItem="sMv-Yh-W5N" secondAttribute="bottom" id="5fc-VK-Tfj"/> <constraint firstItem="dTs-1h-o4p" firstAttribute="centerX" secondItem="PYB-vu-Xcw" secondAttribute="centerX" id="7Nq-GR-ypc"/> <constraint firstItem="NRj-hs-uOI" firstAttribute="trailing" secondItem="1FE-Su-4U4" secondAttribute="trailing" id="9po-jh-PJt"/> <constraint firstAttribute="trailing" secondItem="NRj-hs-uOI" secondAttribute="trailing" id="G3Q-MC-BpN"/> @@ -1306,6 +1399,7 @@ <constraint firstItem="1FE-Su-4U4" firstAttribute="top" secondItem="dTs-1h-o4p" secondAttribute="bottom" id="Qae-km-Xxm"/> <constraint firstItem="NRj-hs-uOI" firstAttribute="centerY" secondItem="yYv-tJ-QCV" secondAttribute="centerY" id="TGA-a5-AUm"/> <constraint firstItem="nkn-oC-NfP" firstAttribute="top" secondItem="heE-pR-PSR" secondAttribute="bottom" id="Tn0-Se-wHE"/> <constraint firstItem="sMv-Yh-W5N" firstAttribute="top" secondItem="7Gq-77-ypg" secondAttribute="top" id="TvP-3j-NV3"/> <constraint firstItem="nkn-oC-NfP" firstAttribute="leading" secondItem="PYB-vu-Xcw" secondAttribute="leading" id="YSp-TA-bZd"/> <constraint firstItem="yYv-tJ-QCV" firstAttribute="centerX" secondItem="YwB-6z-DKL" secondAttribute="centerX" id="Yt6-5R-nAw"/> <constraint firstItem="1FE-Su-4U4" firstAttribute="top" secondItem="NRj-hs-uOI" secondAttribute="bottom" id="aO9-KQ-MPh"/> @@ -1314,6 +1408,7 @@ <constraint firstItem="3qm-Zv-a7S" firstAttribute="top" secondItem="gFl-PI-CLn" secondAttribute="bottom" id="fSZ-Xw-PGz"/> <constraint firstItem="gFl-PI-CLn" firstAttribute="leading" secondItem="PYB-vu-Xcw" secondAttribute="leading" id="hvI-bX-2fD"/> <constraint firstItem="3XK-Ur-ZIj" firstAttribute="leading" secondItem="PYB-vu-Xcw" secondAttribute="leading" constant="16" id="hya-DL-nrl"/> <constraint firstItem="sMv-Yh-W5N" firstAttribute="trailing" secondItem="PYB-vu-Xcw" secondAttribute="trailing" id="jzU-g2-HL3"/> <constraint firstItem="1FE-Su-4U4" firstAttribute="leading" secondItem="PYB-vu-Xcw" secondAttribute="leading" id="mfp-Y3-aJF"/> <constraint firstItem="7Gq-77-ypg" firstAttribute="leading" secondItem="PYB-vu-Xcw" secondAttribute="leading" id="nIY-1B-8KJ"/> <constraint firstItem="NRj-hs-uOI" firstAttribute="leading" secondItem="PYB-vu-Xcw" secondAttribute="leading" id="opo-g8-z05"/> @@ -1323,18 +1418,23 @@ <constraint firstAttribute="trailing" secondItem="gFl-PI-CLn" secondAttribute="trailing" id="vZX-0k-C1e"/> <constraint firstItem="3XK-Ur-ZIj" firstAttribute="top" secondItem="2bL-GF-xWw" secondAttribute="bottom" constant="55" id="vyg-ls-OTR"/> <constraint firstItem="Yrc-c9-rvb" firstAttribute="centerX" secondItem="PYB-vu-Xcw" secondAttribute="centerX" id="y5l-xh-jsd"/> <constraint firstItem="sMv-Yh-W5N" firstAttribute="leading" secondItem="PYB-vu-Xcw" secondAttribute="leading" id="yPz-fc-ra1"/> </constraints> </view> <navigationItem key="navigationItem" id="vpB-aG-zb3"/> <connections> <outlet property="answerButton" destination="2bC-B5-gMZ" id="T42-Dl-1mx"/> <outlet property="bottomView" destination="7Gq-77-ypg" id="kLP-FN-Tvv"/> <outlet property="callOutAlertLabel" destination="8Fe-E7-C5g" id="h1w-BY-5fi"/> <outlet property="captureButton" destination="wEO-O3-gSJ" id="ABn-Ub-QEs"/> <outlet property="cloudBtn" destination="WYB-ca-Ox6" id="E4S-1L-4uS"/> <outlet property="cloudTip" destination="wXb-RI-dLd" id="bCu-fP-8IF"/> <outlet property="controlButton" destination="fUI-tR-jyG" id="uqI-1T-h8V"/> <outlet property="currentHDStatus" destination="oNR-gT-NPm" id="STe-rh-VhG"/> <outlet property="emptyButton" destination="MqM-GF-jSr" id="jD7-hz-yfd"/> <outlet property="hangUpButton" destination="jPI-nC-uAq" id="WAF-xK-pJI"/> <outlet property="highButton" destination="skK-Ar-y6h" id="jbk-j5-fCX"/> <outlet property="ignoreButton" destination="aq5-rn-Dgo" id="0J6-cC-KP5"/> <outlet property="largeBackButton" destination="nkn-oC-NfP" id="kwo-DU-hgk"/> <outlet property="largeButton" destination="lTh-qe-8pV" id="feK-gX-fjt"/> <outlet property="largeTitleLabel" destination="2bL-GF-xWw" id="mev-Ko-lDT"/> @@ -1358,6 +1458,7 @@ <outlet property="qualityButton" destination="JEB-Q6-XNh" id="z41-pC-jcF"/> <outlet property="qualityView" destination="dTs-1h-o4p" id="cwe-H0-P0z"/> <outlet property="scrollView" destination="NRj-hs-uOI" id="eoY-a5-7Nt"/> <outlet property="scrollViewTopMargin" destination="PXn-FW-8dk" id="ROR-nh-sCL"/> <outlet property="scrollViewWHRatio" destination="FHe-T4-BRJ" id="VDa-Ms-cmg"/> <outlet property="speakImageView" destination="SdD-om-sXP" id="vut-X7-g34"/> <outlet property="streamPlayBtn" destination="X2B-Km-Emd" id="wjk-zR-FDC"/> @@ -1367,6 +1468,7 @@ <outlet property="talkView" destination="IqL-eW-ddl" id="hTy-iu-CUA"/> <outlet property="talkViewContraint" destination="IcU-Zd-4MD" id="vMR-vH-k7J"/> <outlet property="toolBar" destination="1FE-Su-4U4" id="CTH-vb-IfL"/> <outlet property="videoCallOutView" destination="sMv-Yh-W5N" id="RBZ-2y-YXA"/> <outlet property="voiceButton" destination="tAW-X2-E9K" id="N5O-Qz-qd6"/> <outlet property="zoomSizeLabel" destination="3XK-Ur-ZIj" id="vYD-CM-uoE"/> </connections> @@ -1948,6 +2050,8 @@ <outlet property="hdSwitch" destination="KBU-5V-GwK" id="lf0-8b-Qeq"/> <outlet property="nVersionLabel" destination="bvq-5A-JW8" id="dqy-G7-H05"/> <outlet property="nameLabel" destination="8Y3-zX-Cnw" id="w24-b8-OXa"/> <outlet property="privacyMaskSwitch" destination="rv3-Sh-Gib" id="Cmw-V7-tnn"/> <outlet property="rightArrowImg" destination="PR2-qZ-cVt" id="g4z-ld-DK0"/> <outlet property="serialLabel" destination="9VV-np-Xv9" id="Vvo-rR-zdY"/> <outlet property="updateImageView" destination="A8K-Mk-xFS" id="qqg-Hg-1rw"/> <outlet property="videoSwitch" destination="eKv-yq-ycl" id="HD9-JX-sBQ"/> @@ -1977,6 +2081,17 @@ <action selector="HDChanged:" destination="3ZH-14-C2h" eventType="valueChanged" id="fHK-6L-vL6"/> </connections> </switch> <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" id="rv3-Sh-Gib"> <rect key="frame" x="0.0" y="0.0" width="51" height="31"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <connections> <action selector="privacyMasking:" destination="3ZH-14-C2h" eventType="valueChanged" id="Tj0-Ec-Wey"/> </connections> </switch> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="hdl_ez_list_next" id="PR2-qZ-cVt"> <rect key="frame" x="0.0" y="0.0" width="42" height="49"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> </imageView> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="设备名" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="8Y3-zX-Cnw"> <rect key="frame" x="0.0" y="0.0" width="72" height="21"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> @@ -2486,6 +2601,7 @@ <image name="chuanshujilu--2" width="24" height="24"/> <image name="cloud" width="32" height="32"/> <image name="duijiangji" width="39" height="39"/> <image name="hdl_ez_list_next" width="8" height="8"/> <image name="icon_download_fill" width="20" height="20"/> <image name="large_back_btn" width="10" height="19"/> <image name="logo" width="210" height="94"/> EZDemo/HDLEZDemo/HDLEZDemo/ViewController.m
@@ -10,7 +10,7 @@ //萤石门锁spk #define HDLEZ_DOOR_SPK @"security.door.ezviz" #define HDLEZ_DEVICEID @"1644223814848573441" #define HDLEZ_DEVICEID @"1670680809556606978" //#define HDLEZ_DEVICESERIAL @"K36229010" #define HDLEZ_DEVICESERIAL @"J92513662" EZDemo/HDLEZDemo/HDLEZDemo/libEZSDK.aBinary files differ
EZDemo/HDLEZDemo/HDLEZDemo/resources/en.lproj/Localizable.strings
@@ -107,6 +107,10 @@ "device_temp_copied"="Copied"; "device_temp_long_tap_copy"="Long press to copy"; "device_temp_sure_to_delete"="Are you sure to delete the temporary password?"; "device_callout_alert_message" = "Doorbell on call..."; "device_callout_hang_up" = "Hang up"; "device_callout_ignore" = "Ignore"; "device_callout_answer" = "Answer"; "dmessage_title"="Message"; "message_read"="Mark as Read"; @@ -140,6 +144,9 @@ "setting_secure_code"="Encrypt Video and Picture"; "setting_cloud_storage"="Cloud Storage"; "setting_hardware_decoding" = "Hardware decoding"; "setting_privacy_masking" = "Privacy masking"; "setting_sd_card_formatting" = "SD card formatting"; "setting_formatting_alert_message" = "You are currently formatting an SD card"; "setting_opration_fail"="Operation failed."; "setting_opration_success"="Completed."; "setting_switching"="Switching. Please wait..."; EZDemo/HDLEZDemo/HDLEZDemo/resources/zh-Hans.lproj/Localizable.strings
@@ -67,6 +67,10 @@ "device_account_pw_empty"="帐号或密码不能为空"; "device_lan_preview_title"="局域网预览"; "device_add_device_qr_code"="设备二维码"; "device_callout_alert_message" = "门铃呼叫中..."; "device_callout_hang_up" = "挂断"; "device_callout_ignore" = "忽略"; "device_callout_answer" = "接听"; "device_open"="开门"; "device_open_success"="开门成功!"; @@ -141,6 +145,9 @@ "setting_secure_code"="视频图片加密"; "setting_cloud_storage"="云存储"; "setting_hardware_decoding" = "硬解码"; "setting_privacy_masking" = "隐私遮蔽"; "setting_sd_card_formatting" = "SD卡格式化"; "setting_formatting_alert_message" = "您当前正在格式化SD卡"; "setting_opration_fail"="操作失败"; "setting_opration_success"="操作成功"; "setting_switching"="正在切换,请稍候..."; EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceTableViewController.m
@@ -192,6 +192,9 @@ EZDeviceInfo *deviceInfo = sender; if ([[segue destinationViewController] isKindOfClass:[EZLivePlayViewController class]]) { ((EZLivePlayViewController *)[segue destinationViewController]).deviceInfo = deviceInfo; #warning mock test NSLog(@"#######跳转到设备详情页"); ((EZLivePlayViewController *)[segue destinationViewController]).isShowAlert = YES; } else if ([[segue destinationViewController] isKindOfClass:[EZPlaybackViewController class]]) { ((EZPlaybackViewController *)[segue destinationViewController]).deviceInfo = deviceInfo; } else if ([[segue destinationViewController] isKindOfClass:[EZMessageListViewController class]]) { EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.h
@@ -15,9 +15,11 @@ @property (nonatomic, strong) EZDeviceInfo *deviceInfo; @property (nonatomic, copy) NSString *hubCoDevSerial; @property (nonatomic) NSInteger cameraIndex; @property (nonatomic, assign) BOOL isShowAlert; // 展示呼叫弹框 @property (nonatomic, copy) NSString *deviceSerial;//设备序列号 @property (nonatomic, copy) NSString *deviceId;//设备id @property (nonatomic, assign) BOOL isVideoDoorLock; // 是否为视频门锁 - (void)imageSavedToPhotosAlbum:(UIImage *)image EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m
@@ -89,6 +89,7 @@ @property (nonatomic, strong) EZCameraInfo *cameraInfo; @property (weak, nonatomic) IBOutlet UILabel *streamTypeLabel; @property (weak, nonatomic) IBOutlet UIScrollView *scrollView; @property (weak, nonatomic) IBOutlet NSLayoutConstraint *scrollViewTopMargin; @property (weak, nonatomic) IBOutlet UILabel *zoomSizeLabel; @property (weak, nonatomic) IBOutlet NSLayoutConstraint *scrollViewWHRatio; // 滚动视图宽高比 @property (nonatomic, strong) HDLEZButton *unlockButton;//开锁按钮 @@ -96,6 +97,13 @@ @property (nonatomic, copy) NSString *streamToken; @property (nonatomic, strong) UIView *doorPlayerView;//门锁播放view // 呼叫视图相关控件 @property (weak, nonatomic) IBOutlet UIView *videoCallOutView; // 呼叫弹框 @property (weak, nonatomic) IBOutlet UILabel *callOutAlertLabel; // 提示语言 @property (weak, nonatomic) IBOutlet UIButton *hangUpButton; // 挂断按钮 @property (weak, nonatomic) IBOutlet UIButton *ignoreButton; // 忽略按钮 @property (weak, nonatomic) IBOutlet UIButton *answerButton; // 接听按钮 @end @@ -333,6 +341,7 @@ self.captureButton.enabled = NO; self.localRecordButton.enabled = NO; self.streamPlayBtn.hidden = YES; self.isShowAlert = YES; if (_url) { @@ -464,6 +473,14 @@ // [self.controlButton setImage:[UIImage imageNamed:@"hdl_ez_ic_unlock"] forState:UIControlStateNormal]; // [self.controlButton setTitle:NSLocalizedString(@"device_open", @"开门") forState:UIControlStateNormal]; } self.callOutAlertLabel.text = HDLEZLocallizedString(@"device_callout_alert_message"); [self.hangUpButton setTitle:HDLEZLocallizedString(@"device_callout_hang_up") forState:UIControlStateNormal]; [self.ignoreButton setTitle:HDLEZLocallizedString(@"device_callout_ignore") forState:UIControlStateNormal]; [self.answerButton setTitle:HDLEZLocallizedString(@"device_callout_answer") forState:UIControlStateNormal]; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(10 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ self.isShowAlert = NO; }); } /*开锁 @@ -536,7 +553,7 @@ //} - (UIInterfaceOrientationMask)supportedInterfaceOrientations { if (@available(iOS 16.0, *)) { if (_landscape) { if (_landscape && !self.isVideoDoorLock) { //横屏 return UIInterfaceOrientationMaskLandscape; } else { @@ -551,6 +568,7 @@ - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { if (self.isVideoDoorLock) return; self.navigationController.navigationBarHidden = NO; self.toolBar.hidden = NO; self.largeBackButton.hidden = YES; @@ -863,8 +881,27 @@ [self largeBack:self.largeBackButton]; return; } NSLog(@"######进入横屏!"); _landscape = YES; if (self.isVideoDoorLock) { self.navigationController.navigationBarHidden = YES; self.localRecrodContraint.constant = 50; self.toolBar.hidden = NO; self.largeTitleLabel.hidden = NO; self.largeBackButton.hidden = YES; self.bottomView.hidden = YES; [self.scrollView setTranslatesAutoresizingMaskIntoConstraints:NO]; [self.toolBar setTranslatesAutoresizingMaskIntoConstraints:NO]; [NSLayoutConstraint deactivateConstraints:@[self.scrollViewTopMargin, self.scrollViewWHRatio]]; self.scrollViewTopMargin = [NSLayoutConstraint constraintWithItem:self.scrollView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-HDLEZ_APP_STATUS_BAR_HEIGHT]; self.scrollViewWHRatio = [NSLayoutConstraint constraintWithItem:self.scrollView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.scrollView attribute:NSLayoutAttributeHeight multiplier:HDLEZ_APP_SCREEN_WIDTH/(HDLEZ_APP_SCREEN_HEIGHT - 37.) constant:0]; [NSLayoutConstraint activateConstraints:@[self.scrollViewTopMargin, self.scrollViewWHRatio]]; dispatch_async(dispatch_get_main_queue(), ^{ [self.scrollView layoutIfNeeded]; [self.toolBar layoutIfNeeded]; }); return; } if (@available(iOS 16.0, *)) { if (self.navigationController) { dispatch_async(dispatch_get_main_queue(), ^{ @@ -892,6 +929,26 @@ { NSLog(@"######收回横屏!"); _landscape = NO; if (self.isVideoDoorLock) { self.navigationController.navigationBarHidden = NO; self.toolBar.hidden = NO; self.largeBackButton.hidden = YES; self.bottomView.hidden = NO; self.largeTitleLabel.hidden = YES; self.localRecrodContraint.constant = 10; [self.scrollView setTranslatesAutoresizingMaskIntoConstraints:NO]; [self.toolBar setTranslatesAutoresizingMaskIntoConstraints:NO]; [NSLayoutConstraint deactivateConstraints:@[self.scrollViewTopMargin,self.scrollViewWHRatio]]; self.scrollViewTopMargin = [NSLayoutConstraint constraintWithItem:self.scrollView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0]; self.scrollViewWHRatio = [NSLayoutConstraint constraintWithItem:self.scrollView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.scrollView attribute:NSLayoutAttributeHeight multiplier:16/9. constant:0]; [NSLayoutConstraint activateConstraints:@[self.scrollViewTopMargin,self.scrollViewWHRatio]]; dispatch_async(dispatch_get_main_queue(), ^{ [self.scrollView layoutIfNeeded]; [self.toolBar layoutIfNeeded]; }); return; } if (@available(iOS 16.0, *)) { if (self.navigationController) { dispatch_async(dispatch_get_main_queue(), ^{ @@ -1292,6 +1349,31 @@ _isPressed = !_isPressed; } - (IBAction)clickCalloutHangupAction:(id)sender { [UIView dd_showMessage:@"挂断开发中..."]; } - (IBAction)clickCalloutIgnoreAction:(id)sender { [UIView dd_showMessage:@"忽略开发中..."]; } - (IBAction)clickCalloutAnswerAction:(id)sender { [UIView dd_showMessage:@"接听开发中..."]; } #pragma mark - Publish Methods /// 展示呼叫弹框 - (void)showCallOutAlertView { self.videoCallOutView.hidden = NO; } /// 隐藏呼叫弹框 - (void)hiddenCallOutAlertView { self.videoCallOutView.hidden = YES; } #pragma mark - Private Methods - (void) checkMicPermissionResult:(void(^)(BOOL enable)) retCb @@ -1547,6 +1629,16 @@ } } #pragma Setter - (void)setIsShowAlert:(BOOL)isShowAlert { _isShowAlert = isShowAlert; if (isShowAlert) { [self showCallOutAlertView]; } else { [self hiddenCallOutAlertView]; } } - (BOOL)prefersHomeIndicatorAutoHidden { return YES; } EZSDK/EZSDK/EZ/UIViewControllers/EZSettingViewController.m
@@ -26,6 +26,8 @@ @property (nonatomic, weak) IBOutlet UISwitch *videoSwitch; @property (nonatomic, weak) IBOutlet UISwitch *actionSwitch; @property (weak, nonatomic) IBOutlet UISwitch *hdSwitch; @property (weak, nonatomic) IBOutlet UISwitch *privacyMaskSwitch; @property (weak, nonatomic) IBOutlet UIImageView *rightArrowImg; @property (nonatomic, weak) IBOutlet UILabel *nameLabel; @property (nonatomic, weak) IBOutlet UILabel *serialLabel; @property (nonatomic, weak) IBOutlet UILabel *currentVersionLabel; @@ -78,6 +80,8 @@ self.videoSwitch.on = self.deviceInfo.isEncrypt; } [_settingList addObject:@[NSLocalizedString(@"setting_hardware_decoding", @"硬解码")]]; [_settingList addObject:@[NSLocalizedString(@"setting_privacy_masking", @"隐私遮蔽")]]; [_settingList addObject:@[NSLocalizedString(@"setting_sd_card_formatting", @"SD卡格式化")]]; [_settingList addObject:@[NSLocalizedString(@"delete", @"删除")]]; self.serialLabel.text = self.deviceInfo.deviceSerial; @@ -214,6 +218,27 @@ } else if (indexPath.section == 6) { [cell.contentView addSubview:self.privacyMaskSwitch]; [self.privacyMaskSwitch mas_remakeConstraints:^(MASConstraintMaker *make) { make.trailing.mas_equalTo(@(-17)); make.centerY.mas_equalTo(cell.contentView.mas_centerY); make.width.mas_equalTo(@51); make.height.mas_equalTo(@31); }]; self.privacyMaskSwitch.on = !self.privacyMaskSwitch.on; } else if (indexPath.section == 7) { [cell.contentView addSubview:self.rightArrowImg]; [self.rightArrowImg mas_remakeConstraints:^(MASConstraintMaker *make) { make.trailing.mas_equalTo(@(-17)); make.centerY.mas_equalTo(cell.contentView.mas_centerY); make.width.mas_equalTo(@20); make.height.mas_equalTo(@20); }]; } else if (indexPath.section == 8) { cell.textLabel.textColor = [UIColor redColor]; cell.textLabel.textAlignment = NSTextAlignmentCenter; } @@ -277,10 +302,27 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES]; if (indexPath.section == 6) if (indexPath.section == 8) { UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:NSLocalizedString(@"cancel", @"取消") destructiveButtonTitle:NSLocalizedString(@"delete",@"删除") otherButtonTitles:nil]; [actionSheet showInView:self.view]; // UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:NSLocalizedString(@"cancel", @"取消") destructiveButtonTitle:NSLocalizedString(@"delete",@"删除") otherButtonTitles:nil]; // [actionSheet showInView:self.view]; __weak __typeof(self)weakSelf = self; UIAlertController *actionSheet = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet]; [actionSheet addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"cancel", @"取消") style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) { [weakSelf dismissViewControllerAnimated:YES completion:^{ }]; }]]; [actionSheet addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"delete",@"删除") style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) { [weakSelf deleteCurrentDevice]; [weakSelf dismissViewControllerAnimated:YES completion:^{ }]; }]]; [self presentViewController:actionSheet animated:YES completion:nil]; } // else if (indexPath.section == 5) // { @@ -294,9 +336,18 @@ { [self performSegueWithIdentifier:@"go2Upgrade" sender:nil]; } else if (indexPath.section == 1) else if (indexPath.section == 7) { UIAlertController *alert=[UIAlertController alertControllerWithTitle:HDLEZLocallizedString(@"alert_title") message:HDLEZLocallizedString(@"setting_formatting_alert_message") preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *cancle=[UIAlertAction actionWithTitle:HDLEZLocallizedString(@"device_temp_cancle") style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { }]; __weak __typeof(self)weakSelf = self; UIAlertAction *sure=[UIAlertAction actionWithTitle:HDLEZLocallizedString(@"device_temp_sure") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [UIView dd_showMessage:@"功能开发中..."]; }]; [alert addAction:cancle]; [alert addAction:sure]; [self presentViewController:alert animated:YES completion:nil]; } } @@ -353,34 +404,13 @@ } #pragma mark - UIActionSheetDelegate Methods - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { if(buttonIndex == 0) { - (void)deleteCurrentDevice { __weak MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; hud.labelText = NSLocalizedString(@"message_deleting", @"正在删除,请稍候..."); // [EZOPENSDK deleteDevice:self.deviceInfo.deviceSerial completion:^(NSError *error) { // if(!error) // { // [hud hide:YES]; // NSArray *viewControllers = self.navigationController.viewControllers; // for (UIViewController *vc in viewControllers) // { // if([vc isKindOfClass:[EZDeviceTableViewController class]]) // { // ((EZDeviceTableViewController *)vc).needRefresh = YES; // [self.navigationController popToViewController:vc animated:YES]; // break; // } // } // } // }]; [EZHttpUtil.sharedManager deleteDeviceByHDL:self.deviceInfo.deviceSerial completion:^(ResponseData *responseData) { [hud hide:YES]; if(responseData.success) { if(responseData.success) { NSArray *viewControllers = self.navigationController.viewControllers; for (UIViewController *vc in viewControllers) { @@ -393,14 +423,58 @@ } }else{ NSString *mes = [NSString stringWithFormat:@"%@(%@)",NSLocalizedString(@"setting_opration_fail", @"操作失败"),responseData.code]; [self.view makeToast:mes duration:2.0 position:@"center"]; } }]; } } //- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex //{ // if(buttonIndex == 0) // { // __weak MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; // hud.labelText = NSLocalizedString(@"message_deleting", @"正在删除,请稍候..."); //// [EZOPENSDK deleteDevice:self.deviceInfo.deviceSerial completion:^(NSError *error) { //// if(!error) //// { //// [hud hide:YES]; //// NSArray *viewControllers = self.navigationController.viewControllers; //// for (UIViewController *vc in viewControllers) //// { //// if([vc isKindOfClass:[EZDeviceTableViewController class]]) //// { //// ((EZDeviceTableViewController *)vc).needRefresh = YES; //// [self.navigationController popToViewController:vc animated:YES]; //// break; //// } //// } //// } //// }]; // // [EZHttpUtil.sharedManager deleteDeviceByHDL:self.deviceInfo.deviceSerial completion:^(ResponseData *responseData) { // [hud hide:YES]; // if(responseData.success) // { // NSArray *viewControllers = self.navigationController.viewControllers; // for (UIViewController *vc in viewControllers) // { // if([vc isKindOfClass:[EZDeviceTableViewController class]]) // { // ((EZDeviceTableViewController *)vc).needRefresh = YES; // [self.navigationController popToViewController:vc animated:YES]; // break; // } // } // }else{ // NSString *mes = [NSString stringWithFormat:@"%@(%@)",NSLocalizedString(@"setting_opration_fail", @"操作失败"),responseData.code]; // // [self.view makeToast:mes duration:2.0 position:@"center"]; // } // }]; // // // } //} #pragma mark - UIAlertViewDelegate Methods @@ -465,6 +539,11 @@ [[NSUserDefaults standardUserDefaults] synchronize]; } - (IBAction)privacyMasking:(id)sender { UISwitch *pmSwitch = (UISwitch*)sender; BOOL status = pmSwitch.isOn; } - (IBAction)encryptChanged:(id)sender { if(!self.videoSwitch.on) EZSDK/EZSDK/EZSDK.m
@@ -237,6 +237,7 @@ EZLivePlayViewController *vc = [ezMainStoryBoard instantiateViewControllerWithIdentifier:@"EZLivePlayViewController"]; vc.deviceId=deviceId; vc.deviceSerial=deviceSerial; vc.isVideoDoorLock = [deviceType isEqualToString:HDLEZ_DOOR_SPK]; [[self getCurrentVC] setNavigationBarHidden:NO]; [[self getCurrentVC].navigationBar setHidden:NO]; [[self getCurrentVC] pushViewController:vc animated:YES];