From 3e4be5ed4d2c0395dd60e392baf86c59762059b1 Mon Sep 17 00:00:00 2001
From: Davin <591807572@qq.com>
Date: 星期五, 30 六月 2023 10:14:50 +0800
Subject: [PATCH] feature 猫眼全屏布局调整 && UI细节适配

---
 EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m |   92 ++++++++++++++++++++++++++++++----------------
 1 files changed, 60 insertions(+), 32 deletions(-)

diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m
index 155f7c6..9db3569 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m
@@ -39,6 +39,7 @@
 
 @property (nonatomic) BOOL isOpenSound;
 @property (nonatomic) BOOL isPlaying;
+@property (nonatomic) BOOL isAnswering;     // 姝e湪鎺ュ惉涓�
 @property (nonatomic, strong) NSTimer *recordTimer;
 @property (nonatomic) NSTimeInterval seconds;
 @property (nonatomic, strong) CALayer *orangeLayer;
@@ -60,12 +61,16 @@
 @property (nonatomic, weak) IBOutlet UIButton *captureButton;
 @property (nonatomic, weak) IBOutlet UIButton *localRecordButton;
 @property (nonatomic, weak) IBOutlet UIButton *playButton;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *playBtnLeftMargin;
 @property (weak, nonatomic) IBOutlet UIButton *streamPlayBtn;
 @property (nonatomic, weak) IBOutlet UIButton *voiceButton;
 @property (nonatomic, weak) IBOutlet UIButton *qualityButton;
 @property (nonatomic, weak) IBOutlet UIButton *emptyButton;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *emptyBtnLeftMargin;
 @property (nonatomic, weak) IBOutlet UIButton *largeButton;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *largeBtnRightMargin;
 @property (nonatomic, weak) IBOutlet UIButton *largeBackButton;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *largeBackBtnLeftMargin;
 @property (nonatomic, weak) IBOutlet UIView *ptzView;
 @property (nonatomic, weak) IBOutlet UIButton *ptzCloseButton;
 @property (nonatomic, weak) IBOutlet UIButton *ptzControlButton;
@@ -132,6 +137,7 @@
     self.isStartingTalk = NO;
     self.ptzView.hidden = YES;
     self.talkView.hidden = YES;
+    self.isAnswering = NO;
     self.videoCallOutView.hidden = YES;
     self.doorPlayerAspectRatio = HDLEZ_APP_SCREEN_WIDTH / HDLEZ_APP_SCREEN_HEIGHT;
     _landscape = NO;
@@ -290,15 +296,16 @@
     //缁撴潫鏈湴褰曞儚
     if(self.localRecordButton.selected)
     {
+        __weak __typeof(self)weakSelf = self;
         [_player stopLocalRecordExt:^(BOOL ret) {
             
             NSLog(@"%d", ret);
             
-            [_recordTimer invalidate];
-            _recordTimer = nil;
-            self.localRecordLabel.hidden = YES;
-            [self saveRecordToPhotosAlbum:_filePath];
-            _filePath = nil;
+            [weakSelf.recordTimer invalidate];
+            weakSelf.recordTimer = nil;
+            weakSelf.localRecordLabel.hidden = YES;
+            [weakSelf saveRecordToPhotosAlbum:weakSelf.filePath];
+            weakSelf.filePath = nil;
         }];
     }
     
@@ -351,8 +358,7 @@
     self.captureButton.enabled = NO;
     self.localRecordButton.enabled = NO;
     self.streamPlayBtn.hidden = YES;
-    self.isShowAlert = YES;
-    NSLog(@"#####鍒濆鍖栨柟娉曞睍绀�");
+//    self.isShowAlert = YES; 
     
     if (_url)
     {
@@ -383,9 +389,9 @@
             [self.qualityButton setTitle:NSLocalizedString(@"device_quality_low",@"娴佺晠") forState:UIControlStateNormal];
         }
     }
