From 3698c13aba988cd3e41b91b255e1c682c057e565 Mon Sep 17 00:00:00 2001
From: chenqiyang <1406175257@qq.com>
Date: 星期四, 23 三月 2023 11:49:58 +0800
Subject: [PATCH] 1.新增历史记录相关页面及功能 2.修改配网为热点配网 3.设备列表增加过滤门锁功能 4.增加添加设备通知功能

---
 EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m |  308 +++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 251 insertions(+), 57 deletions(-)

diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m
index a830842..f648436 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m
@@ -23,7 +23,7 @@
 #import "EZStreamPlayer.h"
 #import "MBProgressHUD.h"
 #import "EZPMPlayPrivateTokenInfo.h"
-
+#import "HDLEZAlertInputView.h"
 #define MinimumZoomScale 1.0
 #define MaximumZoomScale 4.0
 
@@ -90,6 +90,8 @@
 @property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
 @property (weak, nonatomic) IBOutlet UILabel *zoomSizeLabel;
 
+@property (nonatomic, strong) HDLEZButton *unlockButton;//寮�閿佹寜閽�
+
 @property (nonatomic, copy) NSString *streamToken;
 
 @end
@@ -112,6 +114,197 @@
     self.ptzView.hidden = YES;
     self.talkView.hidden = YES;
     
