From 55d25d8fbacc93cb706b455bbec7ee0494b96046 Mon Sep 17 00:00:00 2001 From: kai60 Date: Sat, 3 Oct 2020 16:49:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=95=E5=88=B6=E5=92=8C=E5=9B=9E=E6=94=BE1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 10244 -> 10244 bytes .../设备/IfishDeviceViewController.m | 7 +- .../IfishP2PMonitorController.m | 19 +++- .../CameraBottomHView.m | 6 +- .../CameraRecordViewController.h | 4 + .../CameraRecordViewController.m | 82 +++++++++++++++++- .../images/equipment_iocn_videoback | Bin 0 -> 34441 bytes .../images/equipment_iocn_videorecord | Bin 0 -> 23707 bytes 8 files changed, 104 insertions(+), 14 deletions(-) create mode 100644 Ifish/controllers/IfishYooseeFile/IfishYooseeSource/IFISHYooseeImg.bundle/images/equipment_iocn_videoback create mode 100644 Ifish/controllers/IfishYooseeFile/IfishYooseeSource/IFISHYooseeImg.bundle/images/equipment_iocn_videorecord diff --git a/.DS_Store b/.DS_Store index c415a1c2a6fc382ce601c63332361540abcc7b30..56287ef998acfb52120bb9c370c237a6cb98af99 100644 GIT binary patch delta 164 zcmZn(XbG6$F8U^hRb&So9~Hdbc!{>PKuMU_Ny^Icq$a`KZH7#KKGEH>SGk#fip eDv^R!VzQYW;fALuFdQU+*C0thzS7ku{3}H delta 69 zcmZn(XbG6$LAU^hRb)@B|7HdbbpDGrkxMfI6g3mAa3(&nq8MqCpcayGLoaAT94 G%>)3+?G$MM diff --git a/Ifish/controllers/IfishTabControllers/设备/IfishDeviceViewController.m b/Ifish/controllers/IfishTabControllers/设备/IfishDeviceViewController.m index 201d9a5..637b789 100644 --- a/Ifish/controllers/IfishTabControllers/设备/IfishDeviceViewController.m +++ b/Ifish/controllers/IfishTabControllers/设备/IfishDeviceViewController.m @@ -1283,12 +1283,7 @@ Assign BOOL isPush; } else if ([model.type isEqualToString:@"camera"]){ - // self.hidesBottomBarWhenPushed = YES; - // IfishP2PPlayBackListViewController *cameraShopVC=[[IfishP2PPlayBackListViewController alloc]init]; - // cameraShopVC.camera = model.camera; - // [self.navigationController pushViewController:cameraShopVC animated:YES]; - // self.hidesBottomBarWhenPushed = NO; - + //切换时主动 断开 soket [[Socketsingleton sharedInstance] cutOffSocket]; //进入摄像头页面 diff --git a/Ifish/controllers/IfishYooseeFile/IfishYooseeControlller/IfishP2PMonitorController.m b/Ifish/controllers/IfishYooseeFile/IfishYooseeControlller/IfishP2PMonitorController.m index 5b4db33..19c6aad 100644 --- a/Ifish/controllers/IfishYooseeFile/IfishYooseeControlller/IfishP2PMonitorController.m +++ b/Ifish/controllers/IfishYooseeFile/IfishYooseeControlller/IfishP2PMonitorController.m @@ -640,7 +640,7 @@ Strong UIImage *screenShotImage;//截图 self.bottomToolHView.hidden = NO; //底部view 水族箱view - UIView *bottomHView = [[UIView alloc] initWithFrame:CGRectMake(0.0, CGRectGetMaxY(self.segControl.frame) + 10, width, height-CGRectGetMaxY(self.segControl.frame))]; + UIView *bottomHView = [[UIView alloc] initWithFrame:CGRectMake(0.0, CGRectGetMaxY(self.segControl.frame) + 10, width, height-CGRectGetMaxY(self.segControl.frame)-10)]; bottomHView.backgroundColor = JWUIColorFromRGB(0xdddddd); [self.view addSubview:bottomHView]; self.bottomFishHView = bottomHView; @@ -4570,6 +4570,23 @@ GWP2PCallErrorNotSupport, }]; } + //视频录制 + else if (indexPath.row ==6){ + CameraRecordViewController*ca=[[CameraRecordViewController alloc]init]; + ca.camera=self.contact; + [self.navigationController pushViewController:ca animated:YES]; + + + } + + else if (indexPath.row ==7){ + + IfishP2PPlayBackListViewController *cameraShopVC=[[IfishP2PPlayBackListViewController alloc]init]; + cameraShopVC.camera = self.contact; + [self.navigationController pushViewController:cameraShopVC animated:YES]; + + } + } diff --git a/Ifish/controllers/IfishYooseeFile/IfishYooseeControlller/IfishcameraBottomHView/CameraBottomHView.m b/Ifish/controllers/IfishYooseeFile/IfishYooseeControlller/IfishcameraBottomHView/CameraBottomHView.m index 960311a..90c4170 100644 --- a/Ifish/controllers/IfishYooseeFile/IfishYooseeControlller/IfishcameraBottomHView/CameraBottomHView.m +++ b/Ifish/controllers/IfishYooseeFile/IfishYooseeControlller/IfishcameraBottomHView/CameraBottomHView.m @@ -68,10 +68,10 @@ static NSString *bootomRecCellIdentifier = @"IfishRecVideoViewCell"; ////录制回放功能打开 //_dataImgArray = @[LXImageWithImageName(@"devicename_iocn_screenshots.png"),LXImageWithImageName(@"devicename_iocn_gallery.png"),LXImageWithImageName(@"devicename_iocn_rec.png"),LXImageWithImageName(@"devicename_iocn_playback.png"),LXImageWithImageName(@"devicename_iocn_care.png"),LXImageWithImageName(@"devicename_iocn_look.png"),LXImageWithImageName(@"devicename_iocn_Ilookat.png"),LXImageWithImageName(@"devicename_iocn_look.png"),LXImageWithImageName(@"devicename_iocn_look.png")]; //equipment_iocn_playback - _dataImgArray = @[LXImageWithImageName(@"equipment_iocn_printscreen"),LXImageWithImageName(@"equipment_iocn_gallery"),LXImageWithImageName(@"equipment_iocn_care"),LXImageWithImageName(@"equipment_iocn_look"),LXImageWithImageName(@"equipment_iocn_mylook"),LXImageWithImageName(@"equipment_iocn_share")]; + _dataImgArray = @[LXImageWithImageName(@"equipment_iocn_printscreen"),LXImageWithImageName(@"equipment_iocn_gallery"),LXImageWithImageName(@"equipment_iocn_care"),LXImageWithImageName(@"equipment_iocn_look"),LXImageWithImageName(@"equipment_iocn_mylook"),LXImageWithImageName(@"equipment_iocn_share"),LXImageWithImageName(@"equipment_iocn_videorecord"),LXImageWithImageName(@"equipment_iocn_videoback")]; //_dataNameArray = @[@"截图",@"图库",@"录制",@"回放",@"我的看护",@"爱鱼看看",@"我的看看",@"",@""]; - _dataNameArray = @[@"截图",@"图库",@"我的看护",@"爱鱼看看",@"我的看看",@"分享爱鱼奇"]; + _dataNameArray = @[@"截图",@"图库",@"我的看护",@"爱鱼看看",@"我的看看",@"分享爱鱼奇",@"视频录制",@"视频回放"]; } #pragma mark - UICollectionViewDataSource @@ -84,7 +84,7 @@ static NSString *bootomRecCellIdentifier = @"IfishRecVideoViewCell"; - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{ //return 9; - return 6; + return 8; } #pragma mark 设置item内容 diff --git a/Ifish/controllers/IfishYooseeFile/IfishYooseeControlller/IfishcameraBottomHView/CameraRecordViewController.h b/Ifish/controllers/IfishYooseeFile/IfishYooseeControlller/IfishcameraBottomHView/CameraRecordViewController.h index 172aa7b..8b03ef1 100644 --- a/Ifish/controllers/IfishYooseeFile/IfishYooseeControlller/IfishcameraBottomHView/CameraRecordViewController.h +++ b/Ifish/controllers/IfishYooseeFile/IfishYooseeControlller/IfishcameraBottomHView/CameraRecordViewController.h @@ -9,7 +9,11 @@ #import "BaseViewController.h" #import "IfishCameraModel.h" #import "MBProgressHUD.h" +#import + + @interface CameraRecordViewController : BaseViewController @property (nonatomic,strong) IfishCameraModel *camera; +@property (nonatomic, strong) GWP2PVideoPlayer *player;//摄像头页面 @property (strong, nonatomic) MBProgressHUD *progressAlert; @end diff --git a/Ifish/controllers/IfishYooseeFile/IfishYooseeControlller/IfishcameraBottomHView/CameraRecordViewController.m b/Ifish/controllers/IfishYooseeFile/IfishYooseeControlller/IfishcameraBottomHView/CameraRecordViewController.m index 391e087..e2852f6 100644 --- a/Ifish/controllers/IfishYooseeFile/IfishYooseeControlller/IfishcameraBottomHView/CameraRecordViewController.m +++ b/Ifish/controllers/IfishYooseeFile/IfishYooseeControlller/IfishcameraBottomHView/CameraRecordViewController.m @@ -25,7 +25,7 @@ static const CGFloat ToastFade = 0.2; @property(nonatomic) NSInteger minute; @property(nonatomic,strong) NSTimer*timer; @property(nonatomic,copy) NSString *timestr; - +@property (nonatomic, assign) BOOL isConnectCamera; @property(nonatomic) BOOL isRecording; @property(nonatomic) NSIndexPath *timerIndex; @property(nonatomic) NSIndexPath *switchIndex; @@ -92,7 +92,78 @@ static const CGFloat ToastFade = 0.2; [self.view addSubview:self.tab]; } +-(void)connectDevice{ + + UserModel *model=[dataContorl getUserInfo]; + NSString *userIDName=[NSString stringWithFormat:@"%d",(int)[model.gwellUserID integerValue]&0x7fffffff]; + //初始化设备 + if ([GWP2PClient sharedClient].linkStatus != P2PLinkStatusOK) { + NSLog(@"正在检查P2P连接状态"); + BOOL connectDevice = [[GWP2PClient sharedClient] connectWithAccount:userIDName codeStr1:model.P2PVerifyCode1 codeStr2:model.P2PVerifyCode2 sessionID1:model.sessionID sessionID2:model.sessionID2 customerIDs:nil]; + + if (connectDevice) { + [self connectCamera]; + }else{ + NSLog(@"p2pConnect failure.失败,不能操作设备"); + } + } + +} +//连接到摄像头 +-(void)connectCamera{ + [[GWP2PClient sharedClient] getMultipleDeviceStatusWithDeviceID:self.camera.cameraId password:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { + + if (success) { + _isConnectCamera = YES; + [self monitorP2PCall]; + NSLog(@"当前连接设备信息:%@",dataDictionary); + }else{ + _isConnectCamera = YES; + [self monitorP2PCall]; +// _isConnectCamera = NO; +// dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ +// [self.view makeToast:@"连接设备失败"]; +// [self hiddenMonitoringUI:NO callWithErrorType:100 isReCall:NO]; +// }); +// return; + } + }]; +} +#pragma mark --尝试连接摄像头 +-(void)monitorP2PCall{ + if ([self.player isPlaying]) {//如果已经连接,则不重复发出连接申请 + return; + } + //p2p未连接 + if ([GWP2PClient sharedClient].linkStatus != P2PLinkStatusOK) { + [self connectDevice]; + return; + } + //未连接到设备 + if (!_isConnectCamera) { + [self connectCamera]; + return; + } + WEAK_SELF; + dispatch_async(dispatch_get_global_queue(0, 0), ^{ + + [weakSelf.player p2pCallDeviceWithDeviceId:self.camera.cameraId password:self.camera.cameraPass definition:GWP2PPTZDefinitionSD calling:^(NSDictionary *parameters) { + //呼叫设备 + NSLog(@"[p2pCallDevice-Calling],paras=%@",parameters); + + } accept:^(NSDictionary *parameters) { + + NSLog(@"[p2pCallDevice-Accept],paras=%@",parameters); + + } reject:^(GWP2PCallError error, NSString *errorCode) { + } ready:^{ + } allowLAN:YES]; + + + + }); +} - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. @@ -623,12 +694,15 @@ static const CGFloat ToastFade = 0.2; [self startTostVIew]; if (swt.isOn) { - _isManual = YES; + _isManual = NO; [[P2PClient sharedClient] setRemoteRecordWithId:self.camera.cameraId - password:self.camera.cameraPass state:SETTING_VALUE_REMOTE_RECORD_STATE_OFF]; + password:self.camera.cameraPass state:SETTING_VALUE_REMOTE_RECORD_STATE_ON]; + [[P2PClient sharedClient] setDeviceRecordType:GWP2PRecordTypeSchedule withDeviceID:self.camera.cameraId devicePassword:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { + NSLog(@"data=%@",dataDictionary); + }];; }else{ - _isManual = NO; + _isManual = YES; [[P2PClient sharedClient] setRemoteRecordWithId:self.camera.cameraId password:self.camera.cameraPass state:SETTING_VALUE_REMOTE_RECORD_STATE_ON]; } diff --git a/Ifish/controllers/IfishYooseeFile/IfishYooseeSource/IFISHYooseeImg.bundle/images/equipment_iocn_videoback b/Ifish/controllers/IfishYooseeFile/IfishYooseeSource/IFISHYooseeImg.bundle/images/equipment_iocn_videoback new file mode 100644 index 0000000000000000000000000000000000000000..3c8ef5c83a23632c61ed0d9090d0cd1e052a6e5c GIT binary patch literal 34441 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 literal 0 HcmV?d00001