-#warning 涓嶆敮鎸佸垏鎹㈡竻鏅板害锛屽叏灞忔椂涔熼渶瑕佷富鎸�
     if (_cameraInfo.cameraNo == 0 || [self.deviceInfo.deviceType containsString:@"CAS"]) { //涓嶆敮鎸佹竻鏅板害鍒囨崲
         self.qualityButton.hidden = YES;
+        [self.fullSceneToolView supportVideoLevelChange:NO];
     }
 
     if (self.deviceInfo.cameraInfo.count > 1) {
@@ -401,8 +407,9 @@
     if (!_url)
     {
         //鎶撳浘鎺ュ彛婕旂ず浠g爜
+        __weak __typeof(self)weakSelf = self;
         [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);
+            NSLog(@"[%@] capture cameraNo is [%d] url is %@, error is %@", weakSelf.cameraInfo.deviceSerial, (int)weakSelf.cameraInfo.cameraNo, url, error);
         }];
     }
 #endif
@@ -499,8 +506,9 @@
     
     // 闂ㄩ攣鍏ㄥ睆鐘舵�佷笅宸ュ叿鏍�
     [self.view addSubview:self.fullSceneToolView];
-    __weak EZLivePlayViewController *weakSelf = self;
-    [self.fullSceneToolView configPlayStatus:YES soundOn:YES videoLevel:1 toolOperation:^(HDLEZVideoFullSceneOperation operationType) {
+    __weak __typeof(self)weakSelf = self;
+    [self.fullSceneToolView ringRingRing:YES];  // 榛樿鏄剧ず鎸傛柇鎸夐挳
+    [self.fullSceneToolView configPlayStatus:YES soundOn:YES videoLevel:_cameraInfo.videoLevel toolOperation:^(HDLEZVideoFullSceneOperation operationType) {
         [weakSelf doorLockFullSceneOperation:operationType];
     }];
 }
@@ -600,12 +608,22 @@
     
     [self.scrollView setTranslatesAutoresizingMaskIntoConstraints:NO];
     [self.toolBar setTranslatesAutoresizingMaskIntoConstraints:NO];
-    [NSLayoutConstraint deactivateConstraints:@[self.scrollViewWHRatio]];
+    [self.playButton setTranslatesAutoresizingMaskIntoConstraints:NO];
+    [self.emptyButton setTranslatesAutoresizingMaskIntoConstraints:NO];
+    [self.largeButton setTranslatesAutoresizingMaskIntoConstraints:NO];
+//    [self.largeBackButton setTranslatesAutoresizingMaskIntoConstraints:NO];
+    [NSLayoutConstraint deactivateConstraints:@[self.scrollViewWHRatio, self.playBtnLeftMargin, self.emptyBtnLeftMargin, self.largeBtnRightMargin]];
     self.scrollViewWHRatio = [NSLayoutConstraint constraintWithItem:self.scrollView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.scrollView attribute:NSLayoutAttributeHeight multiplier:16/9. constant:0];
-    [NSLayoutConstraint activateConstraints:@[self.scrollViewWHRatio]];
+    self.playBtnLeftMargin = [NSLayoutConstraint constraintWithItem:self.playButton attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.toolBar attribute:NSLayoutAttributeLeading multiplier:1 constant:0];
+    self.emptyBtnLeftMargin = [NSLayoutConstraint constraintWithItem:self.emptyButton attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.qualityButton attribute:NSLayoutAttributeTrailing multiplier:1 constant:0];
+    self.largeBtnRightMargin = [NSLayoutConstraint constraintWithItem:self.toolBar attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:self.largeButton attribute:NSLayoutAttributeTrailing multiplier:1 constant:0];
+    [NSLayoutConstraint activateConstraints:@[self.scrollViewWHRatio, self.playBtnLeftMargin, self.emptyBtnLeftMargin, self.largeBtnRightMargin]];
     dispatch_async(dispatch_get_main_queue(), ^{
         [self.scrollView layoutIfNeeded];
         [self.toolBar layoutIfNeeded];
+        [self.playButton layoutIfNeeded];
+        [self.emptyButton layoutIfNeeded];
+        [self.largeButton layoutIfNeeded];
     });
     
     if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
@@ -620,16 +638,25 @@
         
         CGFloat tureScreenW = HDLEZ_APP_SCREEN_WIDTH > HDLEZ_APP_SCREEN_HEIGHT ? HDLEZ_APP_SCREEN_HEIGHT : HDLEZ_APP_SCREEN_WIDTH;
         CGFloat tureScreenH = HDLEZ_APP_SCREEN_WIDTH < HDLEZ_APP_SCREEN_HEIGHT ? HDLEZ_APP_SCREEN_HEIGHT : HDLEZ_APP_SCREEN_WIDTH;
-
+        CGFloat marginSpace = 64;
         
         [self.scrollView setTranslatesAutoresizingMaskIntoConstraints:NO];
         [self.toolBar setTranslatesAutoresizingMaskIntoConstraints:NO];
-        [NSLayoutConstraint deactivateConstraints:@[self.scrollViewWHRatio]];
+        [self.playButton setTranslatesAutoresizingMaskIntoConstraints:NO];
+        [self.emptyButton setTranslatesAutoresizingMaskIntoConstraints:NO];
+        [self.largeButton setTranslatesAutoresizingMaskIntoConstraints:NO];
+        [NSLayoutConstraint deactivateConstraints:@[self.scrollViewWHRatio, self.playBtnLeftMargin, self.emptyBtnLeftMargin, self.largeBtnRightMargin]];
         self.scrollViewWHRatio = [NSLayoutConstraint constraintWithItem:self.scrollView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.scrollView attribute:NSLayoutAttributeHeight multiplier:tureScreenH/(tureScreenW - 37) constant:0];
-        [NSLayoutConstraint activateConstraints:@[self.scrollViewWHRatio]];
+        self.playBtnLeftMargin = [NSLayoutConstraint constraintWithItem:self.playButton attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.toolBar attribute:NSLayoutAttributeLeading multiplier:1 constant:marginSpace];
+        self.emptyBtnLeftMargin = [NSLayoutConstraint constraintWithItem:self.emptyButton attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.qualityButton attribute:NSLayoutAttributeTrailing multiplier:1 constant:(tureScreenH - tureScreenW - 2 * marginSpace)];
+        self.largeBtnRightMargin = [NSLayoutConstraint constraintWithItem:self.toolBar attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:self.largeButton attribute:NSLayoutAttributeTrailing multiplier:1 constant:marginSpace];
+        [NSLayoutConstraint activateConstraints:@[self.scrollViewWHRatio, self.playBtnLeftMargin, self.emptyBtnLeftMargin, self.largeBtnRightMargin]];
         dispatch_async(dispatch_get_main_queue(), ^{
             [self.scrollView layoutIfNeeded];
             [self.toolBar layoutIfNeeded];
+            [self.playButton layoutIfNeeded];
+            [self.emptyButton layoutIfNeeded];
+            [self.largeButton layoutIfNeeded];
         });
     }
 }