+    if (!self.deviceInfo) {//濡傛灉娌℃湁浼燿eviceInfo,闇�涓诲姩鑾峰彇
+        [self getDeviceInfo];
+        return;
+    }
+    
+    //鍒濆鍖栫浉鍏虫暟鎹�
+    [self initialData];
+    
+//    self.talkButton.enabled = self.deviceInfo.isSupportTalk;
+//    self.controlButton.enabled = self.deviceInfo.isSupportPTZ;
+//    self.captureButton.enabled = NO;
+//    self.localRecordButton.enabled = NO;
+//    self.streamPlayBtn.hidden = YES;
+//
+//    if (_url)
+//    {
+//        _player = [EZOPENSDK createPlayerWithUrl:_url];
+//    }
+//    else if([self.deviceInfo.deviceType containsString:@"CAS"]) //hub
+//    {
+//        _cameraInfo = [[EZCameraInfo alloc]init]; //鍏煎demo涔嬪墠鐨勪笟鍔¢�昏緫锛屾墜鍔ㄥ~鍏呬簡cameraInfo锛屽疄闄呭紑鍙戠洿鎺ヤ紶鍏ュ簭鍒楀彿鍜岄�氶亾鍙风敓鎴怑ZPlayer鍗冲彲
+//        _cameraInfo.deviceSerial = _hubCoDevSerial;
+//        _cameraInfo.cameraNo = _cameraIndex;
+//        _player = [EZOPENSDK createPlayerWithDeviceSerial:_cameraInfo.deviceSerial cameraNo:_cameraInfo.cameraNo];
+//    }
+//    else
+//    {
+//        _cameraInfo = [self.deviceInfo.cameraInfo dd_objectAtIndex:_cameraIndex];
+//        _player = [EZOPENSDK createPlayerWithDeviceSerial:_cameraInfo.deviceSerial cameraNo:_cameraInfo.cameraNo];
+//        _talkPlayer = [EZOPENSDK createPlayerWithDeviceSerial:_cameraInfo.deviceSerial cameraNo:_cameraInfo.cameraNo];
+//        if (_cameraInfo.videoLevel == 2)
+//        {
+//            [self.qualityButton setTitle:NSLocalizedString(@"device_quality_high", @"楂樻竻") forState:UIControlStateNormal];
+//        }
+//        else if (_cameraInfo.videoLevel == 1)
+//        {
+//            [self.qualityButton setTitle:NSLocalizedString(@"device_quality_median", @"鍧囪 ") forState:UIControlStateNormal];
+//        }
+//        else
+//        {
+//            [self.qualityButton setTitle:NSLocalizedString(@"device_quality_low",@"娴佺晠") forState:UIControlStateNormal];
+//        }
+//    }
+//    if (_cameraInfo.cameraNo == 0 || [self.deviceInfo.deviceType containsString:@"CAS"]) { //涓嶆敮鎸佹竻鏅板害鍒囨崲
+//        self.qualityButton.hidden = YES;
+//    }
+//
+//    if (self.deviceInfo.cameraInfo.count > 1) {
+//        self.title = [NSString stringWithFormat:@"Camera %ld", (long)_cameraInfo.cameraNo];
+//    }
+//    else {
+//        self.title = _deviceInfo.deviceName;
+//    }
+//    self.largeTitleLabel.text = self.title;
+//    [self hidenWatchFunc];
+//
+//#if DEBUG
+//    if (!_url)
+//    {
+//        //鎶撳浘鎺ュ彛婕旂ず浠g爜
+//        [EZOPENSDK captureCamera:_cameraInfo.deviceSerial cameraNo:_cameraInfo.cameraNo completion:^(NSString *url, NSError *error) {
+//            NSLog(@"[%@] capture cameraNo is [%d] url is %@, error is %@", _cameraInfo.deviceSerial, (int)_cameraInfo.cameraNo, url, error);
+//        }];
+//    }
+//#endif
+//
+//    _player.delegate = self;
+//    _talkPlayer.delegate = self;
+//    //鍒ゆ柇璁惧鏄惁鍔犲瘑锛屽姞瀵嗗氨浠巇emo鐨勫唴瀛樹腑鑾峰彇璁惧楠岃瘉鐮佸~鍏ュ埌鎾斁鍣ㄧ殑楠岃瘉鐮佹帴鍙i噷锛屾湰demo鍙鐞嗗唴瀛樺瓨鍌紝鏈湴鎸佷箙鍖栧瓨鍌ㄧ敤鎴疯嚜琛屽畬鎴�
+//    if (self.deviceInfo.isEncrypt)
+//    {
+//        NSString *verifyCode = [[GlobalKit shareKit].deviceVerifyCodeBySerial objectForKey:self.deviceInfo.deviceSerial];
+//        [_player setPlayVerifyCode:verifyCode];
+//        [_talkPlayer setPlayVerifyCode:verifyCode];
+//    }
+//    [_player setPlayerView:_playerView];
+//    BOOL hdStatus = [[NSUserDefaults standardUserDefaults] boolForKey:[NSString stringWithFormat:@"EZVideoPlayHardDecodingStatus_%@", self.deviceInfo.deviceSerial]];
+//    [_player setHDPriority:hdStatus];
+//    [_player startRealPlay];
+//
+//    if(!_loadingView)
+//        _loadingView = [[HIKLoadView alloc] initWithHIKLoadViewStyle:HIKLoadViewStyleSqureClockWise];
+//    [self.view insertSubview:_loadingView aboveSubview:self.playerView];
+//    [_loadingView mas_makeConstraints:^(MASConstraintMaker *make) {
+//        make.width.height.mas_equalTo(@14);
+//        make.centerX.mas_equalTo(self.playerView.mas_centerX);
+//        make.centerY.mas_equalTo(self.playerView.mas_centerY);
+//    }];
+//    [self.loadingView startSquareClcokwiseAnimation];
+//
+//    self.largeBackButton.hidden = YES;
+//    _isOpenSound = YES;
+//
+//    [self.controlButton dd_centerImageAndTitle];
+//    [self.talkButton dd_centerImageAndTitle];
+//    [self.captureButton dd_centerImageAndTitle];
+//    [self.localRecordButton dd_centerImageAndTitle];
+//
+//    [self.voiceButton setImage:[UIImage imageNamed:@"preview_unvoice_btn_sel"] forState:UIControlStateHighlighted];
+//    [self addLine];
+//
+//    self.localRecordLabel.layer.borderColor = [UIColor whiteColor].CGColor;
+//    self.localRecordLabel.layer.cornerRadius = 12.0f;
+//    self.localRecordLabel.layer.borderWidth = 1.0f;
+//    self.localRecordLabel.clipsToBounds = YES;
+//    self.playButton.enabled = NO;
+//
+//
+//    self.scrollView.minimumZoomScale = MinimumZoomScale;
+//    self.scrollView.maximumZoomScale = MaximumZoomScale;
+//    self.scrollView.backgroundColor = [UIColor clearColor];
+//    self.scrollView.delegate = self;
+//    self.scrollView.showsHorizontalScrollIndicator = NO;
+//    self.scrollView.showsVerticalScrollIndicator = NO;
+//    self.scrollView.userInteractionEnabled = YES;
+//    self.scrollView.multipleTouchEnabled = YES;
+//    self.scrollView.pagingEnabled = NO;
+//
+//    if ([GlobalKit shareKit].deviceType==HDLEZDeviceType_Door) {//涓洪棬閿佹椂锛屽彧鏄剧ず楹﹀厠椋庡拰寮�闂ㄦ寜閽�
+//        self.captureButton.hidden=YES;
+//        self.localRecordButton.hidden=YES;
+//
+//        [self.controlButton setTitle:NSLocalizedString(@"device_open", @"寮�闂�") forState:UIControlStateNormal];
+//    }
+}
+
+- (void)viewDidAppear:(BOOL)animated {
+    [super viewDidAppear:animated];
+    self.navigationController.navigationBar.hidden = NO;//2021-02-01
+    self.ptzViewContraint.constant = self.bottomView.frame.size.height;
+    self.talkViewContraint.constant = self.ptzViewContraint.constant;
+}
+
+- (void)viewWillDisappear:(BOOL)animated {
+//    self.navigationController.navigationBarHidden = YES;//2021-02-01 娣诲姞闅愯棌navigationBarHidden
+    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(hideQualityView) object:nil];
+    //缁撴潫鏈湴褰曞儚
+    if(self.localRecordButton.selected)
+    {
+        [_player stopLocalRecordExt:^(BOOL ret) {
+            
+            NSLog(@"%d", ret);
+            
+            [_recordTimer invalidate];
+            _recordTimer = nil;
+            self.localRecordLabel.hidden = YES;
+            [self saveRecordToPhotosAlbum:_filePath];
+            _filePath = nil;
+        }];
+    }
+    
+    NSLog(@"viewWillDisappear");
+    [super viewWillDisappear:animated];
+}
+
+- (void)viewDidDisappear:(BOOL)animated
+{
+    NSLog(@"viewDidDisappear");
+    [super viewDidDisappear:animated];
+    [_player stopRealPlay];
+    if (_talkPlayer)
+    {
+        [_talkPlayer stopVoiceTalk];
+    }
+}
+
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+/*鑾峰彇璁惧淇℃伅
+ */
+-(void)getDeviceInfo{
+    //鑾峰彇璁惧淇℃伅
+    [EZOpenSDK getDeviceInfo:self.deviceSerial completion:^(EZDeviceInfo *deviceInfo, NSError *error) {
+        if(error)
+        {
+            NSLog(@"EZ 鏌ヨ璁惧淇℃伅澶辫触");
+            return;
+        }
+        if (deviceInfo) {
+            self.deviceInfo=deviceInfo;
+            [self initialData];
+        }
+    }];
+}
+
+/*鍒濆鍖栫浉鍏虫暟鎹�
+ */
+-(void)initialData{
     self.talkButton.enabled = self.deviceInfo.isSupportTalk;
     self.controlButton.enabled = self.deviceInfo.isSupportPTZ;
     self.captureButton.enabled = NO;
@@ -225,56 +418,64 @@
     if ([GlobalKit shareKit].deviceType==HDLEZDeviceType_Door) {//涓洪棬閿佹椂锛屽彧鏄剧ず楹﹀厠椋庡拰寮�闂ㄦ寜閽�
         self.captureButton.hidden=YES;
         self.localRecordButton.hidden=YES;
+        self.controlButton.hidden=YES;
         
-        [self.controlButton setTitle:NSLocalizedString(@"device_open", @"寮�闂�") forState:UIControlStateNormal];
-    }
-}
-
-- (void)viewDidAppear:(BOOL)animated {
-    [super viewDidAppear:animated];
-    self.navigationController.navigationBar.hidden = NO;//2021-02-01
-    self.ptzViewContraint.constant = self.bottomView.frame.size.height;
-    self.talkViewContraint.constant = self.ptzViewContraint.constant;
-}
-
-- (void)viewWillDisappear:(BOOL)animated {
-//    self.navigationController.navigationBarHidden = YES;//2021-02-01 娣诲姞闅愯棌navigationBarHidden
-    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(hideQualityView) object:nil];
-    //缁撴潫鏈湴褰曞儚
-    if(self.localRecordButton.selected)
-    {
-        [_player stopLocalRecordExt:^(BOOL ret) {
-            
-            NSLog(@"%d", ret);
-            
-            [_recordTimer invalidate];
-            _recordTimer = nil;
-            self.localRecordLabel.hidden = YES;
-            [self saveRecordToPhotosAlbum:_filePath];
-            _filePath = nil;
+        //閲嶈鎺у埗鍙版寜閽�
+        _unlockButton=[[HDLEZButton alloc] init];
+        [self.bottomView addSubview:_unlockButton];
+        [_unlockButton mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.top.left.right.bottom.equalTo( self.controlButton);
         }];
+        [_unlockButton setImage:[UIImage imageNamed:@"hdl_ez_ic_unlock_disable"] forState:UIControlStateNormal];
+        [_unlockButton setTitle:NSLocalizedString(@"device_open", @"寮�闂�") forState:UIControlStateNormal];
+        [_unlockButton dd_centerImageAndTitle];
+        [_unlockButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
+        _unlockButton.titleLabel.font=[UIFont systemFontOfSize:14];
+        [_unlockButton addTarget:self action:@selector(unlockDoor) forControlEvents:UIControlEventTouchUpInside];
+        _unlockButton.enabled=NO;
+//        self.controlButton.enabled=YES;
+//        [self.controlButton setImage:[UIImage imageNamed:@"hdl_ez_ic_unlock"] forState:UIControlStateNormal];
+//        [self.controlButton setTitle:NSLocalizedString(@"device_open", @"寮�闂�") forState:UIControlStateNormal];
     }
+}
+
+/*寮�閿�
+ */
+-(void)unlockDoor{
+    [HDLEZAlertInputView showInputAlertWithtitle:HDLEZLocallizedString(@"device_please_input_door_password") cancleTitle:HDLEZLocallizedString(@"device_temp_cancle") sureTitle:HDLEZLocallizedString(@"device_temp_sure") keyboardType:UIKeyboardTypeASCIICapableNumberPad cancleBlock:^{
+        
+    } sureBlock:^(NSString * _Nonnull content) {
+        HDLEZLog(@"鐐瑰嚮浜嗙‘璁わ細%@",content);
+        [MBProgressHUD showHUDAddedTo:self.view animated:YES];
+        __weak __typeof(self)weakSelf = self;
+        [[EZHttpUtil sharedManager] authLockByHDL:content deviceId:self.deviceId  completion:^(ResponseData * _Nonnull responseData) {
+            if (responseData.success) {
+                [[EZHttpUtil sharedManager] remoteOpenByHDL:self.streamToken deviceId:self.deviceId completion:^(ResponseData * _Nonnull responseData) {
+                    [MBProgressHUD hideHUDForView:weakSelf.view animated:YES];
+                    if (responseData.success) {
+                        [weakSelf.view makeToast:HDLEZLocallizedString(@"device_open_success")
+                                        duration:1.5
+                                        position:@"center"];
+
+                    }else{
+                        [weakSelf.view makeToast:responseData.message
+                                        duration:1.5
+                                        position:@"center"];
+                    }
+                }];
+            }else{
+                [MBProgressHUD hideHUDForView:weakSelf.view animated:YES];
+                [weakSelf.view makeToast:responseData.message
+                                duration:1.5
+                                position:@"center"];
+            }
+        }];
+
+    }];
     
-    NSLog(@"viewWillDisappear");
-    [super viewWillDisappear:animated];
-}
 
-- (void)viewDidDisappear:(BOOL)animated
-{
-    NSLog(@"viewDidDisappear");
-    [super viewDidDisappear:animated];
-    [_player stopRealPlay];
-    if (_talkPlayer)
-    {
-        [_talkPlayer stopVoiceTalk];
-    }
-}
 
-- (void)didReceiveMemoryWarning {
-    [super didReceiveMemoryWarning];
-    // Dispose of any resources that can be recreated.
 }
-
 /*
 #pragma mark - Navigation
 
@@ -506,6 +707,11 @@
 - (void)player:(EZPlayer *)player playPrivateTokenInfo:(EZPMPlayPrivateTokenInfo *)tokenInfo {
     NSLog(@"寮�闂╰oken--->%@", tokenInfo.token);
     self.streamToken=tokenInfo.token;
+    
+    if (!_unlockButton.isEnabled) {
+        [_unlockButton setImage:[UIImage imageNamed:@"hdl_ez_ic_unlock"] forState:UIControlStateNormal];
+        _unlockButton.enabled=YES;
+    }
 }
 #pragma mark - ValidateCode Methods
 
@@ -724,7 +930,7 @@
                       }
                       [weakSelf.player stopRealPlay];
                       
-                      _cameraInfo.videoLevel = type;
+                      weakSelf.cameraInfo.videoLevel = type;
                       if (sender == weakSelf.highButton)
                       {
                           [weakSelf.qualityButton setTitle:NSLocalizedString(@"device_quality_high", @"楂樻竻") forState:UIControlStateNormal];
@@ -812,18 +1018,6 @@
 
 - (IBAction)ptzViewShow:(id)sender
 {
-    if ([GlobalKit shareKit].deviceType==HDLEZDeviceType_Door) {//涓洪棬閿佽澶囨椂锛屾墽琛屽紑闂�
-        NSString *verifyCode = [[GlobalKit shareKit].deviceVerifyCodeBySerial objectForKey:self.deviceInfo.deviceSerial];
-
-        [[EZHttpUtil sharedManager] authLockByHDL:@"123456" deviceId:self.deviceInfo.deviceSerial verifyCode:verifyCode completion:^(ResponseData * _Nonnull responseData) {
-            NSLog(@"缁堢鎺堟潈缁撴灉锛�%@",responseData.data);
-            [[EZHttpUtil sharedManager] remoteOpenByHDL:self.streamToken deviceId:self.deviceInfo.deviceSerial completion:^(ResponseData * _Nonnull responseData) {
-                NSLog(@"寮�闂ㄧ粨鏋滐細%@",responseData.data);
-            }];
-        }];
-        return;
-    }
-    
     self.ptzView.hidden = NO;
     [self.bottomView bringSubviewToFront:self.ptzView];
     self.ptzControlButton.alpha = 0;

--
Gitblit v1.8.0