2588 lines
97 KiB
Objective-C
2588 lines
97 KiB
Objective-C
//
|
||
// ShopKanHuP2PViewController.m
|
||
// Ifish
|
||
//
|
||
// Created by imac on 16/8/26.
|
||
// Copyright © 2016年 lianxiang. All rights reserved.
|
||
//
|
||
|
||
#import "ShopKanHuP2PViewController.h"
|
||
|
||
//#import "PAIOUnit.h"
|
||
#import "FListManager.h"
|
||
#import "LookAfterReportViewController.h"
|
||
|
||
#import "Utils.h"
|
||
#import "KanHuBaoGaoModel.h"
|
||
@interface ShopKanHuP2PViewController ()
|
||
|
||
{
|
||
CGFloat _horizontalScreenH;
|
||
CGFloat _monitorInterfaceW;//rtsp监控界面弹出修改
|
||
CGFloat _monitorInterfaceH;//rtsp监控界面弹出修改
|
||
|
||
UIButton* _btnDefence;
|
||
|
||
|
||
BOOL _isOkFirstRenderVideoFrame;//YES表示第一次成功渲染图像
|
||
BOOL _isOkRenderVideoFrame;//YES表示图像渲染出来了
|
||
|
||
BOOL _isCanAutoOrientation;//限制屏幕什么时候可以旋转
|
||
|
||
BOOL _isInItDevice; //是否连接设备
|
||
BOOL _isStop;//是否暂停 用于区分是 暂停按钮 还是 连接失败按钮
|
||
|
||
int _OnLine;
|
||
}
|
||
|
||
|
||
@end
|
||
|
||
@implementation ShopKanHuP2PViewController
|
||
|
||
- (void)viewDidLoad {
|
||
[super viewDidLoad];
|
||
// self.title = @"看护";
|
||
self.isShowControllerBar = YES;
|
||
self.isVideoModeHD = NO;
|
||
_isReject=YES;
|
||
_isStop = NO;
|
||
_isOkFirstRenderVideoFrame = YES;
|
||
|
||
[self addTitleViewWithTitle:@"看护"];
|
||
|
||
[self connectDevice];
|
||
//监控竖屏时,各控件初始化(先)
|
||
[self initComponentForPortrait];
|
||
|
||
//监控横屏时,各控件初始化(后)
|
||
[self initComponentForHorizontalScreen];
|
||
_OnLine = 1;
|
||
|
||
}
|
||
|
||
#pragma mark -获取返回事件
|
||
|
||
-(void)goBackAction{
|
||
|
||
//sleep(2);
|
||
if (_isOkRenderVideoFrame) {
|
||
|
||
[self.remoteView getLastImgGoback];
|
||
}
|
||
|
||
[self stopGLViewVideo];
|
||
[AppDelegate sharedDefault].canFullScreen = NO;
|
||
[self.remoteView releseromotViewSet];
|
||
[self.navigationController popViewControllerAnimated:YES];
|
||
|
||
}
|
||
|
||
#pragma mark - 初始化设备 p2pConnect
|
||
-(void)connectDevice{
|
||
|
||
//LoginResult *loginResult = [UDManager getLoginInfo];
|
||
//8225账号
|
||
// NSString * P2PVerifyCode1 = @"1528438234";
|
||
// NSString * P2PVerifyCode2 = @"992805759";
|
||
// NSString *UserID = @"-2144354932";
|
||
|
||
UserModel *model=[[DataCenter defaultDtacenter] valueForKey:@"UserLogIn"];
|
||
NSString *userIDName=[NSString stringWithFormat:@"%d",(int)[model.gwellUserID integerValue]&0x7fffffff];
|
||
|
||
|
||
//初始化设备
|
||
if (!_isInItDevice) {
|
||
NSLog(@"正在初始化设备");
|
||
_isInItDevice = [[P2PClient sharedClient] p2pConnectWithId:userIDName codeStr1:model.P2PVerifyCode1 codeStr2:model.P2PVerifyCode2];
|
||
|
||
// _isInItDevice = [[P2PClient sharedClient] p2pConnectWithId:model.gwellUserID codeStr1:model.P2PVerifyCode1 codeStr2:model.P2PVerifyCode2];
|
||
|
||
}
|
||
|
||
|
||
if(_isInItDevice){
|
||
|
||
NSLog(@"p2pConnect success. 成功 可以操作设备了");
|
||
//成功 可以操作设备了
|
||
usleep(600000);
|
||
[self startMonitor];
|
||
|
||
}else{//new added
|
||
NSLog(@"p2pConnect failure.失败,不能操作设备");
|
||
//[self connectDevice];
|
||
return;
|
||
}
|
||
|
||
|
||
}
|
||
-(void)startMonitor{
|
||
|
||
if (_isReject&&_isInItDevice) {
|
||
NSLog(@"发送呼叫命令");
|
||
|
||
[[P2PClient sharedClient] setIsBCalled:NO];
|
||
[[P2PClient sharedClient] setP2pCallState:P2PCALL_STATUS_CALLING];
|
||
|
||
NSString *newPassword = GIWEI_INITPASS;
|
||
NSString *cameraPass = [Utils GetTreatedPassword:newPassword];
|
||
|
||
|
||
[[P2PClient sharedClient] p2pCallWithId:self.kanHuCamera.cameraId password:cameraPass callType:P2PCALL_TYPE_MONITOR];
|
||
|
||
|
||
|
||
}
|
||
|
||
}
|
||
|
||
#pragma mark - 协议的实现
|
||
- (void)P2PClientCalling:(nullable NSDictionary*)info{
|
||
|
||
NSLog(@"正在呼叫");
|
||
}
|
||
- (void)P2PClientReject:(nullable NSDictionary*)info{
|
||
|
||
_isReject=YES;
|
||
_isOkRenderVideoFrame = NO;
|
||
NSLog(@"视频挂断");
|
||
|
||
//[self addLogs:@"视频挂断"];
|
||
|
||
while (_isPlaying) {
|
||
usleep(50*1000);
|
||
}
|
||
|
||
|
||
if (self.isIntoMonitorFromMonitor) {
|
||
self.isIntoMonitorFromMonitor = NO;
|
||
[self hiddenMonitoringUI:NO callErrorInfo:nil isReCall:YES];
|
||
// [self monitorP2PCall];
|
||
}else{
|
||
[self hiddenMonitoringUI:NO callErrorInfo:info isReCall:NO];
|
||
}
|
||
|
||
|
||
|
||
}
|
||
- (void)P2PClientAccept:(nullable NSDictionary*)info{
|
||
|
||
NSLog(@"接收数据");
|
||
}
|
||
- (void)P2PClientReady:(nullable NSDictionary*)info{
|
||
|
||
NSLog(@"准备就绪");
|
||
[[P2PClient sharedClient] setP2pCallState:P2PCALL_STATUS_READY_P2P];
|
||
|
||
if([[P2PClient sharedClient] p2pCallType]==P2PCALL_TYPE_MONITOR){
|
||
//连接就绪之后就开始启动渲染
|
||
[self monitorStartRender];
|
||
}
|
||
}
|
||
#pragma mark - 准备渲染监控界面
|
||
-(void)monitorStartRender{
|
||
//[self addLogs:@"渲染>>>你可以看到画面了"];
|
||
_isReject = NO;
|
||
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
||
[self renderView];
|
||
});
|
||
// [[PAIOUnit sharedUnit] setMuteAudio:YES];
|
||
// [[PAIOUnit sharedUnit] setSpeckState:YES];
|
||
|
||
}
|
||
|
||
#pragma mark - OpenGLViewDelegate
|
||
//GLview 截屏
|
||
-(void)onScreenShotted:(UIImage *)image{
|
||
|
||
UIImage *tempImage = [[UIImage alloc] initWithCGImage:image.CGImage];
|
||
//截屏图片有点大压缩上传
|
||
UIImage *samallImage = [self scaleFromImage:tempImage toSize:CGSizeMake(kScreenSize.width, kScreenSize.width*0.56)];
|
||
|
||
self.imgData = [NSData dataWithData:UIImagePNGRepresentation(samallImage)];
|
||
[Utils shopsSaveImageWithdata:self.imgData withCameraId:self.kanHuCamera.cameraId];
|
||
|
||
[self saveBaoGaoDataWith:self.imgData];
|
||
|
||
}
|
||
|
||
- (UIImage *) scaleFromImage: (UIImage *) image toSize: (CGSize) size
|
||
{
|
||
UIGraphicsBeginImageContext(size);
|
||
[image drawInRect:CGRectMake(0, 0, size.width, size.height)];
|
||
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
|
||
UIGraphicsEndImageContext();
|
||
return newImage;
|
||
}
|
||
|
||
#pragma mark 生成看护报告
|
||
|
||
-(void)saveBaoGaoDataWith:(NSData *)imgData{
|
||
|
||
|
||
AFHTTPRequestOperationManager*manager=[AFHTTPRequestOperationManager manager];
|
||
manager.requestSerializer = [AFJSONRequestSerializer serializer];
|
||
manager.responseSerializer=[AFHTTPResponseSerializer serializer];
|
||
//此接口不带请求头参数 带请求头参数的全在AFHttptool里
|
||
__weak typeof (self)weakself = self;
|
||
[manager POST:IfishGetLookReport parameters:self.baGaoDic constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
|
||
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
|
||
|
||
formatter.dateFormat = @"yyyyMMddHHmmss";
|
||
|
||
NSString *str = [formatter stringFromDate:[NSDate date]];
|
||
|
||
NSString *fileName = [NSString stringWithFormat:@"%@.png", str];
|
||
|
||
NSString *name = @"fileUpload";
|
||
|
||
// NSData*imgdata=UIImagePNGRepresentation(image);
|
||
|
||
[formData appendPartWithFileData:imgData name:name fileName:fileName mimeType:@"image/png"];
|
||
|
||
|
||
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
|
||
|
||
NSDictionary*resultDic=[NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
|
||
NSLog(@"result:%@",resultDic[@"result"]);
|
||
[weakself.view hideToastActivity];
|
||
if ([resultDic[@"result"] isEqualToString:@"100"]) {
|
||
|
||
NSDictionary *datadic=resultDic[@"data"];
|
||
KanHuBaoGaoModel *bgModel=[[KanHuBaoGaoModel alloc] init];
|
||
bgModel.baifenbi = datadic[@"baifenbi"];
|
||
bgModel.fileName = datadic[@"fileName"];
|
||
bgModel.timestamp = datadic[@"timestamp"];
|
||
bgModel.totalIndex = datadic[@"totalIndex"];
|
||
bgModel.reportId = datadic[@"reportId"];
|
||
bgModel.shareImg = datadic[@"shareImg"];
|
||
|
||
|
||
if (_isOkRenderVideoFrame) {
|
||
|
||
[weakself stopGLViewVideo];
|
||
}
|
||
|
||
[self.view hideToastActivity];
|
||
LookAfterReportViewController *lookBaoGao = [[LookAfterReportViewController alloc] init];
|
||
lookBaoGao.baGaoMod = bgModel;
|
||
lookBaoGao.listModel = self.kanHuCamera;
|
||
lookBaoGao.pinFenArr = self.pinFenArray;
|
||
lookBaoGao.suggesttrue = self.suggetion;
|
||
|
||
usleep(50*1000);
|
||
[weakself.navigationController pushViewController:lookBaoGao animated:YES];
|
||
|
||
}else{
|
||
|
||
[self.view makeToast:@"生成失败"];
|
||
[self.view hideToastActivity];
|
||
}
|
||
|
||
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
|
||
[self.view hideToastActivity];
|
||
[weakself.view makeToast:@"请检查网络"];
|
||
}];
|
||
|
||
|
||
|
||
}
|
||
-(void)viewWillAppear:(BOOL)animated{
|
||
[super viewWillAppear:animated];
|
||
//屏幕长亮
|
||
[[ UIApplication sharedApplication] setIdleTimerDisabled:YES];
|
||
|
||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveRemoteMessage:) name:RECEIVE_REMOTE_MESSAGE object:nil];
|
||
//在线人数监控
|
||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receivePlayingMessage:) name:RECEIVE_PLAYING_CMD object:nil];
|
||
self.navigationController.navigationBarHidden = NO;
|
||
_isCanAutoOrientation = YES;
|
||
//设置默认竖屏
|
||
[[AppDelegate sharedDefault] application:[UIApplication sharedApplication] supportedInterfaceOrientationsForWindow:[AppDelegate sharedDefault].window];
|
||
|
||
[self cameraConnectSeting];
|
||
|
||
}
|
||
|
||
- (void)viewDidAppear:(BOOL)animated
|
||
{
|
||
[super viewDidAppear:animated];
|
||
|
||
// 禁用 iOS7 返回手势
|
||
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
|
||
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
|
||
}
|
||
}
|
||
|
||
|
||
-(void)viewWillDisappear:(BOOL)animated{
|
||
[super viewWillDisappear:animated];
|
||
//屏幕长亮关闭
|
||
[[ UIApplication sharedApplication] setIdleTimerDisabled:NO];
|
||
|
||
//离开此页面开启返回手势
|
||
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
|
||
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
|
||
}
|
||
|
||
[AppDelegate sharedDefault].canFullScreen = NO;
|
||
self.isReject = YES;
|
||
|
||
[[UIApplication sharedApplication] setStatusBarHidden:NO];
|
||
if (self.isFullScreen){
|
||
if (self.scrollView){
|
||
[self.scrollView setZoomScale:1.0];
|
||
}
|
||
}
|
||
|
||
[[NSNotificationCenter defaultCenter] removeObserver:self name:RECEIVE_REMOTE_MESSAGE object:nil];
|
||
[[NSNotificationCenter defaultCenter] removeObserver:self name:RECEIVE_PLAYING_CMD object:nil];
|
||
|
||
}
|
||
|
||
|
||
#define MESG_SET_GPIO_PERMISSION_DENIED 86
|
||
#define MESG_GPIO_CTRL_QUEUE_IS_FULL 87
|
||
#define MESG_SET_DEVICE_NOT_SUPPORT 255
|
||
|
||
#define GPIO0_0 10
|
||
#define GPIO0_1 11
|
||
#define GPIO0_2 12
|
||
#define GPIO0_3 13
|
||
#define GPIO0_4 14
|
||
#define GPIO2_6 15
|
||
- (void)receiveRemoteMessage:(NSNotification *)notification{
|
||
NSDictionary *parameter = [notification userInfo];
|
||
int key = [[parameter valueForKey:@"key"] intValue];
|
||
switch(key){
|
||
case RET_GET_FOCUS_ZOOM:
|
||
{
|
||
int value = [[parameter valueForKey:@"value"] intValue];
|
||
|
||
if (value == 3) {//变倍变焦都有
|
||
dispatch_async(dispatch_get_main_queue(), ^{
|
||
self.isSupportFocalLength = YES;
|
||
[self.pinchGestureRecognizer addTarget:self action:@selector(localLengthPinchToZoom:)];
|
||
});
|
||
}else if (value == 2){//只有变焦
|
||
dispatch_async(dispatch_get_main_queue(), ^{
|
||
self.isSupportFocalLength = YES;
|
||
});
|
||
|
||
}else if (value == 1){//只有变倍
|
||
dispatch_async(dispatch_get_main_queue(), ^{
|
||
[self.pinchGestureRecognizer addTarget:self action:@selector(localLengthPinchToZoom:)];
|
||
});
|
||
|
||
}
|
||
}
|
||
break;
|
||
case RET_SET_GPIO_CTL:
|
||
{
|
||
int result = [[parameter valueForKey:@"result"] intValue];
|
||
|
||
dispatch_async(dispatch_get_main_queue(), ^{
|
||
self.clickGPIO0_0Button.backgroundColor = [UIColor clearColor];
|
||
self.clickGPIO0_1Button.backgroundColor = [UIColor clearColor];
|
||
self.clickGPIO0_2Button.backgroundColor = [UIColor clearColor];
|
||
self.clickGPIO0_3Button.backgroundColor = [UIColor clearColor];
|
||
self.clickGPIO0_4Button.backgroundColor = [UIColor clearColor];
|
||
self.clickGPIO2_6Button.backgroundColor = [UIColor clearColor];
|
||
});
|
||
if (result == 0) {
|
||
//设置成功
|
||
dispatch_async(dispatch_get_main_queue(), ^{
|
||
[self.view makeToast:NSLocalizedString(@"operator_success", nil)];
|
||
});
|
||
}else if (result == MESG_SET_GPIO_PERMISSION_DENIED){
|
||
//该GPIO未开放
|
||
dispatch_async(dispatch_get_main_queue(), ^{
|
||
|
||
[self.view makeToast:NSLocalizedString(@"not_open", nil)];
|
||
});
|
||
}else if (result == MESG_GPIO_CTRL_QUEUE_IS_FULL){
|
||
//操作过于频繁,之前的操作未执行完
|
||
dispatch_async(dispatch_get_main_queue(), ^{
|
||
|
||
[self.view makeToast:NSLocalizedString(@"too_frequent", nil)];
|
||
});
|
||
}else if(result == MESG_SET_DEVICE_NOT_SUPPORT){
|
||
//设备不支持此操作
|
||
dispatch_async(dispatch_get_main_queue(), ^{
|
||
|
||
[self.view makeToast:NSLocalizedString(@"not_support_operation", nil)];
|
||
});
|
||
}
|
||
}
|
||
break;
|
||
case RET_GET_LIGHT_SWITCH_STATE:
|
||
{
|
||
int result = [[parameter valueForKey:@"result"] intValue];
|
||
|
||
if (result == 0) {
|
||
int state = [[parameter valueForKey:@"state"] intValue];
|
||
|
||
dispatch_async(dispatch_get_main_queue(), ^{
|
||
self.isSupportLightSwitch = YES;
|
||
if (state == 1) {//灯是开状态
|
||
self.isLightSwitchOn = YES;
|
||
[self.lightButton setBackgroundImage:[UIImage imageNamed:@"lighton.png"] forState:UIControlStateNormal];
|
||
}else{
|
||
self.isLightSwitchOn = NO;
|
||
[self.lightButton setBackgroundImage:[UIImage imageNamed:@"lightoff.png"] forState:UIControlStateNormal];
|
||
}
|
||
});
|
||
}
|
||
}
|
||
break;
|
||
case RET_SET_LIGHT_SWITCH_STATE:
|
||
{
|
||
int result = [[parameter valueForKey:@"result"] intValue];
|
||
|
||
if (result == 0) {
|
||
dispatch_async(dispatch_get_main_queue(), ^{
|
||
[self.lightButton setHidden:NO];
|
||
[self.progressView setHidden:YES];
|
||
[self.progressView stopAnimating];
|
||
if (self.isLightSwitchOn) {//灯正开着
|
||
self.isLightSwitchOn = NO;//关灯
|
||
[self.lightButton setBackgroundImage:[UIImage imageNamed:@"lightoff.png"] forState:UIControlStateNormal];
|
||
}else{//灯正关着
|
||
self.isLightSwitchOn = YES;//开灯
|
||
[self.lightButton setBackgroundImage:[UIImage imageNamed:@"lighton.png"] forState:UIControlStateNormal];
|
||
}
|
||
});
|
||
}
|
||
}
|
||
break;
|
||
case RET_DEVICE_NOT_SUPPORT:
|
||
{
|
||
dispatch_async(dispatch_get_main_queue(), ^{
|
||
self.clickGPIO0_0Button.backgroundColor = [UIColor clearColor];
|
||
self.clickGPIO0_1Button.backgroundColor = [UIColor clearColor];
|
||
self.clickGPIO0_2Button.backgroundColor = [UIColor clearColor];
|
||
self.clickGPIO0_3Button.backgroundColor = [UIColor clearColor];
|
||
self.clickGPIO0_4Button.backgroundColor = [UIColor clearColor];
|
||
self.clickGPIO2_6Button.backgroundColor = [UIColor clearColor];
|
||
|
||
//[self.view makeToast:NSLocalizedString(@"device_not_support", nil)];
|
||
});
|
||
}
|
||
break;
|
||
case RET_GET_NPCSETTINGS_REMOTE_DEFENCE:
|
||
{
|
||
dispatch_async(dispatch_get_main_queue(), ^{
|
||
NSInteger state = [[parameter valueForKey:@"state"] intValue];
|
||
if(state==SETTING_VALUE_REMOTE_DEFENCE_STATE_ON)
|
||
{
|
||
//竖屏
|
||
|
||
[self.defenceButtonH setImage:LXImageWithImageName(@"monitor_defence_on_h.png")forState:UIControlStateNormal];
|
||
[self.defenceButtonH setImage:LXImageWithImageName(@"monitor_defence_on_h_p.png") forState:UIControlStateHighlighted];
|
||
//获取到布防状态,设置为可点且显示相应的图标
|
||
self.defenceButtonH.enabled = YES;
|
||
|
||
|
||
self.isDefenceOn = YES;
|
||
|
||
//横屏
|
||
[_btnDefence setBackgroundImage:LXImageWithImageName(@"ic_ctl_lock_on.png") forState:UIControlStateNormal];
|
||
}
|
||
else
|
||
{
|
||
//竖屏
|
||
[self.defenceButtonH setImage:LXImageWithImageName(@"monitor_defence_off_h.png") forState:UIControlStateNormal];
|
||
[self.defenceButtonH setImage:LXImageWithImageName(@"monitor_defence_off_h_p.png") forState:UIControlStateHighlighted];
|
||
//获取到布防状态,设置为可点且显示相应的图标
|
||
self.defenceButtonH.enabled = YES;
|
||
|
||
|
||
self.isDefenceOn = NO;
|
||
|
||
//横屏
|
||
[_btnDefence setBackgroundImage:LXImageWithImageName(@"ic_ctl_lock_off.png") forState:UIControlStateNormal];
|
||
}
|
||
|
||
if (_btnDefence.hidden == YES) {
|
||
_btnDefence.hidden = NO;
|
||
}
|
||
});
|
||
}
|
||
break;
|
||
|
||
case RET_SET_NPCSETTINGS_REMOTE_DEFENCE:
|
||
{
|
||
dispatch_async(dispatch_get_main_queue(), ^{
|
||
NSInteger state = [[parameter valueForKey:@"state"] intValue];
|
||
if(state==SETTING_VALUE_REMOTE_DEFENCE_STATE_ON){
|
||
//竖屏
|
||
// LXImageWithImageName(@"ic_ctl_lock_off.png")
|
||
[self.defenceButtonH setImage:LXImageWithImageName(@"monitor_defence_on_h.png") forState:UIControlStateNormal];
|
||
[self.defenceButtonH setImage:LXImageWithImageName(@"monitor_defence_on_h_p.png") forState:UIControlStateHighlighted];
|
||
|
||
|
||
self.isDefenceOn = YES;
|
||
|
||
//横屏
|
||
[_btnDefence setBackgroundImage:LXImageWithImageName(@"ic_ctl_lock_on.png") forState:UIControlStateNormal];
|
||
}else{
|
||
//竖屏
|
||
[self.defenceButtonH setImage:LXImageWithImageName(@"monitor_defence_off_h.png") forState:UIControlStateNormal];
|
||
[self.defenceButtonH setImage:LXImageWithImageName(@"monitor_defence_off_h_p.png") forState:UIControlStateHighlighted];
|
||
|
||
|
||
self.isDefenceOn = NO;
|
||
|
||
//横屏
|
||
[_btnDefence setBackgroundImage:LXImageWithImageName(@"ic_ctl_lock_off.png") forState:UIControlStateNormal];
|
||
}
|
||
});
|
||
}
|
||
break;
|
||
|
||
|
||
|
||
}
|
||
}
|
||
|
||
#pragma mark- 在线人数
|
||
-(void)receivePlayingMessage:(NSNotification *)notification
|
||
{
|
||
NSDictionary *parameter = [notification userInfo];
|
||
int key = [[parameter valueForKey:@"WathNumber"] intValue];
|
||
|
||
_OnLine ++ ;
|
||
if (key<=1) {
|
||
//_OnLine = key;
|
||
NSLog(@"当前在线人数%d",key);
|
||
//获取到在线人数后 关注人数+1 子类中实现
|
||
[self popularityAdd:key];
|
||
|
||
}else{
|
||
|
||
if (_OnLine>2) {
|
||
|
||
return;
|
||
}
|
||
|
||
[self stopGLViewVideo];
|
||
[self alreadyHaveLookP];
|
||
|
||
|
||
}
|
||
|
||
}
|
||
|
||
#pragma mark - 已有人观看
|
||
-(void)alreadyHaveLookP{
|
||
|
||
}
|
||
|
||
#pragma mark - 人气加1 子类实现
|
||
-(void)popularityAdd:(int)onLineP
|
||
{
|
||
|
||
|
||
}
|
||
|
||
#pragma mark - 改变焦距
|
||
-(void)btnClickToChangeFocalLength:(id)sender{
|
||
UIView *view = (UIView *)sender;
|
||
if (view.tag == FocalLength_Elongation_btnTag) {
|
||
//焦距变长
|
||
BYTE cmdData[5] = {0};
|
||
cmdData[0] = 0x05;
|
||
fgSendUserData(9, 1, cmdData, sizeof(cmdData));
|
||
}else if (view.tag == FocalLength_Shorten_btnTag){
|
||
//焦距变短
|
||
BYTE cmdData[5] = {0};
|
||
cmdData[0] = 0x15;
|
||
fgSendUserData(9, 1, cmdData, sizeof(cmdData));
|
||
}else{
|
||
UISlider *focalLengthSlider = (UISlider *)view;
|
||
if (focalLengthSlider.value < 7.5) {
|
||
//焦距变长
|
||
BYTE cmdData[5] = {0};
|
||
cmdData[0] = 0x05;
|
||
fgSendUserData(9, 1, cmdData, sizeof(cmdData));
|
||
}else{
|
||
//焦距变短
|
||
BYTE cmdData[5] = {0};
|
||
cmdData[0] = 0x15;
|
||
fgSendUserData(9, 1, cmdData, sizeof(cmdData));
|
||
}
|
||
focalLengthSlider.value = 7.5;
|
||
}
|
||
}
|
||
|
||
#pragma mark - 焦距变倍
|
||
-(void)localLengthPinchToZoom:(id)sender {
|
||
if (!self.isFullScreen) {
|
||
return;
|
||
}
|
||
|
||
if([(UIPinchGestureRecognizer*)sender state] == UIGestureRecognizerStateEnded) {
|
||
if ([(UIPinchGestureRecognizer*)sender scale] > 1.0) {
|
||
BYTE cmdData[5] = {0};
|
||
cmdData[0] = 0x05;
|
||
fgSendUserData(9, 2, cmdData, sizeof(cmdData));
|
||
}else{
|
||
BYTE cmdData[5] = {0};
|
||
cmdData[0] = 0x15;
|
||
fgSendUserData(9, 2, cmdData, sizeof(cmdData));
|
||
}
|
||
}
|
||
}
|
||
|
||
//加tab 栏后新增
|
||
|
||
-(void)cameraConnectSeting{
|
||
//rtsp监控界面弹出修改
|
||
[self monitorP2PCall];
|
||
//设置代理
|
||
[[P2PClient sharedClient] setDelegate:self];
|
||
[self hiddenMonitoringUI:NO callErrorInfo:nil isReCall:YES];
|
||
|
||
}
|
||
|
||
- (void)didReceiveMemoryWarning {
|
||
[super didReceiveMemoryWarning];
|
||
// Dispose of any resources that can be recreated.
|
||
}
|
||
|
||
|
||
#pragma mark - 监控开始渲染后,此处执行相关操作
|
||
-(void)doOperationsAfterMonitorStartRender{//rtsp监控界面弹出修改
|
||
|
||
/*
|
||
*1. 应该放在监控准备就绪之后(即渲染之后)
|
||
*/
|
||
// [[PAIOUnit sharedUnit] setMuteAudio:YES];
|
||
// [[PAIOUnit sharedUnit] setSpeckState:YES];
|
||
|
||
|
||
//放在渲染之后
|
||
if([AppDelegate sharedDefault].isDoorBellAlarm){//门铃推送,点按开关说话
|
||
self.isTalking = YES;
|
||
[self.pressView setHidden:NO];
|
||
//[[PAIOUnit sharedUnit] setSpeckState:NO];
|
||
}else{
|
||
self.isTalking = NO;
|
||
[self.pressView setHidden:YES];
|
||
// [[PAIOUnit sharedUnit] setSpeckState:YES];
|
||
}
|
||
|
||
NSString *callId = [[P2PClient sharedClient] callId];
|
||
NSString *callPassword = [[P2PClient sharedClient] callPassword];
|
||
[[P2PClient sharedClient]getDefenceState:callId password:callPassword];
|
||
|
||
|
||
//判断设备是否支持变倍变焦(38)
|
||
[[P2PClient sharedClient] getNpcSettingsWithId:callId password:callPassword];
|
||
}
|
||
|
||
|
||
|
||
#pragma mark - 监控竖屏时,各控件初始化
|
||
|
||
#define BOTTOM_BAR_HEIGHT (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? 95.0:50.0)
|
||
|
||
#define PRESS_LAYOUT_WIDTH_AND_HEIGHT 38
|
||
|
||
#define CONTROLLER_BTN_COUNT 5
|
||
#define PUBLIC_WIDTH_OR_HEIGHT (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? 95.0:50.0)
|
||
#define CONTROLLER_BTN_H_W (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? 70.0:40.0) //布防、声音...高度宽度
|
||
#define RESOLUTION_BTN_H (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? 44.0:30.0) //分辨率按钮高度
|
||
|
||
#define CONTROLLER_RIGHT_ITEM_WIDTH 70
|
||
#define CONTROLLER_RIGHT_ITEM_HEIGHT 40
|
||
#define CONTROLLER_LEFT_ITEM_WIDTH 20
|
||
|
||
#define CONTROLLER_BTN_TAG_HUNGUP 0
|
||
#define CONTROLLER_BTN_TAG_SOUND 1
|
||
#define CONTROLLER_BTN_TAG_SCREENSHOT 2
|
||
#define CONTROLLER_BTN_TAG_PRESS_TALK 3
|
||
#define CONTROLLER_BTN_TAG_DEFENCE_LOCK 4
|
||
#define CONTROLLER_BTN_TAG_HD 5
|
||
#define CONTROLLER_BTN_TAG_SD 6
|
||
#define CONTROLLER_BTN_TAG_LD 7
|
||
#define CONTROLLER_BTN_TAG_RESOLUTION 8
|
||
#define CONTROLLER_LABEL_TAG_HD 10
|
||
#define CONTROLLER_LABEL_TAG_SD 11
|
||
#define CONTROLLER_LABEL_TAG_LD 12
|
||
|
||
#define CONTROLLER_BTN_TAG_GPIO1_0 13 //lock
|
||
|
||
#define LEFTVIEW_WIDTH (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? 88:88)
|
||
#define LEFTVIEW_HEIGHT (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? 120:120)
|
||
#define CUSTOM_BORDER_BUTTON_WIDTH 20
|
||
#define CUSTOM_BORDER_BUTTON_HEIGHT 45
|
||
#define LEFT_BAR_BTN_WIDTH (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? 90:60)
|
||
#define LEFT_BAR_BTN_MARGIN (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? 15:10)
|
||
|
||
|
||
|
||
#define LOADINGPRESSVIEW_WIDTH_HEIGHT (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? 50:80)
|
||
-(void)initComponentForPortrait{
|
||
|
||
|
||
//view的背景颜色
|
||
[self.view setBackgroundColor:COLOR_MIAN];
|
||
|
||
//显示状态栏
|
||
[[UIApplication sharedApplication] setStatusBarHidden:NO];
|
||
|
||
|
||
//取得竖屏的rect
|
||
CGRect rect = [AppDelegate getScreenSize:YES isHorizontal:NO];
|
||
CGFloat width = rect.size.width;
|
||
|
||
CGFloat height = rect.size.height;
|
||
if(CURRENT_VERSION<7.0){
|
||
height +=20;
|
||
}
|
||
|
||
|
||
//右侧下拉菜单
|
||
|
||
// UIButton*rightButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||
// rightButton.frame = CGRectMake(0, 0, 60, 44);
|
||
// [rightButton setImage:[UIImage imageNamed:@"ifishnav_dropview_list"] forState:UIControlStateNormal];
|
||
// [rightButton addTarget:self action:@selector(popAppear) forControlEvents:UIControlEventTouchUpInside];
|
||
// self.rightPopButton = rightButton;
|
||
// [self.rightPopButton setImageEdgeInsets:UIEdgeInsetsMake(0, 30, 0, 0)];
|
||
//
|
||
// UIBarButtonItem*rightItem = [[UIBarButtonItem alloc]initWithCustomView:self.rightPopButton];
|
||
// self.navigationItem.rightBarButtonItem = rightItem;
|
||
|
||
|
||
|
||
|
||
//显示监控画面的载体canvasView
|
||
CGFloat canvasView_h = [UIScreen mainScreen].bounds.size.width * 9/16;
|
||
UIView *canvasView = [[UIView alloc] initWithFrame:CGRectMake(0, 64, width, canvasView_h)];
|
||
canvasView.backgroundColor = [UIColor blackColor];
|
||
[self.view addSubview:canvasView];
|
||
self.canvasView = canvasView;
|
||
self.canvasframe = canvasView.frame;
|
||
|
||
//视频监控连接中的背景图片
|
||
NSString *filePath = [Utils getHeaderFilePathWithId:self.kanHuCamera.cameraId];
|
||
UIImage *headImg = [UIImage imageWithContentsOfFile:filePath];
|
||
if(headImg==nil){
|
||
headImg = LXImageWithImageName(@"ic_header.png");
|
||
}
|
||
self.canvasView.layer.contents = (id)headImg.CGImage;
|
||
|
||
|
||
//视频监控连接中或者连接失败的文字提示,以及旋转或者重连图片
|
||
UIButton *promptButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||
promptButton.frame = CGRectMake(0.0, 0.0, self.canvasView.frame.size.width, self.canvasView.frame.size.height);
|
||
promptButton.backgroundColor = [UIColor clearColor];
|
||
promptButton.tag = PROMPT_BUTTON_TAG;
|
||
[promptButton addTarget:self action:@selector(onVerticalBtnPress:) forControlEvents:UIControlEventTouchUpInside];
|
||
[self.canvasView addSubview:promptButton];
|
||
self.promptButton = promptButton;
|
||
//文字frame
|
||
NSString *labelTipText = [NSString stringWithFormat:@"%@",NSLocalizedString(@"玩命加载中...", nil)];
|
||
CGSize size = [labelTipText sizeWithFont:XFontBold_16];
|
||
CGFloat labelTip_w = size.width+10.0;
|
||
CGFloat labelTip_h = size.height;
|
||
//图片frame
|
||
CGFloat progressView_wh = LOADINGPRESSVIEW_WIDTH_HEIGHT;
|
||
CGFloat progressView_y = (self.canvasView.frame.size.height-labelTip_h-progressView_wh)/2;
|
||
// 旋转或者重连图片 或者开始监控图片
|
||
ProgressImageView *progressView = [[ProgressImageView alloc] initWithFrame:CGRectMake((width-progressView_wh)/2, progressView_y, progressView_wh, progressView_wh)];
|
||
|
||
progressView.backgroundView.image = LXImageWithImageName(@"monitor_press.png");
|
||
[self.promptButton addSubview:progressView];
|
||
[progressView start];
|
||
self.yProgressView = progressView;
|
||
|
||
//视频监控连接中或者连接失败的文字提示
|
||
UILabel* labelTip = [[UILabel alloc] initWithFrame:CGRectMake((width-labelTip_w)/2, progressView_y+progressView_wh, labelTip_w, labelTip_h)];
|
||
labelTip.backgroundColor = [UIColor clearColor];
|
||
labelTip.text = [NSString stringWithFormat:@"%@",NSLocalizedString(@"monitor_out_prompt", nil)];
|
||
labelTip.textAlignment = NSTextAlignmentCenter;
|
||
labelTip.font = XFontBold_16;
|
||
labelTip.textColor = XWhite;
|
||
//打开可以显示监控连接中或者连接失败的文字提示
|
||
// [self.promptButton addSubview:labelTip];
|
||
self.labelTip = labelTip;
|
||
|
||
//显示监控的画布OpenGLView
|
||
|
||
OpenGLView *glView = [[OpenGLView alloc] init];
|
||
|
||
|
||
glView.frame = CGRectMake(0.0, 0.0, self.canvasView.frame.size.width, self.canvasView.frame.size.height);
|
||
self.remoteView = glView;
|
||
self.remoteView.delegate = self;
|
||
[self.remoteView.layer setMasksToBounds:YES];
|
||
[self.canvasView addSubview:self.remoteView];
|
||
|
||
|
||
//、横屏工具栏
|
||
|
||
CGFloat midtH=self.canvasView.frame.size.height/5;
|
||
UIView *midToolHView = [[UIView alloc] initWithFrame:CGRectMake(0.0, CGRectGetMaxY(self.canvasView.frame), width,0)];
|
||
midToolHView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5];
|
||
|
||
[self.view addSubview:midToolHView];
|
||
[self.view bringSubviewToFront:midToolHView];
|
||
|
||
self.midToolHView = midToolHView;//全屏时,隐藏
|
||
//_remoteView 添加点击手势现实和隐藏 midToolHView
|
||
UITapGestureRecognizer *appermidToolView=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onSingleTap)];
|
||
|
||
[appermidToolView setCancelsTouchesInView:YES];
|
||
[appermidToolView setDelaysTouchesEnded:YES];
|
||
|
||
//暂停按钮
|
||
self.stopBtnH = [UIButton buttonWithType:UIButtonTypeCustom];
|
||
self.stopBtnH.frame = CGRectMake(50.0/SCREEN_SCALE, (midtH - midtH/2)/2, midtH/2, midtH/2);
|
||
self.stopBtnH.tag = STOPBTN_TAG;
|
||
[self.stopBtnH addTarget:self action:@selector(onVerticalBtnPress:) forControlEvents:UIControlEventTouchUpInside];
|
||
|
||
self.stopBtnH.hidden = YES;
|
||
[self.midToolHView addSubview:self.stopBtnH];
|
||
//暂停按钮图片
|
||
UIImage *stopImageH = LXImageWithImageName(@"monitor_stop_h");
|
||
//self.stopImageViewH = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, (self.stopBtnH.frame.size.height-stopImageH.size.height/SCREEN_SCALE)/2, stopImageH.size.width/SCREEN_SCALE, stopImageH.size.height/SCREEN_SCALE)];
|
||
|
||
self.stopImageViewH = [[UIImageView alloc] initWithFrame:CGRectMake(0,0, midtH/2, midtH/2)];
|
||
self.stopImageViewH.contentMode = UIViewContentModeScaleToFill;
|
||
self.stopImageViewH.image = stopImageH;
|
||
[self.stopBtnH addSubview:self.stopImageViewH];
|
||
|
||
|
||
|
||
//横屏按钮
|
||
self.switchScreenButtonH = [UIButton buttonWithType:UIButtonTypeCustom];
|
||
|
||
CGFloat BtnH = midtH*2/3;
|
||
self.switchScreenButtonH.frame = CGRectMake(self.midToolHView.frame.size.width-BtnH -50.0/SCREEN_SCALE, (midtH - BtnH)/2,BtnH + 50.0/SCREEN_SCALE, BtnH);
|
||
|
||
|
||
self.switchScreenButtonH.tag = SWITCH_SCREEN_BUTTON_H_TAG;
|
||
|
||
[self.switchScreenButtonH addTarget:self action:@selector(onVerticalBtnPress:) forControlEvents:UIControlEventTouchUpInside];
|
||
[self.midToolHView addSubview:self.switchScreenButtonH];
|
||
|
||
|
||
self.switchScreenButtonH.hidden = YES;
|
||
|
||
//self.switchScreenButtonH = switchScreenButtonH;
|
||
//横屏按钮图片
|
||
UIImage *switchScreenImageH = LXImageWithImageName(@"monitor_switch_screen_img_h.png");
|
||
UIImageView *switchScreenImageViewH = [[UIImageView alloc] initWithFrame:CGRectMake(0,0, BtnH, BtnH)];
|
||
switchScreenImageViewH.contentMode = UIViewContentModeScaleToFill;
|
||
switchScreenImageViewH.image = switchScreenImageH;
|
||
[self.switchScreenButtonH addSubview:switchScreenImageViewH];
|
||
|
||
|
||
// 生成报告view
|
||
|
||
KanHuBaoGaoView *baoGaoToolHView=[[KanHuBaoGaoView alloc] initWithFrame:CGRectMake(0.0, CGRectGetMaxY(self.canvasView.frame) - 1, width, self.view.frame.size.height - CGRectGetHeight(self.canvasView.frame))];
|
||
|
||
baoGaoToolHView.baoGaoViewDelegate = self;
|
||
|
||
self.HbootmView =baoGaoToolHView;
|
||
|
||
[self.view addSubview:self.HbootmView];
|
||
|
||
|
||
}
|
||
|
||
#pragma mark - baoGaoViewDelegate
|
||
|
||
-(void)shengChengBaoGaoWith:(NSString *)index1 index2:(NSString *)index2 index3:(NSString *)index3 addSuggesture:(NSString *)suggestion addPingFenArr:(NSArray *)pinFenArr{
|
||
|
||
if (self.isReject) {
|
||
|
||
[self.view makeToast:@"监控未开启"];
|
||
|
||
return;
|
||
}
|
||
|
||
|
||
[self.view makeToastActivity];
|
||
//截屏
|
||
[self.remoteView setIsScreenShotting:YES];
|
||
// UIImage *image=[Utils shopsGetImgeWithCameraId:self.kanHuCamera.cameraId];
|
||
UserModel*umodel=[[DataCenter defaultDtacenter]valueForKey:@"UserLogIn"];
|
||
NSDictionary*para=@{
|
||
@"userId":umodel.userId,
|
||
@"index1":index1,
|
||
@"index2":index2,
|
||
@"index3":index3,
|
||
@"suggestion":suggestion,
|
||
@"fileUpload":@"png"
|
||
};
|
||
|
||
self.baGaoDic = para;
|
||
self.suggetion = suggestion;
|
||
self.pinFenArray = pinFenArr;
|
||
|
||
|
||
}
|
||
|
||
#pragma mark - 监控横屏时,各控件初始化
|
||
-(void)initComponentForHorizontalScreen{
|
||
|
||
CGRect rect = [AppDelegate getScreenSize:NO isHorizontal:YES];
|
||
CGFloat width = rect.size.width;
|
||
_monitorInterfaceW = width;
|
||
|
||
CGFloat height = rect.size.height;
|
||
if(CURRENT_VERSION<7.0){
|
||
height +=20;
|
||
}
|
||
_monitorInterfaceH = height;
|
||
_horizontalScreenH = height;
|
||
|
||
//
|
||
|
||
//横屏背景
|
||
UIView *fullScreenBgView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, width, height)];
|
||
fullScreenBgView.backgroundColor = XBlack;
|
||
self.fullScreenBgView = fullScreenBgView;
|
||
|
||
//进入横屏时,响应onDoubleTap
|
||
//退出横屏时,响应onDoubleTap 暂停
|
||
UITapGestureRecognizer *doubleTapG = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onDoubleTap)];
|
||
doubleTapG.delegate = self;
|
||
[doubleTapG setNumberOfTapsRequired:2];
|
||
[self.remoteView addGestureRecognizer:doubleTapG];
|
||
|
||
//进入横屏时,响应onSingleTap
|
||
//退出横屏时,响应onSingleTap
|
||
UITapGestureRecognizer *singleTapG = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onSingleTap)];
|
||
singleTapG.delegate = self;
|
||
[singleTapG setNumberOfTapsRequired:1];
|
||
[singleTapG requireGestureRecognizerToFail:doubleTapG];
|
||
[self.remoteView addGestureRecognizer:singleTapG];
|
||
|
||
//进入横屏时,响应localLengthPinchToZoom
|
||
//退出横屏时,不响应localLengthPinchToZoom
|
||
NSString * plist = [[NSBundle mainBundle] pathForResource:@"Common-Configuration" ofType:@"plist"];
|
||
NSDictionary * dic = [NSDictionary dictionaryWithContentsOfFile:plist];
|
||
BOOL isSupportZoom = [dic[@"isSupportZoom"] boolValue];
|
||
UIPinchGestureRecognizer *pinchGestureRecognizer = [[UIPinchGestureRecognizer alloc] init];
|
||
if (!isSupportZoom) {//电子放大与焦距变倍不共存
|
||
[_remoteView addGestureRecognizer:pinchGestureRecognizer];
|
||
}
|
||
self.pinchGestureRecognizer = pinchGestureRecognizer;
|
||
|
||
|
||
//右边的画质图标
|
||
//进入横屏时,显示
|
||
//退出横屏时,隐藏
|
||
int rightItemCount = 3;
|
||
//半透明背景
|
||
UIView *controllerRightBg = [[UIView alloc] initWithFrame:CGRectMake(5.0, height, CONTROLLER_RIGHT_ITEM_WIDTH, CONTROLLER_RIGHT_ITEM_HEIGHT*rightItemCount)];
|
||
controllerRightBg.layer.cornerRadius = 1.0f;
|
||
[controllerRightBg setAlpha:0.5];
|
||
[controllerRightBg setBackgroundColor:XBlack];
|
||
self.controllerRightBg = controllerRightBg;
|
||
[self.view addSubview:controllerRightBg];
|
||
[self.controllerRightBg setHidden:YES];
|
||
|
||
|
||
UIView *controllerRight = [[UIView alloc] initWithFrame:CGRectMake(5.0, height, CONTROLLER_RIGHT_ITEM_WIDTH, CONTROLLER_RIGHT_ITEM_HEIGHT*rightItemCount)];
|
||
self.controllerRight = controllerRight;
|
||
[self.view addSubview:controllerRight];
|
||
[self.controllerRight setHidden:YES];
|
||
//分隔线
|
||
for (int i=1; i < rightItemCount; i++) {
|
||
UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(0.0, i*CONTROLLER_RIGHT_ITEM_HEIGHT+1.0*(i-1), CONTROLLER_RIGHT_ITEM_WIDTH, 1.0)];
|
||
lineView.backgroundColor = XWhite;
|
||
[controllerRight addSubview:lineView];
|
||
|
||
}
|
||
|
||
for(int i=0;i<rightItemCount;i++){
|
||
TouchButton *button = [self getBottomBarButton];
|
||
button.frame = CGRectMake(0, (CONTROLLER_RIGHT_ITEM_HEIGHT+1.0)*i, CONTROLLER_RIGHT_ITEM_WIDTH, CONTROLLER_RIGHT_ITEM_HEIGHT);
|
||
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, button.frame.size.width, button.frame.size.height)];
|
||
label.backgroundColor = [UIColor clearColor];
|
||
label.textAlignment = NSTextAlignmentCenter;
|
||
label.textColor = XWhite;
|
||
label.font = [UIFont boldSystemFontOfSize:16.0];
|
||
|
||
if(rightItemCount==2){//NPC
|
||
//无高清
|
||
if(i==0){
|
||
//label.text = NSLocalizedString(@"SD", nil);
|
||
label.text = NSLocalizedString(@"标清", nil);
|
||
label.tag = CONTROLLER_LABEL_TAG_SD;
|
||
button.tag = CONTROLLER_BTN_TAG_SD;
|
||
}else if(i==1){
|
||
label.text = NSLocalizedString(@"流畅", nil);
|
||
label.tag = CONTROLLER_LABEL_TAG_LD;
|
||
label.textColor = XBlue;
|
||
button.tag = CONTROLLER_BTN_TAG_LD;
|
||
}
|
||
}else if(rightItemCount==3){//IPC
|
||
//有高清
|
||
if(i==0){
|
||
label.text = NSLocalizedString(@"高清", nil);
|
||
label.tag = CONTROLLER_LABEL_TAG_HD;
|
||
button.tag = CONTROLLER_BTN_TAG_HD;
|
||
}else if(i==1){
|
||
label.text = NSLocalizedString(@"标清", nil);
|
||
label.tag = CONTROLLER_LABEL_TAG_SD;
|
||
label.textColor = XBlue;
|
||
button.tag = CONTROLLER_BTN_TAG_SD;
|
||
}else if(i==2){
|
||
label.text = NSLocalizedString(@"流畅", nil);
|
||
label.tag = CONTROLLER_LABEL_TAG_LD;
|
||
button.tag = CONTROLLER_BTN_TAG_LD;
|
||
//
|
||
|
||
}
|
||
}
|
||
[button addSubview:label];
|
||
|
||
[button addTarget:self action:@selector(onControllerBtnPress:) forControlEvents:UIControlEventTouchUpInside];
|
||
|
||
[controllerRight addSubview:button];
|
||
}
|
||
|
||
|
||
|
||
|
||
//进入横屏时,显示
|
||
//退出横屏时,隐藏
|
||
//底部半透明块
|
||
|
||
UIView *bottomBarView = [[UIView alloc] initWithFrame:CGRectMake(0.0, height-BOTTOM_BAR_HEIGHT, width, BOTTOM_BAR_HEIGHT)];
|
||
self.bottomBarView = bottomBarView;
|
||
[self.view addSubview:bottomBarView];
|
||
[self.bottomBarView setHidden:YES];
|
||
//左边的画质图标
|
||
//由于要隐藏掉此处改为暂停按钮
|
||
TouchButton *resolutionButton = [self getBottomBarButton];
|
||
[resolutionButton setFrame:CGRectMake(5.0, (BOTTOM_BAR_HEIGHT-RESOLUTION_BTN_H)/2.0, CONTROLLER_RIGHT_ITEM_WIDTH, RESOLUTION_BTN_H)];
|
||
resolutionButton.tag = CONTROLLER_BTN_TAG_RESOLUTION;
|
||
if (rightItemCount == 2) {
|
||
[resolutionButton setTitle:NSLocalizedString(@"LD", nil) forState:UIControlStateNormal];
|
||
}else{
|
||
[resolutionButton setTitle:NSLocalizedString(@"SD", nil) forState:UIControlStateNormal];
|
||
}
|
||
|
||
[resolutionButton setBackgroundImage:LXImageWithImageName(@"ic_ctl_resolution.png") forState:UIControlStateNormal];
|
||
[resolutionButton addTarget:self action:@selector(selectResolutionClick:) forControlEvents:UIControlEventTouchUpInside];
|
||
|
||
//暂时隐藏之选择高清
|
||
//[bottomBarView addSubview:resolutionButton];
|
||
|
||
|
||
|
||
|
||
|
||
//全屏暂停回来 openGlView 出现问题scale改变?
|
||
|
||
// _HorizontalStopBtn=[UIButton buttonWithType:UIButtonTypeCustom];
|
||
//
|
||
// _HorizontalStopBtn.frame = CGRectMake(5.0, (BOTTOM_BAR_HEIGHT-RESOLUTION_BTN_H)/2.0, CONTROLLER_LEFT_ITEM_WIDTH, RESOLUTION_BTN_H);
|
||
// _HorizontalStopBtn.tag =VT_STOPBTN_TAG;
|
||
// [_HorizontalStopBtn setBackgroundImage:LXImageWithImageName(@"monitor_stop_h.png") forState:UIControlStateNormal];
|
||
// [_HorizontalStopBtn addTarget:self action:@selector(HorizontalStopBtnPress:) forControlEvents:UIControlEventTouchUpInside];
|
||
// [bottomBarView addSubview:_HorizontalStopBtn];
|
||
//
|
||
|
||
//右边的切换屏幕图标
|
||
TouchButton *switchScreenButton = [self getBottomBarButton];
|
||
[switchScreenButton setFrame:CGRectMake(width-CONTROLLER_BTN_H_W-5.0, (BOTTOM_BAR_HEIGHT-CONTROLLER_BTN_H_W)/2.0, CONTROLLER_BTN_H_W, CONTROLLER_BTN_H_W)];
|
||
switchScreenButton.tag = SWITCH_SCREEN_BUTTON_H_TAG;
|
||
[switchScreenButton setBackgroundImage:LXImageWithImageName(@"monitor_half_screen.png") forState:UIControlStateNormal];
|
||
[switchScreenButton addTarget:self action:@selector(onVerticalBtnPress:) forControlEvents:UIControlEventTouchUpInside];
|
||
[bottomBarView addSubview:switchScreenButton];
|
||
|
||
//右边的挂断图标
|
||
TouchButton *hungUpButton = [self getBottomBarButton];
|
||
[hungUpButton setFrame:CGRectMake(switchScreenButton.frame.origin.x-CONTROLLER_BTN_H_W-5.0, (BOTTOM_BAR_HEIGHT-CONTROLLER_BTN_H_W)/2.0, CONTROLLER_BTN_H_W, CONTROLLER_BTN_H_W)];
|
||
hungUpButton.tag = CONTROLLER_BTN_TAG_HUNGUP;
|
||
[hungUpButton setBackgroundImage:LXImageWithImageName(@"ic_ctl_new_hungup.png") forState:UIControlStateNormal];
|
||
[hungUpButton addTarget:self action:@selector(onControllerBtnPress:) forControlEvents:UIControlEventTouchUpInside];
|
||
// [bottomBarView addSubview:hungUpButton];
|
||
|
||
//布防撤防、声音开关、截图开关、按住说话开关、开门按钮
|
||
UIView *controllBar = [[UIView alloc] initWithFrame:CGRectMake(CONTROLLER_RIGHT_ITEM_WIDTH+5.0, 0.0, width-CONTROLLER_RIGHT_ITEM_WIDTH-5.0-PUBLIC_WIDTH_OR_HEIGHT*2-5.0*2, PUBLIC_WIDTH_OR_HEIGHT)];
|
||
controllBar.backgroundColor = [UIColor clearColor];
|
||
self.controllBar = controllBar;
|
||
|
||
int btnCount = CONTROLLER_BTN_COUNT;
|
||
|
||
CGFloat firstControllerBtnX = (controllBar.frame.size.width-PUBLIC_WIDTH_OR_HEIGHT*btnCount)/2.0;
|
||
for(int i=0;i<btnCount;i++){
|
||
TouchButton *controllerBtn = [self getBottomBarButton];
|
||
controllerBtn.frame = CGRectMake(PUBLIC_WIDTH_OR_HEIGHT*i+firstControllerBtnX, (BOTTOM_BAR_HEIGHT-CONTROLLER_BTN_H_W)/2.0, CONTROLLER_BTN_H_W,CONTROLLER_BTN_H_W);
|
||
|
||
if(i==0){//布防撤防
|
||
_btnDefence = controllerBtn;
|
||
_btnDefence.hidden = YES;
|
||
//LXImageWithImageName(@"long_press_lock.png")
|
||
controllerBtn.tag = CONTROLLER_BTN_TAG_DEFENCE_LOCK;
|
||
// if ([AppDelegate sharedDefault].mainController.contact.defenceState == DEFENCE_STATE_ON || [AppDelegate sharedDefault].contact.defenceState == DEFENCE_STATE_ON) {
|
||
// [controllerBtn setBackgroundImage:LXImageWithImageName(@"ic_ctl_lock_on.png") forState:UIControlStateNormal];
|
||
// self.isDefenceOn = YES;
|
||
// }else if([AppDelegate sharedDefault].mainController.contact.defenceState == DEFENCE_STATE_OFF || [AppDelegate sharedDefault].contact.defenceState == DEFENCE_STATE_OFF){
|
||
// [controllerBtn setBackgroundImage:LXImageWithImageName(@"ic_ctl_lock_off.png") forState:UIControlStateNormal];
|
||
// self.isDefenceOn = NO;
|
||
// }
|
||
}else if(i==1){//声音开关
|
||
controllerBtn.tag = CONTROLLER_BTN_TAG_SOUND;
|
||
[controllerBtn setBackgroundImage:LXImageWithImageName(@"ic_ctl_new_sound_on.png") forState:UIControlStateNormal];
|
||
controllerBtn.hidden = YES;
|
||
}else if(i==2){//按住说话开关
|
||
controllerBtn.tag = CONTROLLER_BTN_TAG_PRESS_TALK;
|
||
[controllerBtn setBackgroundImage:LXImageWithImageName(@"ic_ctl_new_send_audio.png") forState:UIControlStateNormal];
|
||
[controllerBtn setBackgroundImage:LXImageWithImageName(@"ic_ctl_new_send_audio_p.png") forState:UIControlStateHighlighted];
|
||
controllerBtn.hidden = YES;
|
||
}else if(i==3){//截图开关
|
||
controllerBtn.tag = CONTROLLER_BTN_TAG_SCREENSHOT;
|
||
[controllerBtn setBackgroundImage:LXImageWithImageName(@"ic_ctl_new_screenshot.png") forState:UIControlStateNormal];
|
||
controllerBtn.hidden = YES;
|
||
}else if(i==4){//输出6秒高电平脉冲按钮
|
||
controllerBtn.tag = CONTROLLER_BTN_TAG_GPIO1_0;
|
||
[controllerBtn setBackgroundImage:LXImageWithImageName(@"long_press_lock.png") forState:UIControlStateNormal];
|
||
controllerBtn.hidden = YES;
|
||
|
||
}
|
||
|
||
if(i==2){
|
||
//对讲按钮
|
||
|
||
}else{
|
||
[controllerBtn addTarget:self action:@selector(onControllerBtnPress:) forControlEvents:UIControlEventTouchUpInside];
|
||
}
|
||
|
||
[controllBar addSubview:controllerBtn];
|
||
}
|
||
[bottomBarView addSubview:controllBar];
|
||
|
||
|
||
|
||
//button arrow
|
||
//进入横屏时,显示
|
||
//退出横屏时,隐藏
|
||
CGFloat customBorderButtonY = (height - CUSTOM_BORDER_BUTTON_HEIGHT)/2.0;
|
||
|
||
CustomBorderButton *customBorderButton=[CustomBorderButton buttonWithType:UIButtonTypeCustom];
|
||
customBorderButton.frame = CGRectMake(0, customBorderButtonY, CUSTOM_BORDER_BUTTON_WIDTH, CUSTOM_BORDER_BUTTON_HEIGHT);
|
||
|
||
[customBorderButton setNeedLineTop:true left:true bottom:true right:true];
|
||
[customBorderButton setLineColorTop:[UIColor blackColor] left:[UIColor clearColor] bottom:[UIColor blackColor] right:[UIColor blackColor]];//用同一色边线
|
||
[customBorderButton setLineWidthTop:2.0 left:2.0 bottom:2.0 right:2.0];//设置线的粗细,这里可以随意调整
|
||
|
||
[customBorderButton setRadiusTopLeft:0 topRight:8.0 bottomLeft:0 bottomRight:8.0];//边线加弧度
|
||
[customBorderButton setClipsToBoundsWithBorder:true];//裁剪掉边线外面的区域
|
||
|
||
[customBorderButton setFillColor:[UIColor darkGrayColor]];//增加内部填充颜色
|
||
[customBorderButton setAlpha:0.5];
|
||
[customBorderButton setOpaque:YES];
|
||
|
||
|
||
[customBorderButton setImage:[UIImage imageNamed:@"button_right"] forState:UIControlStateNormal];
|
||
[customBorderButton setImage:[UIImage imageNamed:@"button_right_selected"] forState:UIControlStateHighlighted];
|
||
[customBorderButton addTarget:self action:@selector(showLeftView:) forControlEvents:UIControlEventTouchUpInside];
|
||
self.customBorderButton = customBorderButton;
|
||
|
||
//左侧界面
|
||
//进入横屏时,显示
|
||
//退出横屏时,隐藏
|
||
CGFloat leftViewY = (height - LEFTVIEW_HEIGHT)/2.0;
|
||
CustomView *leftView = [[CustomView alloc] initWithFrame:CGRectMake(-LEFTVIEW_WIDTH, leftViewY, LEFTVIEW_WIDTH, LEFTVIEW_HEIGHT)];
|
||
[leftView setNeedLineTop:true left:true bottom:true right:true];
|
||
|
||
[leftView setLineColorTop:[UIColor blackColor] left:[UIColor blackColor] bottom:[UIColor blackColor] right:[UIColor blackColor]];//用同一色边线
|
||
[leftView setLineWidthTop:2.0 left:2.0 bottom:2.0 right:2.0];//设置线的粗细,这里可以随意调整
|
||
[leftView setRadiusTopLeft:8.0 topRight:8.0 bottomLeft:8.0 bottomRight:8.0];//边线加弧度
|
||
[leftView setClipsToBoundsWithBorder:true];//裁剪掉边线外面的区域
|
||
|
||
[leftView setFillColor:[UIColor darkGrayColor]];//增加内部填充颜色
|
||
[leftView setAlpha:0.5];
|
||
[leftView setOpaque:YES];
|
||
self.leftView = leftView;
|
||
[self.leftView setHidden:YES];
|
||
|
||
|
||
CGFloat xSpace = 4.0;
|
||
CGFloat ySpace = 4.0;
|
||
CGFloat numLabelW = 12.0;
|
||
CGFloat buttonW = (leftView.frame.size.width - numLabelW - xSpace*4)/2.0;
|
||
CGFloat buttonH = (leftView.frame.size.height - ySpace*4)/3.0;
|
||
int tag = 10;
|
||
for (int i = 0; i < 3; i++) {
|
||
|
||
UIButton *onButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||
onButton.frame = CGRectMake(xSpace, (buttonH+ySpace)*i+ySpace, buttonW, buttonH);
|
||
onButton.tag = tag++;
|
||
[onButton setTitle:@"ON" forState:UIControlStateNormal];
|
||
[onButton setTitleColor:XWhite forState:UIControlStateNormal];
|
||
|
||
onButton.titleLabel.font = XFontBold_12;
|
||
[onButton addTarget:self action:@selector(onOrOffButtonClick:) forControlEvents:UIControlEventTouchUpInside];
|
||
[self.leftView addSubview:onButton];
|
||
|
||
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(2*xSpace+buttonW, (buttonH+ySpace)*i+ySpace, numLabelW, buttonH)];
|
||
label.backgroundColor = [UIColor clearColor];
|
||
label.textColor = XWhite;
|
||
label.text = [NSString stringWithFormat:@"%d",i + 1];
|
||
label.font = XFontBold_12;
|
||
label.textAlignment = NSTextAlignmentCenter;
|
||
[self.leftView addSubview:label];
|
||
|
||
|
||
UIButton *offButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||
offButton.frame = CGRectMake(3*xSpace+buttonW +numLabelW, (buttonH+ySpace)*i+ySpace, buttonW, buttonH);
|
||
offButton.tag = tag++;
|
||
[offButton setTitle:@"OFF" forState:UIControlStateNormal];
|
||
[offButton setTitleColor:XWhite forState:UIControlStateNormal];
|
||
|
||
offButton.titleLabel.font = XFontBold_12;
|
||
[offButton addTarget:self action:@selector(onOrOffButtonClick:) forControlEvents:UIControlEventTouchUpInside];
|
||
|
||
[self.leftView addSubview:offButton];
|
||
|
||
}
|
||
|
||
|
||
//右侧,灯控制按钮
|
||
//进入横屏时,显示,并调整frame
|
||
//退出横屏时,隐藏
|
||
//提示器
|
||
UIActivityIndicatorView *progressView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
|
||
progressView.frame = CGRectMake(self.remoteView.frame.size.width-30.0-20.0, (self.remoteView.frame.size.height-30.0)/2, 30.0, 30.0);
|
||
[self.remoteView addSubview:progressView];
|
||
self.progressView = progressView;
|
||
[self.progressView setHidden:YES];
|
||
|
||
//若设备支持灯设备时,则显示开关;若不支持,则隐藏
|
||
UIButton *lightButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||
lightButton.frame = CGRectMake(self.remoteView.frame.size.width-30.0-20.0, (self.remoteView.frame.size.height-30.0)/2, 30.0, 30.0);
|
||
lightButton.backgroundColor = [UIColor clearColor];
|
||
[lightButton setBackgroundImage:[UIImage imageNamed:@"lighton.png"] forState:UIControlStateNormal];
|
||
[lightButton addTarget:self action:@selector(btnClickToSetLightState:) forControlEvents:UIControlEventTouchUpInside];
|
||
[self.remoteView addSubview:lightButton];
|
||
[lightButton setHidden:YES];
|
||
self.lightButton = lightButton;
|
||
|
||
|
||
//进入横屏时,显示
|
||
//退出横屏时,隐藏
|
||
//焦距控件
|
||
//宽、高
|
||
CGFloat focalLengthView_w = 40.0;
|
||
CGFloat focalLengthView_h = 180.0;
|
||
//焦距控件与屏幕右边框的间距
|
||
CGFloat space_FocalLView_Screen = (width - self.remoteView.frame.size.width)/2+20+focalLengthView_w;
|
||
UIView *focalLengthView = [[UIView alloc] initWithFrame:CGRectMake(width-space_FocalLView_Screen, height-self.bottomBarView.frame.size.height-20.0-focalLengthView_h, focalLengthView_w, focalLengthView_h)];
|
||
if (!isSupportZoom) {//电子放大与焦距变焦不共存
|
||
[self.view addSubview:focalLengthView];
|
||
}
|
||
[focalLengthView setHidden:YES];
|
||
self.focalLengthView = focalLengthView;
|
||
|
||
//焦距伸长按钮
|
||
//宽、高
|
||
CGFloat elongationButton_w = 34.0;
|
||
CGFloat elongationButton_h = elongationButton_w*(46/43);
|
||
UIButton *elongationButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||
elongationButton.frame = CGRectMake((focalLengthView_w-elongationButton_w)/2, 0.0, elongationButton_w, elongationButton_h);
|
||
[elongationButton setBackgroundImage:[UIImage imageNamed:@"monitor_localLenght_zoom_normal.png"] forState:UIControlStateNormal];
|
||
[elongationButton setBackgroundImage:[UIImage imageNamed:@"monitor_localLenght_zoom_highlighted.png"] forState:UIControlStateHighlighted];
|
||
elongationButton.tag = FocalLength_Elongation_btnTag;
|
||
[elongationButton addTarget:self action:@selector(btnClickToChangeFocalLength:) forControlEvents:UIControlEventTouchUpInside];
|
||
[self.focalLengthView addSubview:elongationButton];
|
||
//拖动条
|
||
UISlider *focalLengthSlider = [[UISlider alloc] initWithFrame:CGRectMake(0.0, 0.0, focalLengthView_h-elongationButton_h*2, 30.0)];
|
||
focalLengthSlider.center = CGPointMake(self.focalLengthView.center.x-self.focalLengthView.frame.origin.x, self.focalLengthView.center.y-self.focalLengthView.frame.origin.y);
|
||
//设置旋转90度
|
||
focalLengthSlider.transform = CGAffineTransformMakeRotation(90*M_PI/180);
|
||
focalLengthSlider.minimumValue = 1.0;
|
||
focalLengthSlider.maximumValue = 15.0;
|
||
focalLengthSlider.value = 7.5;
|
||
focalLengthSlider.continuous = NO;//在手指离开的时候触发一次valueChange事件,而不是在拖动的过程中不断触发valueChange事件
|
||
focalLengthSlider.tag = FocalLength_Change_sliderTag;
|
||
[focalLengthSlider addTarget:self action:@selector(btnClickToChangeFocalLength:) forControlEvents:UIControlEventValueChanged];
|
||
[self.focalLengthView addSubview:focalLengthSlider];
|
||
//焦距变短按钮
|
||
//宽、高
|
||
CGFloat shortenButton_w = elongationButton_w;
|
||
CGFloat shortenButton_h = elongationButton_h;
|
||
UIButton *shortenButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||
shortenButton.frame = CGRectMake((focalLengthView_w-shortenButton_w)/2, focalLengthView_h-shortenButton_h, shortenButton_w, shortenButton_h);
|
||
[shortenButton setBackgroundImage:[UIImage imageNamed:@"monitor_localLenght_narrow_normal.png"] forState:UIControlStateNormal];
|
||
[shortenButton setBackgroundImage:[UIImage imageNamed:@"monitor_localLenght_narrow_highlighted.png"] forState:UIControlStateHighlighted];
|
||
shortenButton.tag = FocalLength_Shorten_btnTag;
|
||
[shortenButton addTarget:self action:@selector(btnClickToChangeFocalLength:) forControlEvents:UIControlEventTouchUpInside];
|
||
[self.focalLengthView addSubview:shortenButton];
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
#pragma mark - 横屏时的按钮(画质、声音...)
|
||
-(void)onControllerBtnPress:(id)sender{
|
||
UIButton *button = (UIButton*)sender;
|
||
switch(button.tag){
|
||
case CONTROLLER_BTN_TAG_HUNGUP:
|
||
{
|
||
if(!self.isReject){
|
||
self.isReject = !self.isReject;
|
||
while (_isPlaying) {
|
||
usleep(50*1000);
|
||
}
|
||
[[P2PClient sharedClient] p2pHungUp];
|
||
|
||
self.remoteView.isQuitMonitorInterface = YES;//rtsp监控界面弹出修改
|
||
}
|
||
//[self dismissViewControllerAnimated:YES completion:nil];
|
||
}
|
||
break;
|
||
case CONTROLLER_BTN_TAG_SOUND:
|
||
{
|
||
|
||
//BOOL isMute = [[PAIOUnit sharedUnit] muteAudio];
|
||
|
||
|
||
DLog(@"onControllerBtnPress:CONTROLLER_BTN_TAG_SOUND");
|
||
// if(isMute){
|
||
// [[PAIOUnit sharedUnit] setMuteAudio:NO];
|
||
// [sender setBackgroundImage:[UIImage imageNamed:@"ic_ctl_new_sound_on.png"] forState:UIControlStateNormal];
|
||
// //竖屏,声音打开
|
||
// UIButton *soundButtonH = (UIButton *)[self.midToolHView viewWithTag:SOUND_BUTTON_H_TAG];
|
||
// UIImageView *soundImageViewH = (UIImageView *)soundButtonH.subviews[0];
|
||
// soundImageViewH.image = [UIImage imageNamed:@"monitor_sound_on_h.png"];
|
||
// }else{
|
||
//
|
||
// [[PAIOUnit sharedUnit] setMuteAudio:YES];
|
||
// [sender setBackgroundImage:[UIImage imageNamed:@"ic_ctl_new_sound_off.png"] forState:UIControlStateNormal];
|
||
// //竖屏,声音关闭
|
||
// UIButton *soundButtonH = (UIButton *)[self.midToolHView viewWithTag:SOUND_BUTTON_H_TAG];
|
||
// UIImageView *soundImageViewH = (UIImageView *)soundButtonH.subviews[0];
|
||
// soundImageViewH.image = [UIImage imageNamed:@"monitor_sound_off_h.png"];
|
||
// }
|
||
}
|
||
break;
|
||
case CONTROLLER_BTN_TAG_SCREENSHOT:
|
||
{
|
||
|
||
[self.remoteView setIsScreenShotting:YES];
|
||
}
|
||
break;
|
||
case CONTROLLER_BTN_TAG_GPIO1_0:
|
||
{
|
||
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"door_bell", nil) message:NSLocalizedString(@"confirm_open", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"cancel", nil) otherButtonTitles:NSLocalizedString(@"ok", nil), nil];
|
||
//alertView.tag = DOOR_BELLALERT;
|
||
|
||
[alertView show];
|
||
|
||
|
||
}
|
||
break;
|
||
case CONTROLLER_BTN_TAG_PRESS_TALK://支持门铃,点按开关说话
|
||
{
|
||
if (self.isTalking) {
|
||
//竖屏,对讲关闭
|
||
UIButton *talkButtonH = (UIButton *)[self.bottomToolHView viewWithTag:TALK_BUTTON_H_TAG];
|
||
talkButtonH.selected = NO;
|
||
//横屏,对讲关闭
|
||
[sender setBackgroundImage:[UIImage imageNamed:@"ic_ctl_new_send_audio.png"] forState:UIControlStateNormal];
|
||
|
||
self.isTalking = NO;
|
||
[self.pressView setHidden:YES];
|
||
//[[PAIOUnit sharedUnit] setSpeckState:YES];
|
||
}else{
|
||
UIButton *talkButtonH = (UIButton *)[self.bottomToolHView viewWithTag:TALK_BUTTON_H_TAG];
|
||
//竖屏,对讲打开
|
||
talkButtonH.selected = YES;
|
||
//横屏,对讲打开
|
||
[sender setBackgroundImage:[UIImage imageNamed:@"ic_ctl_new_send_audio_p.png"] forState:UIControlStateNormal];
|
||
|
||
self.isTalking = YES;
|
||
[self.pressView setHidden:NO];
|
||
//[[PAIOUnit sharedUnit] setSpeckState:NO];
|
||
}
|
||
}
|
||
break;
|
||
case CONTROLLER_BTN_TAG_DEFENCE_LOCK://重新调整监控画面
|
||
{
|
||
NSString *contactId = [[P2PClient sharedClient] callId];
|
||
NSString *contactPassword = [[P2PClient sharedClient] callPassword];
|
||
|
||
if (self.isDefenceOn) {
|
||
[[P2PClient sharedClient] setRemoteDefenceWithId:contactId password:contactPassword state:SETTING_VALUE_REMOTE_DEFENCE_STATE_OFF];
|
||
}else{
|
||
[[P2PClient sharedClient] setRemoteDefenceWithId:contactId password:contactPassword state:SETTING_VALUE_REMOTE_DEFENCE_STATE_ON];
|
||
}
|
||
}
|
||
break;
|
||
case CONTROLLER_BTN_TAG_HD:
|
||
{
|
||
[[P2PClient sharedClient] sendCommandType:USR_CMD_VIDEO_CTL andOption:7];
|
||
[self updateRightButtonState:CONTROLLER_BTN_TAG_HD];
|
||
|
||
}
|
||
break;
|
||
case CONTROLLER_BTN_TAG_SD:
|
||
{
|
||
[[P2PClient sharedClient] sendCommandType:USR_CMD_VIDEO_CTL andOption:5];
|
||
[self updateRightButtonState:CONTROLLER_BTN_TAG_SD];
|
||
}
|
||
break;
|
||
case CONTROLLER_BTN_TAG_LD:
|
||
{
|
||
[[P2PClient sharedClient] sendCommandType:USR_CMD_VIDEO_CTL andOption:6];
|
||
[self updateRightButtonState:CONTROLLER_BTN_TAG_LD];
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
|
||
|
||
- (TouchButton *)getBottomBarButton//重新调整监控画面
|
||
{
|
||
TouchButton *button = [TouchButton buttonWithType:UIButtonTypeCustom];
|
||
[button setFrame:CGRectMake(0.0, 0.0, 50.0, 50.0)];
|
||
return button;
|
||
}
|
||
|
||
-(void)onOrOffButtonClick:(UIButton *)button{
|
||
|
||
//
|
||
int group = 0, pin = 0;
|
||
int value = 5;
|
||
int time[8] = {0};
|
||
time[0] = -1000;
|
||
time[1] = 1000;
|
||
time[2] = -1000;
|
||
time[3] = 1000;
|
||
time[4] = -1000;
|
||
switch (button.tag) {
|
||
case GPIO0_0:
|
||
{
|
||
group = 0;
|
||
pin = 0;
|
||
self.clickGPIO0_0Button = button;
|
||
self.clickGPIO0_0Button.backgroundColor = XBlue;
|
||
}
|
||
break;
|
||
case GPIO0_1:
|
||
{
|
||
group = 0;
|
||
pin = 1;
|
||
self.clickGPIO0_1Button = button;
|
||
self.clickGPIO0_1Button.backgroundColor = XBlue;
|
||
}
|
||
break;
|
||
case GPIO0_2:
|
||
{
|
||
group = 0;
|
||
pin = 2;
|
||
self.clickGPIO0_2Button = button;
|
||
self.clickGPIO0_2Button.backgroundColor = XBlue;
|
||
}
|
||
break;
|
||
case GPIO0_3:
|
||
{
|
||
group = 0;
|
||
pin = 3;
|
||
self.clickGPIO0_3Button = button;
|
||
self.clickGPIO0_3Button.backgroundColor = XBlue;
|
||
}
|
||
break;
|
||
case GPIO0_4:
|
||
{
|
||
group = 0;
|
||
pin = 4;
|
||
self.clickGPIO0_4Button = button;
|
||
self.clickGPIO0_4Button.backgroundColor = XBlue;
|
||
}
|
||
break;
|
||
case GPIO2_6:
|
||
{
|
||
group = 2;
|
||
pin = 6;
|
||
self.clickGPIO2_6Button = button;
|
||
self.clickGPIO2_6Button.backgroundColor = XBlue;
|
||
}
|
||
break;
|
||
}
|
||
|
||
//记录当前的GPIO设置参数
|
||
self.lastGroup = group;
|
||
self.lastPin = pin;
|
||
self.lastValue = value;
|
||
self.lastTime = time;
|
||
|
||
NSString *contactId = [[P2PClient sharedClient] callId];
|
||
NSString *contactPassword = [[P2PClient sharedClient] callPassword];
|
||
[[P2PClient sharedClient] setGpioCtrlWithId:contactId password:contactPassword group:group pin:pin value:value time:time];
|
||
}
|
||
|
||
|
||
|
||
#pragma mark 点击竖屏上的按钮时,响应
|
||
-(void)onVerticalBtnPress:(UIButton *)button{
|
||
switch(button.tag){
|
||
case SOUND_BUTTON_H_TAG://声音
|
||
{
|
||
if (!_isOkRenderVideoFrame) {
|
||
//图像渲染出来前,不可以控制声音
|
||
return;
|
||
}
|
||
|
||
// UIImageView *soundImageViewH = (UIImageView *)button.subviews[0];
|
||
// BOOL isMute = [[PAIOUnit sharedUnit] muteAudio];
|
||
// if(isMute){
|
||
// [[PAIOUnit sharedUnit] setMuteAudio:NO];
|
||
// //LXImageWithImageName(@"ic_ctl_new_sound_off.png");
|
||
// soundImageViewH.image = LXImageWithImageName(@"monitor_sound_on_h.png");
|
||
// //横屏,声音打开
|
||
// UIButton *controllerSoundBtn = (UIButton *)[self.controllBar viewWithTag:CONTROLLER_BTN_TAG_SOUND];
|
||
// [controllerSoundBtn setBackgroundImage:LXImageWithImageName(@"ic_ctl_new_sound_on.png") forState:UIControlStateNormal];
|
||
// }else{
|
||
//
|
||
// [[PAIOUnit sharedUnit] setMuteAudio:YES];
|
||
// soundImageViewH.image = LXImageWithImageName(@"monitor_sound_off_.png");
|
||
// //横屏,声音关闭
|
||
// UIButton *controllerSoundBtn = (UIButton *)[self.controllBar viewWithTag:CONTROLLER_BTN_TAG_SOUND];
|
||
// [controllerSoundBtn setBackgroundImage:LXImageWithImageName(@"ic_ctl_new_sound_off.png") forState:UIControlStateNormal];
|
||
// }
|
||
}
|
||
|
||
break;
|
||
case SWITCH_SCREEN_BUTTON_H_TAG://切换至横屏或者竖屏
|
||
{
|
||
if (!_isOkFirstRenderVideoFrame) {
|
||
//第一次成功渲染图像前,不可以切换至横屏
|
||
return;
|
||
}
|
||
|
||
if (!self.isFullScreen)
|
||
{
|
||
|
||
|
||
//设置横屏
|
||
[AppDelegate sharedDefault].canFullScreen = YES;
|
||
static int isFullScreen = 3; // 3 == 全屏 1 == 竖屏
|
||
if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)])
|
||
{
|
||
NSNumber *numb=[NSNumber numberWithInteger:UIInterfaceOrientationLandscapeRight];
|
||
[[UIDevice currentDevice] performSelector:@selector(setOrientation:)
|
||
withObject:numb];
|
||
|
||
SEL selector = NSSelectorFromString(@"setOrientation:");
|
||
|
||
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDevice instanceMethodSignatureForSelector:selector]];
|
||
|
||
[invocation setSelector:selector];
|
||
|
||
[invocation setTarget:[UIDevice currentDevice]];
|
||
|
||
NSLog(@"-%d-",isFullScreen);
|
||
|
||
[invocation setArgument:&isFullScreen atIndex:2];
|
||
|
||
[invocation invoke];
|
||
|
||
|
||
//设置默认全屏
|
||
BOOL is16B9 = [[P2PClient sharedClient] is16B9];
|
||
if (!is16B9) {
|
||
self.isFullScreen4B3 = NO;
|
||
[self onDoubleTap];
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
else
|
||
{
|
||
|
||
self.isFullScreen4B3 = !self.isFullScreen4B3;
|
||
//设置竖屏
|
||
[AppDelegate sharedDefault].canFullScreen = NO;
|
||
static int isFullScreen = 1; // 3 == 全屏 1 == 竖屏
|
||
if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)])
|
||
{
|
||
NSLog(@"self.interfaceOrientation%ld",(long)UIDeviceOrientationPortrait);
|
||
|
||
|
||
//NSNumber *numb=[NSNumber numberWithInteger:UIDeviceOrientationPortrait];
|
||
//[[UIDevice currentDevice] performSelector:@selector(setOrientation:)
|
||
// withObject:numb];
|
||
|
||
SEL selector = NSSelectorFromString(@"setOrientation:");
|
||
|
||
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDevice instanceMethodSignatureForSelector:selector]];
|
||
|
||
[invocation setSelector:selector];
|
||
|
||
[invocation setTarget:[UIDevice currentDevice]];
|
||
|
||
|
||
NSLog(@"-%d-",isFullScreen);
|
||
|
||
[invocation setArgument:&isFullScreen atIndex:2];
|
||
|
||
[invocation invoke];
|
||
|
||
}
|
||
|
||
}
|
||
}
|
||
break;
|
||
case DEFENCE_BUTTON_H_TAG://布防撤防
|
||
{
|
||
NSString *contactId = [[P2PClient sharedClient] callId];
|
||
NSString *contactPassword = [[P2PClient sharedClient] callPassword];
|
||
|
||
if (self.isDefenceOn) {
|
||
[[P2PClient sharedClient] setRemoteDefenceWithId:contactId password:contactPassword state:SETTING_VALUE_REMOTE_DEFENCE_STATE_OFF];
|
||
}else{
|
||
[[P2PClient sharedClient] setRemoteDefenceWithId:contactId password:contactPassword state:SETTING_VALUE_REMOTE_DEFENCE_STATE_ON];
|
||
}
|
||
}
|
||
break;
|
||
case TALK_BUTTON_H_TAG://对讲
|
||
{
|
||
//非本地设备
|
||
NSInteger deviceType1 = [AppDelegate sharedDefault].contact.contactType;
|
||
//本地设备
|
||
NSInteger deviceType2 = [[FListManager sharedFList] getType:[[P2PClient sharedClient] callId]];
|
||
if (deviceType1 == CONTACT_TYPE_DOORBELL || deviceType2 == CONTACT_TYPE_DOORBELL) {//支持门铃,点按开关说话
|
||
if (self.isTalking) {
|
||
|
||
self.isTalking = NO;
|
||
[self.pressView setHidden:YES];
|
||
//[[PAIOUnit sharedUnit] setSpeckState:YES];
|
||
|
||
//竖屏,对讲关闭
|
||
button.selected = NO;
|
||
//横屏,对讲关闭
|
||
//LXImageWithImageName(@"ic_ctl_new_send_audio_p.png")
|
||
UIButton *controllerTalkBtn = (UIButton *)[self.controllBar viewWithTag:CONTROLLER_BTN_TAG_PRESS_TALK];
|
||
[controllerTalkBtn setBackgroundImage:LXImageWithImageName(@"ic_ctl_new_send_audio.png") forState:UIControlStateNormal];
|
||
}else{
|
||
|
||
self.isTalking = YES;
|
||
[self.pressView setHidden:NO];
|
||
//[[PAIOUnit sharedUnit] setSpeckState:NO];
|
||
|
||
//竖屏,对讲打开
|
||
button.selected = YES;
|
||
//横屏,对讲打开
|
||
UIButton *controllerTalkBtn = (UIButton *)[self.controllBar viewWithTag:CONTROLLER_BTN_TAG_PRESS_TALK];
|
||
[controllerTalkBtn setBackgroundImage:LXImageWithImageName(@"ic_ctl_new_send_audio_p.png") forState:UIControlStateNormal];
|
||
}
|
||
|
||
}else{
|
||
//不支持门铃,松开结束对讲
|
||
[self.pressView setHidden:YES];
|
||
// [[PAIOUnit sharedUnit] setSpeckState:YES];
|
||
}
|
||
}
|
||
break;
|
||
case SCREENSHOT_BUTTON_H_TAG://载图
|
||
{
|
||
[self.remoteView setIsScreenShotting:YES];
|
||
}
|
||
break;
|
||
case PROMPT_BUTTON_TAG://重新连接监控
|
||
{
|
||
[self hiddenMonitoringUI:NO callErrorInfo:nil isReCall:YES];
|
||
[self monitorP2PCall];
|
||
|
||
}
|
||
break;
|
||
|
||
//暂停按钮
|
||
case STOPBTN_TAG:
|
||
{
|
||
|
||
|
||
|
||
UIImageView *stopImageViewH = (UIImageView *)button.subviews[0];
|
||
|
||
if(!_isOkRenderVideoFrame){
|
||
|
||
|
||
[self hiddenMonitoringUI:NO callErrorInfo:nil isReCall:YES];
|
||
[self monitorP2PCall];
|
||
stopImageViewH.image = LXImageWithImageName(@"monitor_stop_h.png");
|
||
|
||
}else{
|
||
|
||
[self stopGLViewVideo];
|
||
stopImageViewH.image = LXImageWithImageName(@"monitor_on_h.png");
|
||
}
|
||
|
||
|
||
}
|
||
break;
|
||
|
||
|
||
|
||
}
|
||
}
|
||
|
||
|
||
-(void)onSingleTap{
|
||
|
||
if (!self.isFullScreen) {
|
||
//竖屏时点击屏幕 弹出工具栏打开下面方法 3s 自动消失
|
||
if (self.isShowVToolBar) {
|
||
|
||
return;
|
||
}
|
||
[self dismissMidToolView];
|
||
|
||
|
||
}else{
|
||
|
||
if (!self.isShowControllerBar) {
|
||
|
||
[self hidHbottomView];
|
||
}
|
||
|
||
}
|
||
|
||
|
||
}
|
||
|
||
#pragma mark - 隐藏横屏底部控件
|
||
|
||
-(void)hidHbottomView{
|
||
|
||
if (self.isShowControllerBar) {
|
||
self.isShowControllerBar = !self.isShowControllerBar;
|
||
[UIView beginAnimations:nil context:nil];
|
||
[UIView setAnimationDuration:0.2];
|
||
[self.controllerRightBg setAlpha:0.0];//重新调整监控画面
|
||
[self.controllerRight setAlpha:0.0];
|
||
[self.bottomBarView setAlpha:0.0];//重新调整监控画面
|
||
[self.customBorderButton setAlpha:0.0];
|
||
[self.leftView setAlpha:0.0];
|
||
[self.focalLengthView setAlpha:0.0];
|
||
[UIView commitAnimations];
|
||
|
||
|
||
|
||
|
||
}else{
|
||
self.isShowControllerBar = !self.isShowControllerBar;
|
||
[UIView beginAnimations:nil context:nil];
|
||
[UIView setAnimationDuration:0.2];
|
||
[self.controllerRightBg setAlpha:0.5];//重新调整监控画面
|
||
[self.controllerRight setAlpha:1.0];//重新调整监控画面
|
||
|
||
[self.bottomBarView setAlpha:1.0];//重新调整监控画面
|
||
[self.customBorderButton setAlpha:0.5];
|
||
[self.leftView setAlpha:0.5];
|
||
[self.focalLengthView setAlpha:1.0];
|
||
[UIView commitAnimations];
|
||
[self hideBootommViewAfterSecondes];
|
||
|
||
}
|
||
|
||
//重新调整监控画面
|
||
[self didHiddenResolutionInterface];
|
||
|
||
}
|
||
//隐藏横屏控件
|
||
-(void)hideBootommViewAfterSecondes{
|
||
|
||
[NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(dismissHbtoomToolView) userInfo:nil repeats:NO];
|
||
}
|
||
|
||
-(void)dismissHbtoomToolView{
|
||
|
||
if (self.isShowControllerBar) {
|
||
|
||
[self hidHbottomView];
|
||
}
|
||
|
||
}
|
||
|
||
|
||
|
||
-(void)dismissMidToolView{
|
||
|
||
__weak typeof(self) wself = self;
|
||
if (wself.stopBtnH.hidden == YES) {
|
||
[UIView animateWithDuration:0.5 animations:^{
|
||
|
||
CGFloat midtH=wself.canvasView.frame.size.height/5;
|
||
|
||
wself.midToolHView.frame = CGRectMake(0.0, CGRectGetMaxY(wself.canvasView.frame) - midtH, kScreenSize.width, midtH);
|
||
wself.stopBtnH.hidden = NO;
|
||
wself.switchScreenButtonH.hidden = NO;
|
||
wself.isShowVToolBar = YES;
|
||
} completion:^(BOOL finished) {
|
||
|
||
[NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(dismissMidToolView) userInfo:nil repeats:NO];
|
||
|
||
}];
|
||
|
||
//return;
|
||
}else{
|
||
|
||
[UIView animateWithDuration:0.5 animations:^{
|
||
|
||
wself.midToolHView.frame = CGRectMake(0.0, CGRectGetMaxY(wself.canvasView.frame), kScreenSize.width, 0);
|
||
wself.stopBtnH.hidden = YES;
|
||
wself.switchScreenButtonH.hidden = YES;
|
||
wself.isShowVToolBar = NO;
|
||
} completion:^(BOOL finished) {
|
||
|
||
}];
|
||
|
||
}
|
||
|
||
}
|
||
|
||
|
||
-(void)didHiddenResolutionInterface{
|
||
[UIView animateWithDuration:0.2 animations:^{
|
||
CGRect controllerRight = self.controllerRight.frame;
|
||
controllerRight.origin.y = _horizontalScreenH;
|
||
self.controllerRight.frame = controllerRight;
|
||
self.controllerRightBg.frame = controllerRight;
|
||
|
||
} completion:^(BOOL finished) {
|
||
self.isAlreadyShowResolution = NO;
|
||
}];
|
||
}
|
||
|
||
-(void)selectResolutionClick:(UIButton *)button{//重新调整监控画面
|
||
|
||
|
||
if (self.isAlreadyShowResolution) {
|
||
[self didHiddenResolutionInterface];
|
||
}else{
|
||
[self didShowResolutionInterface];
|
||
}
|
||
|
||
}
|
||
|
||
|
||
-(void)didShowResolutionInterface{
|
||
BOOL is16B9 = [[P2PClient sharedClient] is16B9];
|
||
BOOL is960P = [[P2PClient sharedClient] is960P];
|
||
//右边的画质图标
|
||
int rightItemCount = 0;
|
||
if(is16B9 || is960P){
|
||
rightItemCount = 3;
|
||
}else{
|
||
rightItemCount = 2;
|
||
}
|
||
|
||
[UIView animateWithDuration:0.2 animations:^{
|
||
CGRect controllerRight = self.controllerRight.frame;
|
||
controllerRight.origin.y = _horizontalScreenH-BOTTOM_BAR_HEIGHT-CONTROLLER_RIGHT_ITEM_HEIGHT*3-1.0;
|
||
self.controllerRight.frame = controllerRight;
|
||
|
||
CGRect controllerRightBgRect = self.controllerRightBg.frame;
|
||
controllerRightBgRect.origin.y = _horizontalScreenH-BOTTOM_BAR_HEIGHT-CONTROLLER_RIGHT_ITEM_HEIGHT*rightItemCount-1.0;
|
||
self.controllerRightBg.frame = controllerRightBgRect;
|
||
|
||
} completion:^(BOOL finished) {
|
||
self.isAlreadyShowResolution = YES;
|
||
}];
|
||
|
||
|
||
}
|
||
|
||
-(void)onDoubleTap{
|
||
if (!self.isFullScreen) {
|
||
|
||
// if (_isStop == NO) {
|
||
// [self hiddenMonitoringUI:NO callErrorInfo:nil isReCall:NO];
|
||
// _isStop = YES;
|
||
// }
|
||
//
|
||
// [self stopGLViewVideo];
|
||
|
||
|
||
return;
|
||
}
|
||
if (self.isScale) {
|
||
//处于电子放大时,不往下执行
|
||
return;
|
||
}
|
||
|
||
BOOL is16B9 = [[P2PClient sharedClient] is16B9];
|
||
if(!is16B9){
|
||
//渲染画面4:3
|
||
|
||
CGRect rect = [AppDelegate getScreenSize:NO isHorizontal:YES];
|
||
CGFloat width = rect.size.width;
|
||
CGFloat height = rect.size.height;
|
||
if(CURRENT_VERSION<7.0){
|
||
height +=20;
|
||
}
|
||
|
||
if (self.isFullScreen4B3) {
|
||
self.isFullScreen4B3 = !self.isFullScreen4B3;
|
||
[UIView beginAnimations:nil context:nil];
|
||
[UIView setAnimationDuration:0.2];
|
||
CGAffineTransform transform;
|
||
transform = CGAffineTransformMakeScale(1.0, 1.0f);
|
||
self.remoteView.transform = transform;
|
||
[UIView commitAnimations];
|
||
}else{
|
||
self.isFullScreen4B3 = !self.isFullScreen4B3;
|
||
[UIView beginAnimations:nil context:nil];
|
||
[UIView setAnimationDuration:0.2];
|
||
if (CURRENT_VERSION>=8.0) {
|
||
CGAffineTransform transform = CGAffineTransformMakeScale(height/(width*4/3),1.0f);
|
||
self.remoteView.transform = transform;
|
||
}else{
|
||
CGAffineTransform transform = CGAffineTransformMakeScale(width/(height*4/3),1.0f);
|
||
self.remoteView.transform = transform;
|
||
}
|
||
[UIView commitAnimations];
|
||
}
|
||
}
|
||
|
||
|
||
|
||
}
|
||
|
||
#pragma mark- 暂停 挂断
|
||
|
||
-(void)stopGLViewVideo{
|
||
if(!self.isReject){
|
||
|
||
self.isReject = !self.isReject;
|
||
while (_isPlaying) {
|
||
usleep(50*1000);
|
||
}
|
||
[[P2PClient sharedClient] p2pHungUp];
|
||
|
||
self.remoteView.isQuitMonitorInterface = NO;//rtsp监控界面弹出修改
|
||
}
|
||
|
||
}
|
||
|
||
#pragma mark - 隐藏监控连接中的UI
|
||
-(void)hiddenMonitoringUI:(BOOL)isHidden callErrorInfo:(NSDictionary*)info isReCall:(BOOL)isReCall{
|
||
if (isHidden) {
|
||
[self.yProgressView stop];
|
||
[self.yProgressView setHidden:YES];
|
||
|
||
[self.labelTip setHidden:YES];
|
||
|
||
[self.promptButton setEnabled:NO];
|
||
[self.promptButton setHidden:YES];
|
||
|
||
[self.stopBtnH setEnabled:YES];
|
||
|
||
}else{
|
||
if (isReCall) {
|
||
|
||
self.yProgressView.backgroundView.image = LXImageWithImageName(@"monitor_press.png");
|
||
[self.yProgressView start];
|
||
|
||
self.labelTip.text = [NSString stringWithFormat:@"%@",NSLocalizedString(@"monitor_out_prompt", nil)];
|
||
[self.promptButton setEnabled:NO];
|
||
self.stopImageViewH.image = LXImageWithImageName(@"monitor_stop_h.png");
|
||
// 禁用 底部栏暂停按钮
|
||
[self.stopBtnH setEnabled:NO];
|
||
|
||
|
||
}else{
|
||
|
||
if (_isStop) {
|
||
//暂停
|
||
self.yProgressView.angle = 0.0f;
|
||
self.yProgressView.backgroundView.image = LXImageWithImageName(@"ifishCamera_start");
|
||
int errorFlag = [[info objectForKey:@"errorFlag"] intValue];
|
||
self.labelTip.text = [self getCallErrorStringWith:errorFlag];
|
||
self.stopImageViewH.image = LXImageWithImageName(@"monitor_on_h.png");
|
||
|
||
|
||
}else{
|
||
self.yProgressView.angle = 0.0f;
|
||
self.yProgressView.backgroundView.image = LXImageWithImageName(@"ifishCamera_start");
|
||
int errorFlag = [[info objectForKey:@"errorFlag"] intValue];
|
||
//int errorFlag = CALL_ERROR_HANGUP ;
|
||
self.labelTip.text = [self getCallErrorStringWith:errorFlag];
|
||
|
||
self.stopImageViewH.image = LXImageWithImageName(@"monitor_on_h.png");
|
||
|
||
}
|
||
|
||
self.yProgressView.angle = 0.0f;
|
||
[self.yProgressView stop];
|
||
|
||
int errorFlag = [[info objectForKey:@"errorFlag"] intValue];
|
||
self.labelTip.text = [self getCallErrorStringWith:errorFlag];
|
||
|
||
[self.promptButton setEnabled:YES];
|
||
[self.stopBtnH setEnabled:YES];
|
||
|
||
}
|
||
|
||
[self.yProgressView setHidden:NO];
|
||
|
||
[self.labelTip setHidden:NO];
|
||
|
||
[self.promptButton setHidden:NO];
|
||
[self.canvasView bringSubviewToFront:self.promptButton];
|
||
}
|
||
}
|
||
|
||
-(NSString *)getCallErrorStringWith:(int)errorFlag{
|
||
switch(errorFlag)
|
||
{
|
||
case CALL_ERROR_NONE:
|
||
{
|
||
return NSLocalizedString(@"id_unknown_error", nil);
|
||
|
||
}
|
||
break;
|
||
case CALL_ERROR_DESID_NOT_ENABLE:
|
||
{
|
||
return NSLocalizedString(@"id_disabled", nil);
|
||
}
|
||
break;
|
||
case CALL_ERROR_DESID_OVERDATE:
|
||
{
|
||
return NSLocalizedString(@"id_overdate", nil);
|
||
}
|
||
break;
|
||
case CALL_ERROR_DESID_NOT_ACTIVE:
|
||
{
|
||
return NSLocalizedString(@"id_inactived", nil);
|
||
}
|
||
break;
|
||
case CALL_ERROR_DESID_OFFLINE:
|
||
{
|
||
return NSLocalizedString(@"id_offline", nil);
|
||
}
|
||
break;
|
||
case CALL_ERROR_DESID_BUSY:
|
||
{
|
||
return NSLocalizedString(@"id_busy", nil);
|
||
}
|
||
break;
|
||
case CALL_ERROR_DESID_POWERDOWN:
|
||
{
|
||
return NSLocalizedString(@"id_powerdown", nil);
|
||
}
|
||
break;
|
||
case CALL_ERROR_NO_HELPER:
|
||
{
|
||
return NSLocalizedString(@"id_connect_failed", nil);
|
||
}
|
||
break;
|
||
case CALL_ERROR_HANGUP:
|
||
{
|
||
return NSLocalizedString(@"id_hangup", nil);
|
||
|
||
break;
|
||
}
|
||
case CALL_ERROR_TIMEOUT:
|
||
{
|
||
return NSLocalizedString(@"id_timeout", nil);
|
||
}
|
||
break;
|
||
case CALL_ERROR_INTER_ERROR:
|
||
{
|
||
return NSLocalizedString(@"id_internal_error", nil);
|
||
}
|
||
break;
|
||
case CALL_ERROR_RING_TIMEOUT:
|
||
{
|
||
return NSLocalizedString(@"id_no_accept", nil);
|
||
}
|
||
break;
|
||
case CALL_ERROR_PW_WRONG:
|
||
{
|
||
return NSLocalizedString(@"id_password_error", nil);
|
||
}
|
||
break;
|
||
case CALL_ERROR_CONN_FAIL:
|
||
{
|
||
return NSLocalizedString(@"id_connect_failed", nil);
|
||
}
|
||
break;
|
||
case CALL_ERROR_NOT_SUPPORT:
|
||
{
|
||
return NSLocalizedString(@"id_not_support", nil);
|
||
}
|
||
break;
|
||
default:
|
||
{
|
||
return NSLocalizedString(@"id_unknown_error", nil);
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
|
||
|
||
-(void)didHiddenMonitorUIWith:(BOOL)isAfterRender{
|
||
if (!isAfterRender) {
|
||
|
||
[self.controllerRightBg setAlpha:0.0];
|
||
[self.controllerRight setAlpha:0.0];
|
||
|
||
[self.bottomBarView setAlpha:0.0];
|
||
[self.customBorderButton setAlpha:0.0];
|
||
[self.leftView setAlpha:0.0];
|
||
[self.focalLengthView setAlpha:0.0];
|
||
[self.pressView setAlpha:0.0];
|
||
}else{
|
||
[self.controllerRightBg setAlpha:0.5];
|
||
[self.controllerRight setAlpha:1.0];
|
||
|
||
[self.bottomBarView setAlpha:1.0];
|
||
[self.customBorderButton setAlpha:0.5];
|
||
[self.leftView setAlpha:0.5];
|
||
[self.focalLengthView setAlpha:1.0];
|
||
[self.pressView setAlpha:1.0];
|
||
}
|
||
|
||
}
|
||
|
||
-(void)monitorP2PCall{
|
||
|
||
|
||
NSString *newPassword = GIWEI_INITPASS;
|
||
NSString *cameraPass = [Utils GetTreatedPassword:newPassword];
|
||
|
||
[[P2PClient sharedClient] p2pCallWithId:self.kanHuCamera.cameraId password:cameraPass callType:P2PCALL_TYPE_MONITOR];
|
||
|
||
|
||
[[P2PClient sharedClient] setP2pCallState:P2PCALL_STATUS_CALLING];
|
||
BOOL isBCalled = [[P2PClient sharedClient] isBCalled];
|
||
P2PCallType type = [[P2PClient sharedClient] p2pCallType];
|
||
NSString *callId = [[P2PClient sharedClient] callId];
|
||
//NSString *callPassword = [[P2PClient sharedClient] callPassword];
|
||
|
||
if(!isBCalled){
|
||
BOOL isApMode = ([[AppDelegate sharedDefault]dwApContactID] != 0);
|
||
if (!isApMode)
|
||
{
|
||
[[P2PClient sharedClient] p2pCallWithId:callId password:cameraPass callType:type];
|
||
}
|
||
else
|
||
{
|
||
[[P2PClient sharedClient] p2pCallWithId:@"1" password:cameraPass callType:type];
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
#pragma mark - 开始渲染监控画面
|
||
|
||
|
||
- (void)renderView
|
||
{
|
||
_isPlaying = YES;
|
||
|
||
GAVFrame * m_pAVFrame ;
|
||
|
||
while (!self.isReject)
|
||
{
|
||
|
||
//NSLog(@"ShopKanHuP2PViewController while 渲染监控画面");
|
||
if(fgGetVideoFrameToDisplay(&m_pAVFrame))
|
||
{
|
||
if (!_isOkRenderVideoFrame) {
|
||
_isOkRenderVideoFrame = YES;
|
||
_isOkFirstRenderVideoFrame = YES;
|
||
dispatch_async(dispatch_get_main_queue(), ^{
|
||
//隐藏监控连接中的UI
|
||
[self hiddenMonitoringUI:YES callErrorInfo:nil isReCall:NO];
|
||
[self didHiddenMonitorUIWith:YES];
|
||
});
|
||
|
||
//设置默认高清
|
||
[self setGaoQingHuoBiaoQing];
|
||
|
||
}
|
||
|
||
[self.remoteView render:m_pAVFrame];
|
||
vReleaseVideoFrame();
|
||
}
|
||
usleep(10000);
|
||
}
|
||
|
||
|
||
_isPlaying = NO;
|
||
|
||
|
||
}
|
||
|
||
#pragma mark - 竖屏时,显示状态栏
|
||
-(BOOL)prefersStatusBarHidden
|
||
|
||
{
|
||
return NO;
|
||
}
|
||
|
||
#pragma mark - 屏幕Autorotate
|
||
-(BOOL)shouldAutorotate{
|
||
return YES;
|
||
}
|
||
|
||
#pragma mark 屏幕支持的旋转方向
|
||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interface {
|
||
return (interface == UIInterfaceOrientationPortrait || interface == UIInterfaceOrientationLandscapeRight);
|
||
}
|
||
//
|
||
#ifdef IOS6
|
||
|
||
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
|
||
{
|
||
return UIInterfaceOrientationLandscapeRight;
|
||
}
|
||
|
||
- (BOOL)shouldAutorotate {
|
||
return NO;
|
||
}
|
||
|
||
- (NSUInteger)supportedInterfaceOrientations {
|
||
return UIInterfaceOrientationMaskLandscapeRight;
|
||
}
|
||
#endif
|
||
//
|
||
#pragma mark 支持哪些方向
|
||
-(UIInterfaceOrientationMask)supportedInterfaceOrientations{
|
||
if (_isCanAutoOrientation) {
|
||
return UIInterfaceOrientationMaskPortrait|UIInterfaceOrientationMaskLandscapeRight;
|
||
}
|
||
|
||
return UIInterfaceOrientationMaskPortrait;
|
||
}
|
||
|
||
#pragma mark 一开始希望的屏幕方向
|
||
-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
|
||
return UIInterfaceOrientationPortrait;
|
||
}
|
||
|
||
|
||
#pragma mark - 屏幕旋转
|
||
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
|
||
{
|
||
if (toInterfaceOrientation == UIInterfaceOrientationPortrait)
|
||
{
|
||
[self quitFullController];
|
||
}
|
||
else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
|
||
|
||
}
|
||
else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
|
||
{
|
||
[self enterFullController];
|
||
|
||
}
|
||
}
|
||
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
|
||
{
|
||
NSLog(@"willRotateToInterfaceOrientation:(UIInterfaceOrientation)");
|
||
|
||
}
|
||
#pragma mark 屏幕旋转(退出全屏)
|
||
-(void)quitFullController{
|
||
if (self.scrollView){
|
||
[self.scrollView setZoomScale:1.0];
|
||
}
|
||
|
||
self.isFullScreen = NO;
|
||
|
||
[[UIApplication sharedApplication] setStatusBarHidden:NO];
|
||
self.navigationController.navigationBar.hidden = NO;
|
||
|
||
//隐藏横屏里的控件
|
||
|
||
[self.controllerRightBg setHidden:YES];
|
||
[self.controllerRight setHidden:YES];
|
||
|
||
[self.bottomBarView setHidden:YES];
|
||
[self.customBorderButton setHidden:YES];
|
||
[self.leftView setHidden:YES];
|
||
if (self.isSupportLightSwitch) {
|
||
[self.lightButton setHidden:YES];
|
||
}
|
||
if (self.isSupportFocalLength) {
|
||
[self.focalLengthView setHidden:YES];
|
||
}
|
||
//显示竖屏里的控件
|
||
[self disHideSubControlerBootomm];
|
||
[self.midToolHView setHidden:NO];
|
||
[self.bottomToolHView setHidden:NO];
|
||
//[self.baoGaoToolHView setHidden:NO];
|
||
[self.HbootmView setHidden:NO];
|
||
|
||
//视频监控连接中的背景图片
|
||
//进入竖屏时,调整frame
|
||
self.canvasView.frame = self.canvasframe;
|
||
//视频监控连接中的背景图片
|
||
NSString *filePath = [Utils getHeaderFilePathWithId:[[P2PClient sharedClient] callId]];
|
||
UIImage *headImg = [UIImage imageWithContentsOfFile:filePath];
|
||
if(headImg==nil){
|
||
headImg = [UIImage imageNamed:@"ic_header.png"];
|
||
}
|
||
self.canvasView.layer.contents = (id)headImg.CGImage;
|
||
|
||
self.remoteView.frame = CGRectMake(0.0, 0.0, self.canvasframe.size.width, self.canvasframe.size.height);
|
||
|
||
|
||
|
||
NSString * plist = [[NSBundle mainBundle] pathForResource:@"Common-Configuration" ofType:@"plist"];
|
||
NSDictionary * dic = [NSDictionary dictionaryWithContentsOfFile:plist];
|
||
BOOL isSupportZoom = [dic[@"isSupportZoom"] boolValue];
|
||
if (isSupportZoom) {
|
||
//退出全屏时,要将remoteView添加回到canvasView
|
||
if (self.remoteView.superview) {
|
||
[self.remoteView removeFromSuperview];
|
||
}
|
||
//监控界面缩放
|
||
if (self.scrollView){
|
||
if (self.scrollView.superview) {
|
||
[self.scrollView removeFromSuperview];
|
||
}
|
||
_scrollView = nil;
|
||
}
|
||
[self.canvasView addSubview:self.remoteView];
|
||
}
|
||
|
||
|
||
//视频监控连接中的文字提示,以及旋转
|
||
//进入横屏时,调整frame
|
||
self.promptButton.frame = CGRectMake(0.0, 0.0, self.canvasView.frame.size.width, self.canvasView.frame.size.height);
|
||
//上面的canvasView重新add了remoteView
|
||
[self.canvasView bringSubviewToFront:self.promptButton];
|
||
NSString *labelTipText = [NSString stringWithFormat:@"%@",NSLocalizedString(@"玩命加载中...", nil)];
|
||
CGSize size = [labelTipText sizeWithFont:XFontBold_16];
|
||
//旋转图片
|
||
CGFloat tipHeight = size.height + LOADINGPRESSVIEW_WIDTH_HEIGHT;
|
||
self.yProgressView.frame = CGRectMake((self.canvasView.frame.size.width-LOADINGPRESSVIEW_WIDTH_HEIGHT)/2, (self.canvasView.frame.size.height-tipHeight)/2, LOADINGPRESSVIEW_WIDTH_HEIGHT, LOADINGPRESSVIEW_WIDTH_HEIGHT);
|
||
//文字
|
||
self.labelTip.frame = CGRectMake((self.canvasView.frame.size.width-size.width)/2, CGRectGetMaxY(self.yProgressView.frame), size.width+10.0, size.height);
|
||
|
||
|
||
//左边的按住说话弹出的声音图标
|
||
//退出横屏时,调整frame
|
||
self.pressView.frame = CGRectMake(10, self.canvasframe.size.height+NAVIGATION_BAR_HEIGHT-PRESS_LAYOUT_WIDTH_AND_HEIGHT, PRESS_LAYOUT_WIDTH_AND_HEIGHT/2, PRESS_LAYOUT_WIDTH_AND_HEIGHT);
|
||
}
|
||
|
||
#pragma mark - 屏幕旋转(进入全屏)
|
||
-(void)enterFullController{
|
||
//ios 9
|
||
|
||
self.isFullScreen = YES;
|
||
|
||
self.navigationController.navigationBar.hidden = YES;
|
||
|
||
[[UIApplication sharedApplication] setStatusBarHidden:YES];
|
||
|
||
//隐藏竖屏里的控件
|
||
|
||
[self hideSubControlerBootomm];
|
||
[self.midToolHView setHidden:YES];
|
||
//[self.baoGaoToolHView setHidden:YES];
|
||
[self.HbootmView setHidden:YES];
|
||
[self.bottomToolHView setHidden:YES];
|
||
|
||
|
||
//显示横屏里的控件
|
||
[self.controllerRightBg setHidden:NO];
|
||
[self.controllerRight setHidden:NO];
|
||
|
||
[self.bottomBarView setHidden:NO];
|
||
[self.customBorderButton setHidden:NO];
|
||
[self.leftView setHidden:NO];
|
||
if (self.isSupportLightSwitch) {
|
||
[self.lightButton setHidden:NO];
|
||
}
|
||
if (self.isSupportFocalLength) {
|
||
[self.focalLengthView setHidden:YES];//横屏也隐藏变焦控件
|
||
}
|
||
|
||
|
||
//监控横屏rect
|
||
CGFloat width = _monitorInterfaceW;
|
||
CGFloat height = _monitorInterfaceH;
|
||
|
||
|
||
//视频监控连接中的背景图片
|
||
//进入横屏时,调整frame
|
||
self.canvasView.frame = CGRectMake(0.0, 0.0, width, height);
|
||
self.canvasView.layer.contents = (id)self.fullScreenBgView;
|
||
|
||
|
||
//视频监控连接中的文字提示,以及旋转
|
||
//进入横屏时,调整frame
|
||
self.promptButton.frame = self.canvasView.frame;
|
||
NSString *labelTipText = [NSString stringWithFormat:@"%@",NSLocalizedString(@"玩命加载中...", nil)];
|
||
CGSize size = [labelTipText sizeWithFont:XFontBold_16];
|
||
//旋转图片
|
||
CGFloat tipHeight = size.height + LOADINGPRESSVIEW_WIDTH_HEIGHT;
|
||
self.yProgressView.frame = CGRectMake((width-LOADINGPRESSVIEW_WIDTH_HEIGHT)/2, (height-tipHeight)/2, LOADINGPRESSVIEW_WIDTH_HEIGHT, LOADINGPRESSVIEW_WIDTH_HEIGHT);
|
||
//文字
|
||
self.labelTip.frame = CGRectMake((width-size.width)/2, CGRectGetMaxY(self.yProgressView.frame), size.width+10.0, size.height);
|
||
|
||
|
||
//进入横屏,修改remoteView的frame
|
||
BOOL is16B9 = [[P2PClient sharedClient] is16B9];
|
||
if(is16B9){
|
||
CGFloat finalWidth = height*16/9;
|
||
CGFloat finalHeight = height;
|
||
if(finalWidth>width){
|
||
finalWidth = width;
|
||
finalHeight = width*9/16;
|
||
}else{
|
||
finalWidth = height*16/9;
|
||
finalHeight = height;
|
||
}
|
||
self.remoteView.frame = CGRectMake((width-finalWidth)/2, (height-finalHeight)/2, finalWidth, finalHeight);
|
||
|
||
}else{
|
||
self.remoteView.frame = CGRectMake((width-height*4/3)/2, 0, height*4/3, height);
|
||
}
|
||
|
||
/*
|
||
*1. 进入全屏时,创建一个缩放控件
|
||
*2. 将remoteView添加到scrollView上面(注意,退出全屏时,要将remoteView添加回到canvasView)
|
||
*/
|
||
NSString * plist = [[NSBundle mainBundle] pathForResource:@"Common-Configuration" ofType:@"plist"];
|
||
NSDictionary * dic = [NSDictionary dictionaryWithContentsOfFile:plist];
|
||
BOOL isSupportZoom = [dic[@"isSupportZoom"] boolValue];
|
||
if (isSupportZoom) {
|
||
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, width, height)];
|
||
scrollView.multipleTouchEnabled = YES;
|
||
scrollView.minimumZoomScale = 1.0;
|
||
scrollView.maximumZoomScale = 4.0;
|
||
scrollView.delegate = self;
|
||
scrollView.backgroundColor = [UIColor clearColor];
|
||
|
||
if (self.remoteView.superview) {
|
||
[self.remoteView removeFromSuperview];
|
||
}
|
||
[scrollView addSubview:self.remoteView];
|
||
[self.canvasView addSubview:scrollView];
|
||
self.scrollView = scrollView;
|
||
|
||
}
|
||
|
||
|
||
//进入横屏,修改lightButton和progressView的frame
|
||
self.progressView.frame = CGRectMake(self.remoteView.frame.size.width-30.0-20.0, (self.remoteView.frame.size.height-30.0)/2, 30.0, 30.0);
|
||
self.lightButton.frame = CGRectMake(self.remoteView.frame.size.width-30.0-20.0, (self.remoteView.frame.size.height-30.0)/2, 30.0, 30.0);
|
||
|
||
|
||
//进入横屏,修改焦距控件的frame
|
||
//宽、高
|
||
CGFloat focalLengthView_w = 40.0;
|
||
CGFloat focalLengthView_h = 180.0;
|
||
//焦距控件与屏幕右边框的间距
|
||
CGFloat space_FocalLView_Screen = (width - self.remoteView.frame.size.width)/2+20+focalLengthView_w;
|
||
self.focalLengthView.frame = CGRectMake(width-space_FocalLView_Screen, height-self.bottomBarView.frame.size.height-20.0-focalLengthView_h, focalLengthView_w, focalLengthView_h);
|
||
|
||
|
||
//左边的按住说话弹出的声音图标
|
||
//进入横屏时,调整frame
|
||
self.pressView.frame = CGRectMake(10, height-PRESS_LAYOUT_WIDTH_AND_HEIGHT-BOTTOM_BAR_HEIGHT, PRESS_LAYOUT_WIDTH_AND_HEIGHT/2, PRESS_LAYOUT_WIDTH_AND_HEIGHT);
|
||
|
||
|
||
//设置高清 或标清
|
||
// [self setGaoQingHuoBiaoQing];
|
||
|
||
//设置横屏底部工具栏3秒隐藏
|
||
[self hideBootommViewAfterSecondes];
|
||
|
||
}
|
||
-(void)hideSubControlerBootomm{
|
||
|
||
|
||
}
|
||
|
||
-(void)disHideSubControlerBootomm{
|
||
|
||
|
||
}
|
||
#pragma mark - 设置标清或高清
|
||
//由于要隐藏掉 画质选项卡 这里重写方法 设置视频默认高清 或标清
|
||
|
||
-(void)setGaoQingHuoBiaoQing{
|
||
BOOL is16B9 = [[P2PClient sharedClient] is16B9];
|
||
BOOL is960P = [[P2PClient sharedClient] is960P];
|
||
//右边的画质图标
|
||
int rightItemCount = 0;
|
||
if(is16B9 || is960P){
|
||
rightItemCount = 3;
|
||
}else{
|
||
rightItemCount = 2;
|
||
}
|
||
|
||
//设置高清
|
||
if (rightItemCount==3) {
|
||
|
||
[[P2PClient sharedClient] sendCommandType:USR_CMD_VIDEO_CTL andOption:7];
|
||
[self updateRightButtonState:CONTROLLER_BTN_TAG_HD];
|
||
|
||
}else if (rightItemCount == 2){
|
||
|
||
//设置标清
|
||
|
||
[[P2PClient sharedClient] sendCommandType:USR_CMD_VIDEO_CTL andOption:5];
|
||
[self updateRightButtonState:CONTROLLER_BTN_TAG_SD];
|
||
}
|
||
|
||
}
|
||
|
||
#pragma mark - 设置高清、标清选中
|
||
-(void)updateRightButtonState:(NSInteger)tag{
|
||
for(UIView *view in self.controllerRight.subviews){
|
||
UILabel *labelHD = (UILabel *)[view viewWithTag:CONTROLLER_LABEL_TAG_HD];
|
||
if (labelHD) {
|
||
labelHD.textColor = XWhite;
|
||
}
|
||
UILabel *labelSD = (UILabel *)[view viewWithTag:CONTROLLER_LABEL_TAG_SD];
|
||
if (labelSD) {
|
||
labelSD.textColor = XWhite;
|
||
}
|
||
UILabel *labelLD = (UILabel *)[view viewWithTag:CONTROLLER_LABEL_TAG_LD];
|
||
if (labelLD) {
|
||
labelLD.textColor = XWhite;
|
||
}
|
||
}
|
||
UIButton *button = (UIButton*)[self.controllerRight viewWithTag:tag];
|
||
|
||
|
||
//重新调整监控画面
|
||
UIButton *rButton = (UIButton *)[self.bottomBarView viewWithTag:CONTROLLER_BTN_TAG_RESOLUTION];
|
||
if (tag == CONTROLLER_BTN_TAG_HD) {
|
||
UILabel *label = (UILabel *)[button viewWithTag:CONTROLLER_LABEL_TAG_HD];
|
||
label.textColor = XBlue;
|
||
//[rButton setTitle:NSLocalizedString(@"HD", nil) forState:UIControlStateNormal];
|
||
[rButton setTitle:NSLocalizedString(@"高清", nil) forState:UIControlStateNormal];
|
||
}else if(tag == CONTROLLER_BTN_TAG_SD){
|
||
UILabel *label = (UILabel *)[button viewWithTag:CONTROLLER_LABEL_TAG_SD];
|
||
label.textColor = XBlue;
|
||
[rButton setTitle:NSLocalizedString(@"标清", nil) forState:UIControlStateNormal];
|
||
//[rButton setTitle:NSLocalizedString(@"SD", nil) forState:UIControlStateNormal];
|
||
}else if (tag == CONTROLLER_BTN_TAG_LD){
|
||
UILabel *label = (UILabel *)[button viewWithTag:CONTROLLER_LABEL_TAG_LD];
|
||
label.textColor = XBlue;
|
||
[rButton setTitle:NSLocalizedString(@"流畅", nil) forState:UIControlStateNormal];
|
||
//[rButton setTitle:NSLocalizedString(@"LD", nil) forState:UIControlStateNormal];
|
||
}
|
||
|
||
[self didHiddenResolutionInterface];
|
||
}
|
||
|
||
|
||
|
||
@end
|