// // P2PPlaybackController.m // Yoosee // // Created by guojunyi on 14-4-22. // Copyright (c) 2014年 guojunyi. All rights reserved. // #import "P2PPlaybackController.h" #import "AppDelegate.h" #import "Constants.h" //#import "MainController.h" //#import "TopBar.h" #import "Utils.h" #import "Contact.h" #import "P2PClient.h" #import "Toast+UIView.h" #import "P2PPlayingbackVC.h" #import "SVPullToRefresh.h" #import "UIScrollView+SVInfiniteScrolling.h" #import "P2PPlayingbackVC.h" #import "YMsgBox.h" #import "FListManager.h" #import "UIViewExt.h" #import "YFonc.h" #import "MBProgressHUD.h" @interface P2PPlaybackController () { UIView *_tfStateView; UIImageView *_tfStateImageView; UILabel *_tfLabel; UILabel *_tfLabel1; UILabel *_tfLabel2; BOOL _isNeedHideSdState; BOOL _msgBoxPwdErrorHadShow; BOOL _gtACKMesg;//获取ACK回调,此用来做超时处理 BOOL _gtMsg;//获取Msg回调,此用来做超时处理 BOOL _hadShowTimeOut; } @end @implementation P2PPlaybackController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } -(void)viewDidLayoutSubviews{ [super viewDidLayoutSubviews]; [self tfStateTFCardUILayout]; } -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; self.view.userInteractionEnabled = YES; [[P2PClient sharedClient] setPlaybackDelegate:self]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveRemoteMessage:) name:RECEIVE_REMOTE_MESSAGE object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ack_receiveRemoteMessage:) name:ACK_RECEIVE_REMOTE_MESSAGE object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(readPlayFalse:) name:@"read_play_false" object:nil]; // MainController *mainController = [AppDelegate sharedDefault].mainController; // if ([[AppDelegate sharedDefault]dwApContactID]) { // mainController = [AppDelegate sharedDefault].mainController_ap; // } // [mainController setBottomBarHidden:YES]; } -(void)readPlayFalse:(NSNotification*)noti{ /// dispatch_async(dispatch_get_main_queue(), ^{ [UIView transitionWithView:self.movieView duration:0.3 options:UIViewAnimationOptionCurveEaseOut animations:^{ self.movieView.alpha = 0.3; } completion:^(BOOL finished){ [self.movieView setHidden:YES]; [self.view makeToast:NSLocalizedString(@"connection_failed_please_reconnect", nil)]; } ]; }); } -(void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated]; [[NSNotificationCenter defaultCenter] removeObserver:self name:RECEIVE_REMOTE_MESSAGE object:nil]; [[NSNotificationCenter defaultCenter] removeObserver:self name:ACK_RECEIVE_REMOTE_MESSAGE object:nil]; [[NSNotificationCenter defaultCenter] removeObserver:self name:@"read_play_false" object:nil]; } - (void)receiveRemoteMessage:(NSNotification *)notification{ NSDictionary *parameter = [notification userInfo]; int key = [[parameter valueForKey:@"key"] intValue]; _gtMsg=YES; // NSLog(@"回放 收到receive消息 ,key=0x%x",key); switch(key){ case RET_GET_SDCARD_INFO://获取有无SD卡信息 { NSInteger result = [[parameter valueForKey:@"result"] intValue]; dispatch_async(dispatch_get_main_queue(), ^{ if (result == 1) { //有卡 [self.searchMaskView hide:YES]; _gtMsg=YES; _hadShowTimeOut=YES; self.isLoadingStorageInfo = NO; _isNeedHideSdState = YES; [_tfStateView setHidden:_isNeedHideSdState]; //获取是否有录像文件 if(!self.isInitSearch){ self.isInitSearch = !self.isInitSearch; [[P2PClient sharedClient] setCurrentLabel:1]; [[P2PClient sharedClient] getPlaybackFilesWithId:self.camera.cameraId password:self.camera.cameraPass timeInterval:1]; } [[P2PClient sharedClient] setPlaybackDelegate:self]; }else{ //无卡 [self.searchMaskView hide:YES]; _gtMsg=YES; _hadShowTimeOut=YES; //1.存储器不存在,隐藏表格--->return 0; [self.tableView setUserInteractionEnabled:NO]; _isNeedHideSdState = NO; [_tfStateView setHidden:_isNeedHideSdState]; } }); } break; case RET_GET_PLAYBACK_FILES: { _gtMsg=YES; _hadShowTimeOut=YES; dispatch_async(dispatch_get_main_queue(), ^{ [self.searchMaskView hide:YES]; }); //回放文件名称 NSArray *array = [NSArray arrayWithArray:(NSArray*)[parameter valueForKey:@"files"]]; //删除"disc1/"字符串 NSMutableArray* diskName = [NSMutableArray arrayWithCapacity:0]; for (NSString *element in array) { NSMutableString * str1 = [NSMutableString stringWithString:element]; //用查找范围方式删除要删除的字符串 NSRange r1 = [str1 rangeOfString:@"disc1/"];//查找字符串 if (r1.location != NSNotFound) { //删除查找到的字符串 [str1 deleteCharactersInRange:r1];//此只能用于可变的字符串; } [diskName addObject:str1]; } //回放文件的时间记录 NSArray *times = [NSArray arrayWithArray:(NSArray*)[parameter valueForKey:@"times"]]; //回放文件的播放时长 NSArray *sizes = [NSArray arrayWithArray:(NSArray*)[parameter valueForKey:@"sizes"]]; //选择最近1天、3天、1个月或者自定义时,清空存储回放文件的数组、存储播放时长的数组 if (self.isChangePlaybackItem) { [self.playbackFiles removeAllObjects]; [self.playbackSize removeAllObjects]; self.isChangePlaybackItem = NO; } //若不是上拉加载更多时,则往已清空的数组存放回放文件 //若是上拉加载更多,则往存有数据的数组末尾添加回放文件 for (NSString *file in diskName){ [self.playbackFiles addObject:file]; } //若不是上拉加载更多时,则往数组存放回放文件的播放时长 //若是上拉加载更多,则往数组末尾添加回放文件的播放时长 for (NSString *size in sizes){ [self.playbackSize addObject:size]; } //刷新表格 dispatch_async(dispatch_get_main_queue(), ^{ [self.tableView reloadData]; if (self.playbackFiles.count < 1) { [self.view makeToast:NSLocalizedString(@"no_playback_file", nil)]; } }); self.timesData = [NSMutableArray arrayWithArray:times]; if (self.timesData.count==0) { return; } //记录最近1天、3天...已显示文件里最后一个文件的时间(最早文件的时间) //用于上拉加载时传入的结束时间 self.nextStartTime = [self.timesData lastObject]; } break; } } - (void)ack_receiveRemoteMessage:(NSNotification *)notification{ _gtACKMesg=YES; NSDictionary *parameter = [notification userInfo]; int key = [[parameter valueForKey:@"key"] intValue]; int result = [[parameter valueForKey:@"result"] intValue]; // NSLog(@"回放 收到ACK消息 ,key=0x%x,result==%ld",key,(long)result); switch(key){ case ACK_RET_GET_PLAYBACK_FILES: { dispatch_async(dispatch_get_main_queue(), ^{ if(result==1){ _gtMsg=YES; _hadShowTimeOut=YES; [self.searchMaskView hide:YES]; if (!_msgBoxPwdErrorHadShow) { _msgBoxPwdErrorHadShow=YES; YMsgBox *yBox = [[YMsgBox alloc] init]; yBox.theTagString=@"Msg_flist_pwd_error"; yBox.yMsgTextField.secureTextEntry = YES; [yBox addTarget:self withAction:@selector(playbackPasswordModify:) forEvent:YMsgBoxMsgTypeButtonBeClick]; yBox.yMsgTitle = [YFonc gtTextWithString:NSLocalizedString(@"password_error", nil) withColor:[UIColor blackColor] withFont:[UIFont systemFontOfSize:15] withAlignment:NSTextAlignmentCenter]; yBox.yMsgTextFieldBorderColor=RGBA(62,156,254,1.0); yBox.yMsgTextFieldBottomLineColor=[UIColor clearColor]; yBox.yMsgButtonBorderColor=RGBA(211,211,212,1.0); UIButton *cancelBtn= [[UIButton alloc ]init]; [cancelBtn setTitleColor:UIColorFromRGB(0xa9a9a9) forState:UIControlStateNormal]; cancelBtn.titleLabel.font = [UIFont systemFontOfSize:15]; [cancelBtn setTitle:NSLocalizedString(@"cancel",nil) forState:UIControlStateNormal]; UIButton *okBtn= [[UIButton alloc ]init]; okBtn.titleLabel.font = [UIFont systemFontOfSize:15]; [okBtn setTitle:NSLocalizedString(@"ok",nil) forState:UIControlStateNormal]; [okBtn setTitleColor:UIColorFromRGB(0x3e9cfe) forState:UIControlStateNormal]; yBox.yMsgButtons = @[cancelBtn,okBtn]; yBox.yMsgInputPlaceholder = NSLocalizedString(@"input_password",nil); [yBox showMsgBoxInViewController:self]; // NSLog(@"文件列表 弹窗"); } }else if(result==4){ [self.searchMaskView hide:YES]; _gtMsg=YES; _hadShowTimeOut=YES; [self.view makeToast:NSLocalizedString(@"no_permission", nil)]; }else if(result!=0){ [self.searchMaskView hide:YES]; _gtMsg=YES; _hadShowTimeOut=YES; [self.view makeToast:NSLocalizedString(@"net_exception", nil)]; } }); DLog(@"ACK_RET_GET_PLAYBACK_FILES:%i",result); } break; case ACK_RET_GET_SDCARD_INFO: { dispatch_async(dispatch_get_main_queue(), ^{ ////// if(result==1){ //密码错误 [self.searchMaskView hide:YES]; _gtMsg=YES; _hadShowTimeOut=YES; // NSLog(@"获取SD卡 密码错误"); if (!_msgBoxPwdErrorHadShow) { _msgBoxPwdErrorHadShow=YES; [self.searchMaskView hide:YES]; YMsgBox *yBox = [[YMsgBox alloc] init]; yBox.theTagString=@"Msg_sdcard_pwd_error"; yBox.yMsgTextField.secureTextEntry = YES; [yBox addTarget:self withAction:@selector(playbackPasswordModify:) forEvent:YMsgBoxMsgTypeButtonBeClick]; yBox.yMsgTitle = [YFonc gtTextWithString:NSLocalizedString(@"password_error", nil) withColor:[UIColor blackColor] withFont:[UIFont systemFontOfSize:15] withAlignment:NSTextAlignmentCenter]; yBox.yMsgTextFieldBorderColor=RGBA(62,156,254,1.0); yBox.yMsgTextFieldBottomLineColor=[UIColor clearColor]; yBox.yMsgButtonBorderColor=RGBA(211,211,212,1.0); UIButton *cancelBtn= [[UIButton alloc ]init]; [cancelBtn setTitleColor:UIColorFromRGB(0xa9a9a9) forState:UIControlStateNormal]; cancelBtn.titleLabel.font = [UIFont systemFontOfSize:15]; [cancelBtn setTitle:NSLocalizedString(@"cancel",nil) forState:UIControlStateNormal]; UIButton *okBtn= [[UIButton alloc ]init]; okBtn.titleLabel.font = [UIFont systemFontOfSize:15]; [okBtn setTitle:NSLocalizedString(@"ok",nil) forState:UIControlStateNormal]; [okBtn setTitleColor:UIColorFromRGB(0x3e9cfe) forState:UIControlStateNormal]; yBox.yMsgButtons = @[cancelBtn,okBtn]; yBox.yMsgInputPlaceholder = NSLocalizedString(@"input_password",nil); [yBox showMsgBoxInViewController:self];//不要弹窗,不然会重叠 NSLog(@"获取SD卡 弹窗"); } }else if(result==4){ [self.searchMaskView hide:YES]; _gtMsg=YES; _hadShowTimeOut=YES; [self.view makeToast:NSLocalizedString(@"no_permission", nil)]; }else if(result!=0){ _gtMsg=YES; _hadShowTimeOut=YES; //网络异常 // NSLog(@"获取SD卡 网络异常"); [self.searchMaskView hide:YES]; [self.view makeToast:NSLocalizedString(@"net_exception", nil)]; } }); break; } default:{ dispatch_async(dispatch_get_main_queue(), ^{ [self.searchMaskView hide:YES]; // NSLog(@"ack 默认"); [self showTimeOutToast]; }); break; } } } - (void)viewDidLoad { [super viewDidLoad]; _msgBoxPwdErrorHadShow=NO; _hadShowTimeOut=NO; _gtACKMesg=NO; _gtMsg=NO; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)10000*NSEC_PER_MSEC), dispatch_get_main_queue(), ^{ if (!_gtACKMesg||!_gtMsg) { [_searchMaskView setHidden:YES]; // NSLog(@"超时显示"); [self showTimeOutToast]; } }); [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveRemoteMessage:) name:RECEIVE_REMOTE_MESSAGE object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ack_receiveRemoteMessage:) name:ACK_RECEIVE_REMOTE_MESSAGE object:nil]; [[P2PClient sharedClient] setPlaybackDelegate:self]; self.isLoadingStorageInfo = YES; [[P2PClient sharedClient] getSDCardInfoWithId:self.camera.cameraId password:self.camera.cameraPass]; [[P2PClient sharedClient] getPlaybackFilesWithId:self.camera.cameraId password:self.camera.cameraPass timeInterval:1]; [[P2PClient sharedClient] setIsClearPlaybackFilesLength:YES];//isClearPlaybackFilesLength _isNeedHideSdState=YES; [[UIApplication sharedApplication] setIdleTimerDisabled:YES]; self.selectedLabel = 1; self.playbackFiles = [NSMutableArray arrayWithCapacity:0]; self.playbackSize = [NSMutableArray arrayWithCapacity:0]; [self initComponent]; [self initTfStateView]; // Do any additional setup after loading the view. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #define SEARCH_BAR_HEIGHT 36 #define TOP_INFO_BAR_HEIGHT 80 #define PLAYBACK_LIST_ITEM_HEIGHT 40 #define TOP_HEAD_MARGIN 10 #define PROGRESS_WIDTH_AND_HEIGHT 58 #define ANIM_VIEW_WIDTH_AND_HEIGHT 80 -(void)initComponent{ CGRect rect = [AppDelegate getScreenSize:YES isHorizontal:NO]; CGFloat width = rect.size.width; CGFloat height = rect.size.height; [self.view setBackgroundColor:XBgColor]; //TopBar *topBar = [[TopBar alloc] initWithFrame:CGRectMake(0, 0, width, NAVIGATION_BAR_HEIGHT)]; // [topBar setBackButtonHidden:NO]; // [topBar.backButton addTarget:self action:@selector(onBackPress) forControlEvents:UIControlEventTouchUpInside]; //[topBar setTitle:NSLocalizedString(@"playback",nil)]; UIView *topInfoBarView = [[UIView alloc] initWithFrame:CGRectMake(0, NAVIGATION_BAR_HEIGHT, width, TOP_INFO_BAR_HEIGHT)]; [topInfoBarView setBackgroundColor:XWhite]; UIImageView *headImgView = [[UIImageView alloc] initWithFrame:CGRectMake(TOP_HEAD_MARGIN, TOP_HEAD_MARGIN, (TOP_INFO_BAR_HEIGHT-TOP_HEAD_MARGIN*2)*4/3, TOP_INFO_BAR_HEIGHT-TOP_HEAD_MARGIN*2)]; NSString *filePath = [Utils getHeaderFilePathWithId:self.camera.cameraId]; UIImage *headImg = [UIImage imageWithContentsOfFile:filePath]; if(headImg==nil){ headImg = [UIImage imageNamed:@"ic_header.png"]; } headImgView.image = headImg; [topInfoBarView addSubview:headImgView]; UILabel *nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(TOP_HEAD_MARGIN+(TOP_INFO_BAR_HEIGHT-TOP_HEAD_MARGIN*2)*4/3+TOP_HEAD_MARGIN,0,width-(TOP_HEAD_MARGIN+(TOP_INFO_BAR_HEIGHT-TOP_HEAD_MARGIN*2)*4/3+TOP_HEAD_MARGIN),TOP_INFO_BAR_HEIGHT)]; nameLabel.textAlignment = NSTextAlignmentLeft; nameLabel.textColor = XBlack; nameLabel.backgroundColor = XBGAlpha; [nameLabel setFont:XFontBold_18]; nameLabel.text = self.camera.showName; [topInfoBarView addSubview:nameLabel]; [self.view addSubview:topInfoBarView]; UIView *searchBarView = [[UIView alloc] initWithFrame:CGRectMake(0, NAVIGATION_BAR_HEIGHT+TOP_INFO_BAR_HEIGHT, width, SEARCH_BAR_HEIGHT)]; [searchBarView setBackgroundColor:XWhite]; UIImageView *layarView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, width/4, SEARCH_BAR_HEIGHT)]; [layarView setBackgroundColor:XBlue]; [searchBarView addSubview:layarView]; self.layerView = layarView; for(int i=0;i<4;i++){ UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(i*width/4,0,width/4,SEARCH_BAR_HEIGHT)]; button.tag = i; UILabel *textLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,0,button.frame.size.width,button.frame.size.height)]; textLabel.textAlignment = NSTextAlignmentCenter; ; textLabel.backgroundColor = XBGAlpha; [textLabel setFont:XFontBold_14]; textLabel.numberOfLines = 0; if(i==0){ textLabel.textColor = XBlack; textLabel.text = NSLocalizedString(@"recent_one_day", nil); }else if(i==1){ textLabel.textColor = UIColorFromRGB(0x808080); textLabel.text = NSLocalizedString(@"recent_three_day", nil); }else if(i==2){ textLabel.textColor = UIColorFromRGB(0x808080); textLabel.text = NSLocalizedString(@"all_playback_files", nil); }else if(i==3){ textLabel.textColor = UIColorFromRGB(0x808080); textLabel.text = NSLocalizedString(@"custom", nil); } [button addSubview:textLabel]; [button addTarget:self action:@selector(onButtonPress:) forControlEvents:UIControlEventTouchUpInside]; [searchBarView addSubview:button]; } [self.view addSubview:searchBarView]; self.searchBarView = searchBarView; UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, NAVIGATION_BAR_HEIGHT+TOP_INFO_BAR_HEIGHT+SEARCH_BAR_HEIGHT, width, height-(NAVIGATION_BAR_HEIGHT+TOP_INFO_BAR_HEIGHT+SEARCH_BAR_HEIGHT)) style:UITableViewStylePlain]; tableView.delegate = self; tableView.dataSource = self; [tableView setBackgroundColor:XBGAlpha]; [tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; [self.view addSubview:tableView]; [tableView addInfiniteScrollingWithActionHandler:^{ //获取的回放文件里会包含endDate时间的文件 NSDate * endDate = [Utils dateFromString:self.nextStartTime]; if (self.selectedLabel==1) {//1 day [self gtOneDayList]; }else if (self.selectedLabel==2){//3 days NSDate *nowDate = [NSDate date]; //3天前 NSDate *startDate = [nowDate dateByAddingTimeInterval: -(3*24*60*60)]; [[P2PClient sharedClient] setIsLoadMorePlaybackFilesForThreeDay:YES]; [[P2PClient sharedClient] getPlaybackFilesWithIdByDate:self.camera.cameraId password:self.camera.cameraPass startDate:startDate endDate:endDate]; }else if (self.selectedLabel==3){//1 mon NSDate *nowDate = [NSDate date]; // 从1970年开始 NSTimeInterval timeInterval = [[NSDate date] timeIntervalSince1970]; long long dateInterval = (long long int)timeInterval; NSDate *startDate = [nowDate dateByAddingTimeInterval: -dateInterval]; [[P2PClient sharedClient] setIsLoadMorePlaybackFilesForOneMon:YES]; [[P2PClient sharedClient] getPlaybackFilesWithIdByDate:self.camera.cameraId password:self.camera.cameraPass startDate:startDate endDate:endDate]; }else if (self.selectedLabel==4){ [[P2PClient sharedClient] setIsLoadMorePlaybackFilesForCustom:YES]; NSDate *customStartDate = [Utils dateFromString:self.startTime]; [[P2PClient sharedClient] getPlaybackFilesWithIdByDate:self.camera.cameraId password:self.camera.cameraPass startDate:customStartDate endDate:endDate]; }//视频回放修复 self.loadCount = (unsigned long)[self.playbackFiles count]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ sleep(1.0); dispatch_async(dispatch_get_main_queue(), ^{ [self.tableView.infiniteScrollingView stopAnimating]; if (self.loadCount == (unsigned long)[self.playbackFiles count]) { [self.searchMaskView hide:YES]; [self.view makeToast:NSLocalizedString(@"no_more_record", nil)]; } }); }); }]; self.tableView = tableView; UIView *searchMaskView = [[UIView alloc] initWithFrame:CGRectMake(0, NAVIGATION_BAR_HEIGHT, self.view.frame.size.width, self.view.frame.size.height-NAVIGATION_BAR_HEIGHT)]; // [searchMaskView setBackgroundColor:XBlack_128]; // UIActivityIndicatorView *progress = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; // progress.frame = CGRectMake((searchMaskView.frame.size.width-PROGRESS_WIDTH_AND_HEIGHT)/2, (searchMaskView.frame.size.height-PROGRESS_WIDTH_AND_HEIGHT)/2, PROGRESS_WIDTH_AND_HEIGHT, PROGRESS_WIDTH_AND_HEIGHT); // [progress startAnimating]; // [searchMaskView addSubview:progress]; // [progress release]; // [searchMaskView setHidden:NO]; // [self.view addSubview:searchMaskView]; // self.searchMaskView = searchMaskView; self.searchMaskView = [[MBProgressHUD alloc] initWithView:searchMaskView] ; [self.view addSubview:self.searchMaskView]; self.searchMaskView.dimBackground = YES; [self.searchMaskView show:YES]; UIView *movieView = [[UIView alloc] initWithFrame:CGRectMake(0, NAVIGATION_BAR_HEIGHT, self.view.frame.size.width, self.view.frame.size.height-NAVIGATION_BAR_HEIGHT)]; [movieView setBackgroundColor:XBlack_128]; UIImageView *animView = [[UIImageView alloc] initWithFrame:CGRectMake((movieView.frame.size.width-ANIM_VIEW_WIDTH_AND_HEIGHT)/2, (movieView.frame.size.height-ANIM_VIEW_WIDTH_AND_HEIGHT)/2, ANIM_VIEW_WIDTH_AND_HEIGHT, ANIM_VIEW_WIDTH_AND_HEIGHT)]; NSArray *imagesArray = [NSArray arrayWithObjects:[UIImage imageNamed:@"movie1.png"],[UIImage imageNamed:@"movie2.png"],[UIImage imageNamed:@"movie3.png"],nil]; animView.animationImages = imagesArray; animView.animationDuration = ((CGFloat)[imagesArray count])*100.0f/1000.0f; animView.animationRepeatCount = 0; [animView startAnimating]; [movieView addSubview:animView]; [movieView setHidden:YES]; [self.view addSubview:movieView]; self.movieView = movieView; [self initCustomView]; //使Tabbar保证在最顶层 //[self.view addSubview:topBar]; } -(void)gtOneDayList{ NSDate * endDate = [Utils dateFromString:self.nextStartTime]; NSDate *nowDate = [NSDate date]; //1天前 NSDate *startDate = [nowDate dateByAddingTimeInterval: -(24*60*60)]; [[P2PClient sharedClient] setIsLoadMorePlaybackFilesForOneDay:YES]; [[P2PClient sharedClient] getPlaybackFilesWithIdByDate:self.camera.cameraId password:self.camera.cameraPass startDate:startDate endDate:endDate]; } -(void)initTfStateView { _tfStateView = [[UIView alloc] init]; _tfStateView.backgroundColor=[UIColor clearColor]; [self.view addSubview:_tfStateView]; [_tfStateView setHidden:YES]; _tfStateImageView=[[UIImageView alloc] init]; _tfStateImageView.backgroundColor=[UIColor clearColor]; [_tfStateImageView setImage:[UIImage imageNamed:@"playback_no_tfcard.png"]]; [_tfStateView addSubview:_tfStateImageView]; _tfLabel = [[UILabel alloc] init]; _tfLabel.backgroundColor = [UIColor clearColor]; _tfLabel.font = [UIFont systemFontOfSize:30.0/2.0]; _tfLabel.textColor = UIColorFromRGB(0x5586f6); _tfLabel.text = NSLocalizedString(@"no_storage_card_inserted_into_your_camera", nil); _tfLabel.textAlignment = NSTextAlignmentCenter; [_tfStateView addSubview:_tfLabel]; _tfLabel1 = [[UILabel alloc] init]; _tfLabel1.backgroundColor = [UIColor clearColor]; _tfLabel1.font = [UIFont systemFontOfSize:24/2.0]; _tfLabel1.textColor = UIColorFromRGB(0xa9a9a9); _tfLabel1.text = NSLocalizedString(@"storage_card_text", nil); _tfLabel1.numberOfLines = 0; _tfLabel1.textAlignment = NSTextAlignmentCenter; [_tfStateView addSubview:_tfLabel1]; } #pragma mark 布局 -(void)tfStateTFCardUILayout{ //录像状态 CGFloat TempW=self.view.width / 1.3; CGFloat TempH=460.0/2.0; CGFloat TempX=(self.view.width - TempW) / 2.0; CGFloat TempY=NAVIGATION_BAR_HEIGHT+TOP_INFO_BAR_HEIGHT + SEARCH_BAR_HEIGHT + 164.0/2.0; CGRect newRect=CGRectMake(TempX, TempY, TempW, TempH); // _tfStateView.backgroundColor = [UIColor redColor]; _tfStateView.frame=newRect; //REC文本控件 TempW=252.0/2.0; TempH=162.0/2.0; TempX=(_tfStateView.width - TempW)/2.0; TempY=0.0; newRect=CGRectMake(TempX, TempY, TempW, TempH); _tfStateImageView.frame=newRect; TempW=_tfStateView.width; TempH=16.0; TempX=0.0; TempY=_tfStateImageView.bottom + 33.0/2.0; newRect=CGRectMake(TempX, TempY, TempW, TempH); _tfLabel.frame=newRect; TempW=_tfStateView.width; TempH=[YFonc gtTextCGSize:_tfLabel1.text withTextMaxWidth:TempW withFont:_tfLabel1.font].height; // TempH=_tfStateView.height - _tfLabel.bottom; TempX=0.0; TempY=_tfLabel.bottom + 31.0/2.0; newRect=CGRectMake(TempX, TempY, TempW, TempH); // _tfLabel1.backgroundColor = [UIColor orangeColor]; _tfLabel1.frame=newRect; } #define CUSTOM_VIEW_HEIGHT 338 #define CUSTOM_VIEW_RIGHT_BTN_WIDTH_AND_HEIGHT 38 #define CUSTOM_VIEW_INPUT_VIEW_HEIGHT 100 #define CUSTOM_VIEW_INPUT_VIEW_ITEM_LEFT_LABEL_WIDTH 75 -(void)initCustomView{ CGRect rect = [AppDelegate getScreenSize:YES isHorizontal:NO]; CGFloat width = rect.size.width; CGFloat height = rect.size.height; UIView *customView = [[UIView alloc] initWithFrame:CGRectMake(0, height, width, CUSTOM_VIEW_HEIGHT)]; [customView setBackgroundColor:XWhite]; //查询按钮 UIButton *searchBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [searchBtn addTarget:self action:@selector(onCustomSearch:) forControlEvents:UIControlEventTouchUpInside]; [searchBtn setBackgroundColor:[UIColor grayColor]]; [searchBtn setBackgroundImage:[UIImage imageNamed:@"bg_normal_cell_p.png"] forState:UIControlStateHighlighted]; searchBtn.frame = CGRectMake(0, 0, customView.frame.size.width, CUSTOM_VIEW_RIGHT_BTN_WIDTH_AND_HEIGHT); //查询文本 UILabel *searchLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, searchBtn.frame.size.width, searchBtn.frame.size.height)]; searchLabel.textAlignment = NSTextAlignmentCenter; searchLabel.textColor = XWhite; searchLabel.font = XFontBold_16; searchLabel.backgroundColor = XBGAlpha; searchLabel.text = NSLocalizedString(@"search", nil); [searchBtn addSubview:searchLabel]; // UIImageView *sep = [[UIImageView alloc] initWithFrame:CGRectMake(searchBtn.frame.size.width, 0, 1, searchBtn.frame.size.height)]; // [sep setBackgroundColor:XBlack]; // [customView addSubview: sep]; // [sep release]; // UIButton *hideBtn = [UIButton buttonWithType:UIButtonTypeCustom]; // [hideBtn setBackgroundImage:[UIImage imageNamed:@"bg_normal_cell_p.png"] forState:UIControlStateHighlighted]; // hideBtn.frame = CGRectMake(customView.frame.size.width-CUSTOM_VIEW_RIGHT_BTN_WIDTH_AND_HEIGHT, 0, CUSTOM_VIEW_RIGHT_BTN_WIDTH_AND_HEIGHT, CUSTOM_VIEW_RIGHT_BTN_WIDTH_AND_HEIGHT); // [customView addSubview:hideBtn]; [customView addSubview:searchBtn]; // UIView *inputView = [[UIView alloc] initWithFrame:CGRectMake(0, CUSTOM_VIEW_RIGHT_BTN_WIDTH_AND_HEIGHT, customView.frame.size.width, CUSTOM_VIEW_INPUT_VIEW_HEIGHT)]; [inputView setBackgroundColor:XWhite]; //查询开始时间按钮 UIButton *startTime = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, inputView.frame.size.width-20, (inputView.frame.size.height-30)/2)]; startTime.tag = 0; startTime.layer.cornerRadius = 2; startTime.layer.borderWidth = 1; startTime.layer.borderColor = [XWhite CGColor]; startTime.layer.masksToBounds = YES; startTime.backgroundColor = UIColorFromRGB(0xcccccc); [startTime.layer setShadowOffset:CGSizeMake(0, 0)]; [startTime.layer setShadowColor:[XBlue CGColor]]; [startTime.layer setShadowOpacity:1.0]; [startTime setClipsToBounds:NO]; self.startTimeBtn = startTime; [startTime addTarget:self action:@selector(changeTimeBtnShadow:) forControlEvents:UIControlEventTouchUpInside]; //文本 CGFloat startLeftLabel_w = [Utils getStringWidthWithString:NSLocalizedString(@"start_time", nil) font:XFontBold_16 maxWidth:1000]+5.0; UILabel *startLeftLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, startLeftLabel_w, startTime.frame.size.height)]; startLeftLabel.textAlignment = NSTextAlignmentRight; startLeftLabel.textColor = XBlue; startLeftLabel.font = XFontBold_16; startLeftLabel.backgroundColor = XBGAlpha; startLeftLabel.text = NSLocalizedString(@"start_time", nil); [startTime addSubview:startLeftLabel]; //文本 UILabel *startRightLabel = [[UILabel alloc] initWithFrame:CGRectMake(startLeftLabel_w, 0, startTime.frame.size.width-startLeftLabel_w, startTime.frame.size.height)]; startRightLabel.textAlignment = NSTextAlignmentLeft; startRightLabel.textColor = XBlue; startRightLabel.font = XFontBold_16; startRightLabel.backgroundColor = XBGAlpha; startRightLabel.text = @""; [startTime addSubview:startRightLabel]; self.startTimeLabel = startRightLabel; [inputView addSubview:startTime]; //查询结束时间按钮 UIButton *endTime = [[UIButton alloc] initWithFrame:CGRectMake(10, 10+(inputView.frame.size.height-30)/2+10, inputView.frame.size.width-20, (inputView.frame.size.height-30)/2)]; endTime.tag = 1; endTime.layer.cornerRadius = 2; endTime.layer.borderWidth = 1; endTime.layer.borderColor = [XWhite CGColor]; endTime.layer.masksToBounds = YES; endTime.backgroundColor = UIColorFromRGB(0xcccccc); [endTime.layer setShadowOffset:CGSizeMake(1, 1)]; [endTime.layer setShadowColor:[XBGAlpha CGColor]]; [endTime.layer setShadowOpacity:1.0]; [endTime setClipsToBounds:NO]; self.endTimeBtn = endTime; [endTime addTarget:self action:@selector(changeTimeBtnShadow:) forControlEvents:UIControlEventTouchUpInside]; //文本 CGFloat endLeftLabel_w = [Utils getStringWidthWithString:NSLocalizedString(@"end_time", nil) font:XFontBold_16 maxWidth:1000]+5.0; UILabel *endLeftLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, endLeftLabel_w, endTime.frame.size.height)]; endLeftLabel.textAlignment = NSTextAlignmentRight; endLeftLabel.textColor = XBlue; endLeftLabel.font = XFontBold_16; endLeftLabel.backgroundColor = XBGAlpha; endLeftLabel.text = NSLocalizedString(@"end_time", nil); [endTime addSubview:endLeftLabel]; //文本 UILabel *endRightLabel = [[UILabel alloc] initWithFrame:CGRectMake(endLeftLabel_w, 0, endTime.frame.size.width-endLeftLabel_w, endTime.frame.size.height)]; endRightLabel.textAlignment = NSTextAlignmentLeft; endRightLabel.textColor = XBlue; endRightLabel.font = XFontBold_16; endRightLabel.backgroundColor = XBGAlpha; endRightLabel.text = @""; [endTime addSubview:endRightLabel]; self.endTimeLabel = endRightLabel; [inputView addSubview:endTime]; [customView addSubview: inputView]; [self.view addSubview:customView]; self.customView = customView; //时间选择器 // UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, CUSTOM_VIEW_RIGHT_BTN_WIDTH_AND_HEIGHT+CUSTOM_VIEW_INPUT_VIEW_HEIGHT, customView.frame.size.width, CUSTOM_VIEW_HEIGHT-CUSTOM_VIEW_RIGHT_BTN_WIDTH_AND_HEIGHT-CUSTOM_VIEW_INPUT_VIEW_HEIGHT)]; // // [datePicker setDatePickerMode:UIDatePickerModeDateAndTime]; // [datePicker setDate:[NSDate date] animated:NO]; // NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0]; // if ([language isEqualToString:@"zh-Hans"]) { // NSLocale* locale=[[NSLocale alloc]initWithLocaleIdentifier:@"zh-Hans"]; // [datePicker setLocale:locale]; // }else if ([language isEqualToString:@"en"]){ // NSLocale* locale=[[NSLocale alloc]initWithLocaleIdentifier:@"en"]; // [datePicker setLocale:locale]; // } // [datePicker setMinimumDate:[Utils dateFromString:[NSString stringWithFormat:@"2013-07-01 00:00"]]]; // [datePicker setMaximumDate:[Utils dateFromString:[NSString stringWithFormat:@"2035-12-31 23:59"]]]; // [datePicker addTarget:self action:@selector(onDatePickChange:) forControlEvents:UIControlEventValueChanged]; // // [customView addSubview:datePicker]; // [datePicker release]; CGFloat dwItemHeight = 30; CyclePickerView* cycleview = [[CyclePickerView alloc] initWithFrame:CGRectMake(0,50+CUSTOM_VIEW_INPUT_VIEW_HEIGHT+dwItemHeight, width, dwItemHeight*5)]; cycleview.delegate = self; cycleview.datasource = self; [cycleview reloadScroll]; [self.customView addSubview:cycleview]; self.cycleview = cycleview; NSDateComponents *dateComponents = [Utils getNowDateComponents]; int year = (int)[dateComponents year]; int month = (int)[dateComponents month]; int day = (int)[dateComponents day]; int hour = (int)[dateComponents hour]; int minute = (int)[dateComponents minute]; [self.cycleview selectCell:year-2010 inScroll:0]; [self.cycleview selectCell:month-1 inScroll:1]; [self.cycleview selectCell:day-1 inScroll:2]; [self.cycleview selectCell:hour inScroll:3]; [self.cycleview selectCell:minute inScroll:4]; //年月日时分文本 UIView* headlabelview = [[UIView alloc] initWithFrame:CGRectMake(0,50+CUSTOM_VIEW_INPUT_VIEW_HEIGHT, width, dwItemHeight)]; NSArray * arr = @[NSLocalizedString(@"year", nil),NSLocalizedString(@"month", nil),NSLocalizedString(@"day", nil),NSLocalizedString(@"hour", nil),NSLocalizedString(@"minute", nil)]; CGFloat noworigin = 0.0; for (NSInteger i = 0; i<5; i++) { UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(noworigin*headlabelview.frame.size.width, 0, [self.cycleview.scrollWidthProportion[i] floatValue]*headlabelview.frame.size.width, headlabelview.frame.size.height)]; label.text = arr[i]; label.textAlignment = NSTextAlignmentCenter; [headlabelview addSubview:label]; noworigin+=[self.cycleview.scrollWidthProportion[i] floatValue]; } [self.customView addSubview:headlabelview]; } #pragma mark - CyclePickerViewDelegate - (void)CyclePickerViewDidChangeValue:(NSArray *) valuearr{ NSString *time = [Utils getDeviceTimeByIntValue:[valuearr[0] integerValue] month:[valuearr[1] integerValue] day:[valuearr[2] integerValue] hour:[valuearr[3] integerValue] minute:[valuearr[4] integerValue]]; switch(self.selectedTimeTag){ case 0: { self.startTimeLabel.text = time; } break; case 1: { self.endTimeLabel.text = time; } break; } } //指定每一列的滚轮上的Cell的个数 - (NSUInteger)numberOfCellsInScroll:(NSUInteger)scroll{ switch (scroll) { case 0: return 27; break; case 1: return 12; break; case 2: return 31; break; case 3: return 24; break; case 4: return 60; break; default: return 10; break; } return 0; } //指定每一列滚轮所占整体宽度的比例,以:分隔 - (NSString *)scrollWidthProportion{ return @"1:1:1:1:1"; } //指定每一列的滚轮上的Cell的初始值,以:分隔 - (NSString *)valueOfCellsInScroll{ return @"2010:1:1:0:0"; } -(void)onCustomSearch:(UIButton*)button{ NSString *startTime = self.startTimeLabel.text; NSString *endTime = self.endTimeLabel.text; self.startTime = startTime; self.endTime = endTime; if(!startTime||!(startTime.length>0)){ [self.searchMaskView hide:YES]; [self.view makeToast:NSLocalizedString(@"unselected_start_time", nil)]; return; } if(!endTime||!(endTime.length>0)){ [self.searchMaskView hide:YES]; [self.view makeToast:NSLocalizedString(@"unselected_end_time", nil)]; return; } NSDate *startDate = [Utils dateFromString:startTime]; NSDate *endDate = [Utils dateFromString:endTime]; if([startDate timeIntervalSince1970]>=[endDate timeIntervalSince1970]){ [self.searchMaskView hide:YES]; [self.view makeToast:NSLocalizedString(@"start_time_must_before_end_time", nil)]; return; } self.searchMaskView.dimBackground = YES; [self.searchMaskView show:YES]; if(self.isShowCustomView){ self.isShowCustomView = !self.isShowCustomView; [UIView transitionWithView:self.customView duration:0.2 options:UIViewAnimationOptionCurveEaseOut animations:^{ self.customView.transform = CGAffineTransformMakeTranslation(0,0); } completion:^(BOOL isFinish){ } ]; } [[P2PClient sharedClient] getPlaybackFilesWithIdByDate:self.camera.cameraId password:self.camera.cameraPass startDate:startDate endDate:endDate]; } -(void)changeTimeBtnShadow:(UIButton*)button{ self.selectedTimeTag = button.tag; switch(button.tag){ case 0: { [self.startTimeBtn.layer setShadowColor:[XBlue CGColor]]; [self.endTimeBtn.layer setShadowColor:[XBGAlpha CGColor]]; } break; case 1: { [self.startTimeBtn.layer setShadowColor:[XBGAlpha CGColor]]; [self.endTimeBtn.layer setShadowColor:[XBlue CGColor]]; } break; } } -(void)onDatePickChange:(UIDatePicker*)datePick{ NSString *dateString = [Utils stringFromDate:[datePick date]]; switch(self.selectedTimeTag){ case 0: { self.startTimeLabel.text = dateString; } break; case 1: { self.endTimeLabel.text = dateString; } break; } } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return [self.playbackFiles count]; } -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ return PLAYBACK_LIST_ITEM_HEIGHT; } -(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *identifier = @"PlaybackCell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier]; if(cell==nil){ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]; } UIImage *backImg = [UIImage imageNamed:@"bg_normal_cell.png"]; UIImage *backImg_p = [UIImage imageNamed:@"bg_normal_cell_p.png"]; UIImageView *backImageView = [[UIImageView alloc] init]; UIImageView *backImageView_p = [[UIImageView alloc] init]; backImg = [backImg stretchableImageWithLeftCapWidth:backImg.size.width*0.5 topCapHeight:backImg.size.height*0.5]; backImageView.image = backImg; [cell setBackgroundView:backImageView]; backImg_p = [backImg_p stretchableImageWithLeftCapWidth:backImg_p.size.width*0.5 topCapHeight:backImg_p.size.height*0.5]; backImageView_p.image = backImg_p; [cell setSelectedBackgroundView:backImageView_p]; NSString* name = [self.playbackFiles objectAtIndex:indexPath.row]; int iSize = 0; if ([self.playbackFiles count] == [self.playbackSize count]) //查询到了文件长度 { NSNumber* number = [self.playbackSize objectAtIndex:indexPath.row]; iSize = [number intValue]; } if (iSize != 0) {//支持返回播放时长 cell.textLabel.text = [NSString stringWithFormat:@"%@ (%02d:%02d)", name, iSize/60, iSize%60]; } else { cell.textLabel.text = [NSString stringWithFormat:@"%@ (%02d:%02d)", name, iSize/60, iSize%60]; } cell.textLabel.font = CURRENT_VERSION >= 9.0 ? XFontBold_14 : XFontBold_16; return cell; } -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ [tableView deselectRowAtIndexPath:indexPath animated:YES]; [self.movieView setHidden:NO]; self.movieView.alpha = 0.3; [UIView transitionWithView:self.movieView duration:0.3 options:UIViewAnimationOptionCurveEaseOut animations:^{ self.movieView.alpha = 1.0; } completion:^(BOOL finished){ } ]; [[P2PClient sharedClient] p2pPlaybackCallWithId:self.camera.cameraId password:self.camera.cameraPass index:indexPath.row]; } -(void)updateLabelColor:(NSInteger)index{ for(UIView *view in self.searchBarView.subviews){ if([view isKindOfClass:[UIButton class]]){ UILabel *label = [view.subviews objectAtIndex:0]; if(view.tag==index){ label.textColor = XBlack; }else{ label.textColor = UIColorFromRGB(0x808080); } } } } -(void)onButtonPress:(id)sender{ UIButton *button = (UIButton*)sender; BOOL isCustom = NO; self.isChangePlaybackItem = YES;//视频回放修复 [[P2PClient sharedClient] setIsClearPlaybackFilesLength:YES];//视频回放修复 dispatch_async(dispatch_get_main_queue(), ^{ [self.searchMaskView hide:YES]; }); switch(button.tag){ case 0: { [_tfStateView setHidden:_isNeedHideSdState]; self.selectedLabel = 1; [[P2PClient sharedClient] setCurrentLabel:1]; [self updateLabelColor:0]; if (_isNeedHideSdState) { [[P2PClient sharedClient] getPlaybackFilesWithId:self.camera.cameraId password:self.camera.cameraPass timeInterval:1]; } } break; case 1: { [_tfStateView setHidden:_isNeedHideSdState]; self.selectedLabel = 2; [[P2PClient sharedClient] setCurrentLabel:2]; [self updateLabelColor:1]; if (_isNeedHideSdState) { [[P2PClient sharedClient] getPlaybackFilesWithId:self.camera.cameraId password:self.camera.cameraPass timeInterval:3]; } } break; case 2: { [_tfStateView setHidden:_isNeedHideSdState]; self.selectedLabel = 3; [[P2PClient sharedClient] setCurrentLabel:3]; // 从1970年开始 NSTimeInterval timeInterval = [[NSDate date] timeIntervalSince1970]; long long dateInterval = (long long int)timeInterval; [self updateLabelColor:2]; if (_isNeedHideSdState) { [[P2PClient sharedClient] getPlaybackFilesWithId:self.camera.cameraId password:self.camera.cameraPass timeInterval:dateInterval/(24*60*60)]; } } break; case 3: { if (_isNeedHideSdState) { [_tfStateView setHidden:YES]; isCustom = YES; } self.selectedLabel = 4; [[P2PClient sharedClient] setCurrentLabel:4]; [self updateLabelColor:3]; } break; } [UIView transitionWithView:self.layerView duration:0.2 options:UIViewAnimationOptionCurveEaseOut animations:^{ self.layerView.frame = CGRectMake(button.tag*button.frame.size.width, self.layerView.frame.origin.y, self.layerView.frame.size.width, self.layerView.frame.size.height); } completion:^(BOOL finished){ } ]; if(!isCustom){ self.searchMaskView.dimBackground = YES; [self.searchMaskView show:YES]; self.searchMaskView.alpha = 1.0; if(self.isShowCustomView){ self.isShowCustomView = !self.isShowCustomView; [UIView transitionWithView:self.customView duration:0.2 options:UIViewAnimationOptionCurveEaseOut animations:^{ self.customView.transform = CGAffineTransformMakeTranslation(0,0); } completion:^(BOOL isFinish){ } ]; } }else{ if(!self.isShowCustomView){ self.isShowCustomView = !self.isShowCustomView; [UIView transitionWithView:self.customView duration:0.2 options:UIViewAnimationOptionCurveEaseOut animations:^{ self.customView.transform = CGAffineTransformMakeTranslation(0, -self.customView.frame.size.height); } completion:^(BOOL isFinish){ } ]; } } } -(void)showTimeOutToast{ if (!_hadShowTimeOut) { _hadShowTimeOut=YES; [self.searchMaskView hide:YES]; [self.view makeToast:NSLocalizedString(@"id_timeout", nil)];// 显示 连接超时 } } /*-(void)fButtonBackBeClick:(FounderButton*)fbt { if (!self.view.userInteractionEnabled) { return; } [[P2PClient sharedClient] p2pHungUp]; [self.navigationController popViewControllerAnimated:YES]; }*/ #pragma mark - 视频回放准备播放的回调 -(void)P2PPlaybackReady:(NSDictionary *)info{ DLog(@"P2PPlaybackReady"); self.view.userInteractionEnabled = NO; dispatch_async(dispatch_get_main_queue(), ^{ [UIView transitionWithView:self.movieView duration:0.3 options:UIViewAnimationOptionCurveEaseOut animations:^{ self.movieView.alpha = 0.3; } completion:^(BOOL finished){ [self.movieView setHidden:YES]; // P2PPlayingbackController *playingbackController = [[P2PPlayingbackController alloc] init]; // [self presentViewController:playingbackController animated:YES completion:nil]; // [playingbackController release]; P2PPlayingbackVC* playingbackController=[[P2PPlayingbackVC alloc] init]; [self presentViewController:playingbackController animated:YES completion:nil]; } ]; }); } #pragma mark - 视频回放挂断的回调 -(void)P2PPlaybackReject:(NSDictionary *)info{ NSLog(@"P2PPlaybackReject"); dispatch_async(dispatch_get_main_queue(), ^{ [UIView transitionWithView:self.movieView duration:0.3 options:UIViewAnimationOptionCurveEaseOut animations:^{ self.movieView.alpha = 0.3; } completion:^(BOOL finished){ [self.movieView setHidden:YES]; [self.searchMaskView hide:YES]; [self.view makeToast:[info objectForKey:@"rejectMsg"]]; } ]; }); } #pragma mark - -(void)playbackPasswordModify:(YMsgBox*)box{ // NSLog(@"box.yMsgInputText=%@",box.yMsgInputText); if(box.yMsgButtonIndex == -1 ){ return; } if(box.yMsgButtonIndex == -2){ //隐藏键盘 系统键盘return按钮被点击 [box hideKeyBoard]; return; } if(box.yMsgButtonIndex == 0){ //取消按钮被点击 [self.navigationController popViewControllerAnimated:YES]; // if ([box.theTagString isEqualToString:@"Msg_flist_pwd_error"]){ // _msgBoxFileListHadShow=NO; // } // if ([box.theTagString isEqualToString:@"Msg_sdcard_pwd_error"]){ // _msgBoxSDCardHadShow=NO; // } // [box hideMsgBox]; //隐藏输入框 }else{ //确认按钮被点击 if(box.yMsgInputText.length<=0){ box.yMsgText=[YFonc gtTextWithString:NSLocalizedString(@"password_can_not_be_empt", nil) withColor:[UIColor redColor] withFont:[UIFont systemFontOfSize:13.0] withAlignment:NSTextAlignmentLeft]; }else if(box.yMsgInputText.length>30){ box.yMsgText=[YFonc gtTextWithString:NSLocalizedString(@"device_password_too_long", nil) withColor:[UIColor redColor] withFont:[UIFont systemFontOfSize:13.0] withAlignment:NSTextAlignmentLeft]; }else{ [box hideMsgBox]; //隐藏输入框 if ([box.theTagString isEqualToString:@"Msg_flist_pwd_error"]){ _msgBoxPwdErrorHadShow=NO; } if ([box.theTagString isEqualToString:@"Msg_sdcard_pwd_error"]){ _msgBoxPwdErrorHadShow=NO; } NSString* pwdHead = PASSWORD_HEAD; //密码长度上限为30个字符 self.camera.cameraPass = [NSString stringWithFormat:@"%@%@", pwdHead, box.yMsgInputText]; //[[FListManager sharedFList] updatee:self.camera]; //[[FListManager sharedFList] getDefenceStates]; if ([box.theTagString isEqualToString:@"Msg_flist_pwd_error"]) {//获取列表文件错误,就重发获取列表的命令 [[P2PClient sharedClient] setCurrentLabel:1]; [[P2PClient sharedClient] getPlaybackFilesWithId:self.camera.cameraId password:self.camera.cameraPass timeInterval:1]; } if ([box.theTagString isEqualToString:@"Msg_sdcard_pwd_error"]) {//sd卡密码错误,就重发获取SD卡的命令 self.isLoadingStorageInfo = YES; [[P2PClient sharedClient] getSDCardInfoWithId:self.camera.cameraId password:self.camera.cameraPass]; } } } } #pragma mark - -(BOOL)shouldAutorotate{ return YES; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interface { return (interface == UIInterfaceOrientationPortrait ); } #ifdef IOS6 - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return UIInterfaceOrientationPortrait; } - (BOOL)shouldAutorotate { return NO; } - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait; } #endif -(NSUInteger)supportedInterfaceOrientations{ return UIInterfaceOrientationMaskPortrait; } -(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{ return UIInterfaceOrientationPortrait; } @end