@@ -699,7 +726,7 @@
 //    HDLEZLog(@"楂橈細%ld",(long)playerVH);
     CGFloat ratio=((CGFloat)width)/((CGFloat)height);
     NSLog(@"姣斾緥锛�%f",ratio);
-    CGFloat playerVW=playerVH*ratio;
+//    CGFloat playerVW=playerVH*ratio;
     self.doorPlayerAspectRatio = ratio;
 //    HDLEZLog(@"瀹斤細%ld",(long)playerVW);
     [self.doorPlayerView mas_updateConstraints:^(MASConstraintMaker *make) {
@@ -900,6 +927,7 @@
 
 - (IBAction)large:(id)sender
 {
+    if (!self.isPlaying)return; // 鏈挱鏀剧姝㈠叏灞忥紝
     self.videoCallOutView.hidden = YES;
     if (_landscape == YES) {
         [self largeBack:self.largeBackButton];
@@ -1301,6 +1329,7 @@
                          self.speakImageView.alpha = 0;
                          self.talkView.hidden = YES;
                      }];
+    self.isAnswering = NO;
 }
 
 - (IBAction)localButtonClicked:(id)sender
@@ -1308,15 +1337,16 @@
     //缁撴潫鏈湴褰曞儚
     if(self.localRecordButton.selected)
     {
+        __weak __typeof(self)weakSelf = self;
         [_player stopLocalRecordExt:^(BOOL ret) {
             
             NSLog(@"%d", ret);
             
-            [_recordTimer invalidate];
-            _recordTimer = nil;
-            self.localRecordLabel.hidden = YES;
-            [self saveRecordToPhotosAlbum:_filePath];
-            _filePath = nil;
+            [weakSelf.recordTimer invalidate];
+            weakSelf.recordTimer = nil;
+            weakSelf.localRecordLabel.hidden = YES;
+            [weakSelf saveRecordToPhotosAlbum:weakSelf.filePath];
+            weakSelf.filePath = nil;
         }];
     }
     else
@@ -1396,18 +1426,19 @@
 }
 
 - (IBAction)clickCalloutHangupAction:(id)sender {
-    [UIView dd_showMessage:@"鎸傛柇寮�鍙戜腑..."];
     self.isShowAlert = NO;
+    [self closeTalkView:self.talkCloseButton];
 }
 
 - (IBAction)clickCalloutIgnoreAction:(id)sender {
-    [UIView dd_showMessage:@"蹇界暐寮�鍙戜腑..."];
+//    [UIView dd_showMessage:@"蹇界暐寮�鍙戜腑..."];
     self.isShowAlert = NO;
+    self.isAnswering = NO;
 }
 
 - (IBAction)clickCalloutAnswerAction:(id)sender {
-    [UIView dd_showMessage:@"鎺ュ惉寮�鍙戜腑..."];
     self.isShowAlert = NO;
+    self.isAnswering = YES;
     [self talkButtonClicked:self.talkButton];
 }
 
