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