萤石云 iOSSDK,移植跨平台相关工程
Davin
2024-12-18 b4e1288a9b63eb820e9c9489c56aac4bf6b31067
EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m
@@ -149,6 +149,7 @@
    
    //初始化相关数据
    [self initialData];
    [self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:HDLEZHEXCOLOR(0x1B2D4D, 1.),NSFontAttributeName:[UIFont systemFontOfSize:18]}];
    
//    self.talkButton.enabled = self.deviceInfo.isSupportTalk;
//    self.controlButton.enabled = self.deviceInfo.isSupportPTZ;
@@ -281,6 +282,14 @@
        }];
    }
    return _doorPlayerView;
}
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    if (self.navigationController) {
        self.navigationController.navigationBar.hidden = NO;
        [self.navigationController setNavigationBarHidden:NO];
    }
}
- (void)viewDidAppear:(BOOL)animated {
@@ -500,7 +509,7 @@
    [self.ignoreButton setTitle:HDLEZLocallizedString(@"device_callout_ignore") forState:UIControlStateNormal];
    self.ignoreButton.imagePosition = HDLEZOPButtonImagePositionTop;
    self.ignoreButton.spacingBetweenImageAndTitle = 12.;
    [self.answerButton setTitle:HDLEZLocallizedString(@"device_callout_answer") forState:UIControlStateNormal];
    [self.answerButton setTitle:HDLEZLocallizedString(@"device_callout_answered") forState:UIControlStateNormal];
    self.answerButton.imagePosition = HDLEZOPButtonImagePositionTop;
    self.answerButton.spacingBetweenImageAndTitle = 12.;
    
@@ -511,11 +520,22 @@
    [self.fullSceneToolView configPlayStatus:YES soundOn:YES videoLevel:_cameraInfo.videoLevel toolOperation:^(HDLEZVideoFullSceneOperation operationType) {
        [weakSelf doorLockFullSceneOperation:operationType];
    }];
    // 挂断弹框
    if (_isShowAlert) {
        [self showCallOutAlertView];
    } else {
        [self hiddenCallOutAlertView];
    }
}
/*开锁
 */
-(void)unlockDoor{
    if (![self isSupportOneKeyUnlockDoor]) {    // 不支持一键开锁
        [UIView dd_showMessage:@"该设备不支持一键开锁"];
        return;
    }
    [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) {
@@ -863,7 +883,11 @@
    self.streamToken=tokenInfo.token;
    
    if (!_unlockButton.isEnabled) {
        [_unlockButton setImage:[UIImage imageNamed:@"hdl_ez_ic_unlock"] forState:UIControlStateNormal];
        if ([self isSupportOneKeyUnlockDoor]) {    // 支持一键开锁
            [_unlockButton setImage:[UIImage imageNamed:@"hdl_ez_ic_unlock"] forState:UIControlStateNormal];
        } else {
            [_unlockButton setImage:[UIImage imageNamed:@"hdl_ez_ic_unlock_disable"] forState:UIControlStateNormal];
        }
        _unlockButton.enabled=YES;
    }
}
@@ -946,7 +970,7 @@
        [self.scrollView setTranslatesAutoresizingMaskIntoConstraints:NO];
        [self.playerView setTranslatesAutoresizingMaskIntoConstraints:NO];
        [NSLayoutConstraint deactivateConstraints:@[self.scrollViewTopMargin, self.scrollViewWHRatio, self.playerViewWHRatio, self.playerViewBottomMargin]];
        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.scrollViewTopMargin = [NSLayoutConstraint constraintWithItem:self.scrollView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-[self hdlEZStatusBarHeight]];
        self.scrollViewWHRatio = [NSLayoutConstraint constraintWithItem:self.scrollView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.scrollView attribute:NSLayoutAttributeHeight multiplier:HDLEZ_APP_SCREEN_WIDTH/HDLEZ_APP_SCREEN_HEIGHT constant:0];
        
        self.playerViewWHRatio = [NSLayoutConstraint constraintWithItem:self.playerView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.playerView attribute:NSLayoutAttributeHeight multiplier:self.doorPlayerAspectRatio constant:0];
@@ -983,6 +1007,10 @@
        NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft];
        [[UIDevice currentDevice] setValue:value forKey:@"orientation"];
    }
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [self.largeButton setImage:[UIImage imageNamed:@"preview_enlarge_full"] forState:UIControlStateNormal];
        [self.largeButton setImage:[UIImage imageNamed:@"preview_enlarge_full_btn_sel"] forState:UIControlStateHighlighted];
    });
}
- (IBAction)largeBack:(id)sender
@@ -1035,6 +1063,10 @@
        NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPortrait];
        [[UIDevice currentDevice] setValue:value forKey:@"orientation"];
    }
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [self.largeButton setImage:[UIImage imageNamed:@"preview_enlarge"] forState:UIControlStateNormal];
        [self.largeButton setImage:[UIImage imageNamed:@"preview_enlarge_btn_sel"] forState:UIControlStateHighlighted];
    });
}
- (IBAction)capture:(id)sender
@@ -1428,18 +1460,30 @@
- (IBAction)clickCalloutHangupAction:(id)sender {
    self.isShowAlert = NO;
    [self closeTalkView:self.talkCloseButton];
    if (self.msgId && self.msgId.length > 0) {
        [[EZHttpUtil sharedManager] updateAnswerStatusWithMsgId:self.msgId answerStatus:@"no_answer" completion:^(ResponseData * _Nonnull responseData) {
            HDLEZLog(@"###########挂断####:%@", [responseData yy_modelToJSONString]);
        }];
    }
    [self.navigationController popViewControllerAnimated:YES];
}
- (IBAction)clickCalloutIgnoreAction:(id)sender {
//    [UIView dd_showMessage:@"忽略开发中..."];
    self.isShowAlert = NO;
    self.isAnswering = NO;
    [self.navigationController popViewControllerAnimated:YES];
}
- (IBAction)clickCalloutAnswerAction:(id)sender {
    self.isShowAlert = NO;
    self.isAnswering = YES;
    [self talkButtonClicked:self.talkButton];
    if (self.msgId && self.msgId.length > 0) {
        [[EZHttpUtil sharedManager] updateAnswerStatusWithMsgId:self.msgId answerStatus:@"answer" completion:^(ResponseData * _Nonnull responseData) {
            HDLEZLog(@"###########接听####:%@", [responseData yy_modelToJSONString]);
        }];
    }
}
@@ -1573,7 +1617,7 @@
        }
    }