@@ -1416,15 +1447,11 @@
 /// 灞曠ず鍛煎彨寮规
 - (void)showCallOutAlertView {
     self.videoCallOutView.hidden = NO;
-    [UIView dd_showMessage:@"灞曠ず鍛煎彨寮规"];
-    NSLog(@"灞曠ず鍛煎彨寮规");
 }
 
 /// 闅愯棌鍛煎彨寮规
 - (void)hiddenCallOutAlertView {
     self.videoCallOutView.hidden = YES;
-    [UIView dd_showMessage:@"闅愯棌鍛煎彨寮规"];
-    NSLog(@"闅愯棌鍛煎彨寮规");
 }
 
 #pragma mark - Private Methods
@@ -1545,7 +1572,7 @@
             [view removeFromSuperview];
         }
     }
-    CGFloat averageWidth = [UIScreen mainScreen].bounds.size.width/5.0;
+//    CGFloat averageWidth = [UIScreen mainScreen].bounds.size.width/5.0;
     UIImageView *lineImageView1 = [UIView dd_instanceVerticalLine:20 color:[UIColor grayColor]];
 //    lineImageView1.frame = CGRectMake(averageWidth, 7, lineImageView1.frame.size.width, lineImageView1.frame.size.height);
     [self.toolBar addSubview:lineImageView1];
@@ -1686,7 +1713,10 @@
 - (void)doorLockFullSceneOperation:(HDLEZVideoFullSceneOperation)operation {
     switch (operation) {
         case HDLEZVideoFullSceneOperationOfHangUp: {    // 鎸傛柇
+            [self largeBack:self.largeButton];
+            [self closeTalkView:self.talkCloseButton];
             [self hiddenCallOutAlertView];
+            [self.navigationController popViewControllerAnimated:YES];
         }
             break;
         case HDLEZVideoFullSceneOperationOfPlay: {  // 鎾斁
@@ -1732,10 +1762,8 @@
 - (void)setIsShowAlert:(BOOL)isShowAlert {
     _isShowAlert = isShowAlert;
     if (isShowAlert) {
-        NSLog(@"#####set鏂规硶灞曠ず");
         [self showCallOutAlertView];
     } else {
-        NSLog(@"#####set鏂规硶闅愯棌");
         [self hiddenCallOutAlertView];
     }
 }

--
Gitblit v1.8.0