//    CGFloat averageWidth = [UIScreen mainScreen].bounds.size.width/5.0;
    UIImageView *lineImageView1 = [UIView dd_instanceVerticalLine:20 color:[UIColor grayColor]];
    UIImageView *lineImageView1 = [UIView dd_instanceVerticalLine:20 color:HDLEZHEXCOLOR(0xFFFFFF, 0.16)];
//    lineImageView1.frame = CGRectMake(averageWidth, 7, lineImageView1.frame.size.width, lineImageView1.frame.size.height);
    [self.toolBar addSubview:lineImageView1];
    [lineImageView1 mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -1582,7 +1626,7 @@
        make.width.mas_equalTo(lineImageView1.frame.size.width);
        make.height.mas_equalTo(lineImageView1.frame.size.height);
    }];
    UIImageView *lineImageView2 = [UIView dd_instanceVerticalLine:20 color:[UIColor grayColor]];
    UIImageView *lineImageView2 = [UIView dd_instanceVerticalLine:20 color:HDLEZHEXCOLOR(0xFFFFFF, 0.16)];
//    lineImageView2.frame = CGRectMake(averageWidth * 2, 7, lineImageView2.frame.size.width, lineImageView2.frame.size.height);
    [self.toolBar addSubview:lineImageView2];
    [lineImageView2 mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -1591,7 +1635,7 @@
        make.width.mas_equalTo(lineImageView2.frame.size.width);
        make.height.mas_equalTo(lineImageView2.frame.size.height);
    }];
    UIImageView *lineImageView3 = [UIView dd_instanceVerticalLine:20 color:[UIColor grayColor]];
    UIImageView *lineImageView3 = [UIView dd_instanceVerticalLine:20 color:HDLEZHEXCOLOR(0xFFFFFF, 0.16)];
//    lineImageView3.frame = CGRectMake(averageWidth * 3, 7, lineImageView3.frame.size.width, lineImageView3.frame.size.height);
    [self.toolBar addSubview:lineImageView3];
    [lineImageView3 mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -1600,7 +1644,7 @@
        make.width.mas_equalTo(lineImageView3.frame.size.width);
        make.height.mas_equalTo(lineImageView3.frame.size.height);
    }];
    UIImageView *lineImageView4 = [UIView dd_instanceVerticalLine:20 color:[UIColor grayColor]];
    UIImageView *lineImageView4 = [UIView dd_instanceVerticalLine:20 color:HDLEZHEXCOLOR(0xFFFFFF, 0.16)];
//    lineImageView4.frame = CGRectMake(averageWidth * 4, 7, lineImageView4.frame.size.width, lineImageView4.frame.size.height);
    [self.toolBar addSubview:lineImageView4];
    [lineImageView4 mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -1728,13 +1772,11 @@
        }
            break;
        case HDLEZVideoFullSceneOperationOfSound: { // 开启音量
            [_player openSound];
            NSLog(@"#######开启音量");
            [self voiceButtonClicked:self.voiceButton];
        }
            break;
        case HDLEZVideoFullSceneOperationOfSoundOff: {  // 静音
            [_player closeSound];
            NSLog(@"#######静音");
            [self voiceButtonClicked:self.voiceButton];
        }
            break;
        case HDLEZVideoFullSceneOperationOfSmooth: {    // 流畅
@@ -1758,10 +1800,16 @@
    }
}
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    if (!self.fullSceneToolView.hidden) {
        [self.fullSceneToolView qualityStatusChanged:YES];
    }
}
#pragma Setter
- (void)setIsShowAlert:(BOOL)isShowAlert {
    _isShowAlert = isShowAlert;
    if (isShowAlert) {
    if (_isShowAlert) {
        [self showCallOutAlertView];
    } else {
        [self hiddenCallOutAlertView];
@@ -1781,4 +1829,24 @@
    return YES;
}
- (CGFloat)hdlEZStatusBarHeight {
    if (@available(iOS 13.0, *)) {
        NSSet *set = [UIApplication sharedApplication].connectedScenes;
        UIWindowScene *windowScene = [set anyObject];
        UIStatusBarManager *statusBarManager = windowScene.statusBarManager;
        return statusBarManager.statusBarFrame.size.height;
    } else {
        return [UIApplication sharedApplication].statusBarFrame.size.height;
    }
}
/// 是否支持一键开锁
- (BOOL)isSupportOneKeyUnlockDoor {
    BOOL isSupport = YES;
    if (self.deviceInfo && self.deviceInfo.deviceType && ([self.deviceInfo.deviceType containsString:@"LT20VC"] || [self.deviceInfo.deviceType containsString:@"LT20VC"])) {
        isSupport = NO;
    }
    return isSupport;
}
@end