JLChen
2021-02-02 9100afbe1805413504840e6957097be638579045
2021-02-02  1.更新
9个文件已修改
474 ■■■■ 已修改文件
Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZDeviceTableViewController.m 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZLivePlayViewController.m 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZPlaybackViewController.m 221 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZSettingViewController.m 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK.IOS/EZSDK.IOS/Library/libEZSDK.a 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceTableViewController.m 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/UIViewControllers/EZPlaybackViewController.m 221 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/UIViewControllers/EZSettingViewController.m 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZDeviceTableViewController.m
@@ -43,9 +43,17 @@
@implementation EZDeviceTableViewController
-(void)viewWillDisappear:(BOOL)animated
{
    //    self.navigationController.navigationBarHidden = YES;//2021-02-01 添加隐藏navigationBarHidden
}
- (void)viewDidLoad
{
    [super viewDidLoad];
//    [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60)
//     forBarMetrics:UIBarMetricsDefault];
    
    // Uncomment the following line to preserve selection between presentations.
    // self.clearsSelectionOnViewWillAppear = NO;
@@ -66,6 +74,9 @@
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    self.navigationController.navigationBar.hidden = NO;//2021-02-01
    if (_needRefresh)
    {
        _needRefresh = NO;
@@ -105,12 +116,12 @@
                //            self.navigationItem.rightBarButtonItem = self.addButton;
            }];
        }else{
            [[EZGlobalSDK class] getAreaList:^(NSArray *areaList, NSError *error) {
            [EZOPENSDK getAreaList:^(NSArray *areaList, NSError *error) {
                EZAreaInfo *areaInfo = areaList.firstObject;
                [[EZGlobalSDK class] openLoginPage:[NSString stringWithFormat:@"%ld",(long)areaInfo.id]
                [EZOPENSDK openLoginPage:[NSString stringWithFormat:@"%ld",(long)areaInfo.id]
                              completion:^(EZAccessToken *accessToken) {
                    [[GlobalKit shareKit] setAccessToken:accessToken.accessToken];
                    [[EZGlobalSDK class] setAccessToken:accessToken.accessToken];
                    [EZOPENSDK setAccessToken:accessToken.accessToken];
                    [self addRefreshKit];
                    //                                            self.navigationItem.rightBarButtonItem = self.addButton;
                }];
Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZLivePlayViewController.m
@@ -223,11 +223,13 @@
- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    self.navigationController.navigationBar.hidden = NO;//2021-02-01
    self.ptzViewContraint.constant = self.bottomView.frame.size.height;
    self.talkViewContraint.constant = self.ptzViewContraint.constant;
}
- (void)viewWillDisappear:(BOOL)animated {
//    self.navigationController.navigationBarHidden = YES;//2021-02-01 添加隐藏navigationBarHidden
    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(hideQualityView) object:nil];
    //结束本地录像
    if(self.localRecordButton.selected)
Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZPlaybackViewController.m
@@ -44,8 +44,8 @@
    NSArray *sdCardRate;
    NSArray *cloudRateStr;
    NSArray *sdCardRateStr;
//    BOOL _isDoBack;
    //    BOOL _isDoBack;
}
@property (nonatomic, strong) NSIndexPath *selectedIndexPath;
@@ -102,6 +102,13 @@
    [EZOPENSDK releasePlayer:_player];
}
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    self.navigationController.navigationBar.hidden = NO;//2021-02-01
}
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
@@ -154,7 +161,7 @@
    
    [self.duringSlider setThumbImage:[UIImage imageNamed:@"slider"] forState:UIControlStateNormal];
    [self.duringSlider setThumbImage:[UIImage imageNamed:@"slider_sel"] forState:UIControlStateHighlighted];
    self.cloudButton.selected = YES;
    self.largeBackButton.hidden = YES;
    
@@ -166,7 +173,7 @@
    [self.dateButton setTitle:[dateFormatter stringFromDate:self.datePicker.date] forState:UIControlStateNormal];
    dateFormatter.dateFormat = @"MM-dd △";
    [self.dateButton setTitle:[dateFormatter stringFromDate:self.datePicker.date] forState:UIControlStateSelected];
    _isShowToolbox = YES;
    
    cloudRate = @[@(EZOPENSDK_PLAY_RATE_1),
@@ -204,14 +211,14 @@
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/
 #pragma mark - Navigation
 // In a storyboard-based application, you will often want to do a little preparation before navigation
 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
 // Get the new view controller using [segue destinationViewController].
 // Pass the selected object to the new view controller.
 }
 */
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
@@ -316,7 +323,7 @@
        
        [self invalidateTimer];
        
//        [_player stopPlayback];
        //        [_player stopPlayback];
        
        if(_isSelectedDevice)
        {
@@ -341,7 +348,7 @@
#pragma mark - ValidateCode Methods
- (void)repeatDelay{
    self.selectedCell = NO;
}
@@ -399,7 +406,7 @@
                                           verifyCode:self.verifyCode
                                             savePath:path
                                           completion:^(EZDeviceRecordDownloadTask * _Nonnull task) {
        //设置回调函数
        __weak typeof(task) weakTask = task;
        [task setDownloadCallBackWithFinshed:^(EZRecordDownloaderStatus statusCode) {
@@ -559,7 +566,7 @@
        
        NSLog(@"GetStreamFetchType:%d", [self.player getStreamFetchType]);
        
//        [self showStreamFetchType];
        //        [self showStreamFetchType];
    }
    else if (messageCode == PLAYER_PLAYBACK_STOP)
    {
@@ -578,7 +585,7 @@
}
- (void) invalidateTimer {
    if(self.playbackTimer)
    {
        [self.playbackTimer invalidate];
@@ -604,13 +611,13 @@
- (IBAction)hiddenPlayerToolbox:(id)sender
{
//    [UIView animateWithDuration:0.3
//                     animations:^{
//                         self.playerToolbox.alpha = 0.0f;
//                     }
//                     completion:^(BOOL finished) {
//                         _isShowToolbox = NO;
//                     }];
    //    [UIView animateWithDuration:0.3
    //                     animations:^{
    //                         self.playerToolbox.alpha = 0.0f;
    //                     }
    //                     completion:^(BOOL finished) {
    //                         _isShowToolbox = NO;
    //                     }];
}
#pragma mark - MJRefresh Methods
@@ -620,7 +627,7 @@
    [self.operation cancel];
    [self.playbackList.header endRefreshing];
    __weak __typeof(self) weakSelf = self;
    self.playbackList.header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        weakSelf.noVideoImageView.hidden = YES;
        weakSelf.noVideoLabel.hidden = YES;
@@ -630,34 +637,34 @@
                                                             beginTime:weakSelf.beginTime
                                                               endTime:weakSelf.endTime
                                                            completion:^(NSArray *deviceRecords, NSError *error) {
                                                                NSLog(@"deviceRecords is %@, error is %@", deviceRecords, error);
                                                                if (!error)
                                                                {
                                                                    [weakSelf.records removeAllObjects];
                                                                    if(deviceRecords.count == 0)
                                                                    {
                                                                        weakSelf.noVideoLabel.hidden = NO;
                                                                        weakSelf.noVideoImageView.hidden = NO;
                                                                        [weakSelf.playbackList reloadData];
                                                                        [weakSelf.playbackList.header endRefreshing];
                                                                        return;
                                                                    }
                                                                    if (deviceRecords.count > 0)
                                                                    {
                                                                        [weakSelf.records addObjectsFromArray:deviceRecords];
                                                                        [weakSelf.playbackList reloadData];
                                                                        [weakSelf.playbackList.header endRefreshing];
                                                                        [weakSelf doPlayback];
                                                                    }
                                                                }
                                                                else
                                                                {
                                                                    [UIView dd_showMessage:[NSString stringWithFormat:@"error code is %d",(int) error.code] onParentView:self.view];
                                                                    [weakSelf.playbackList.header endRefreshing];
                                                                    [weakSelf.records removeAllObjects];
                                                                    [weakSelf.playbackList reloadData];
                                                                }
                                                            }];
                NSLog(@"deviceRecords is %@, error is %@", deviceRecords, error);
                if (!error)
                {
                    [weakSelf.records removeAllObjects];
                    if(deviceRecords.count == 0)
                    {
                        weakSelf.noVideoLabel.hidden = NO;
                        weakSelf.noVideoImageView.hidden = NO;
                        [weakSelf.playbackList reloadData];
                        [weakSelf.playbackList.header endRefreshing];
                        return;
                    }
                    if (deviceRecords.count > 0)
                    {
                        [weakSelf.records addObjectsFromArray:deviceRecords];
                        [weakSelf.playbackList reloadData];
                        [weakSelf.playbackList.header endRefreshing];
                        [weakSelf doPlayback];
                    }
                }
                else
                {
                    [UIView dd_showMessage:[NSString stringWithFormat:@"error code is %d",(int) error.code] onParentView:self.view];
                    [weakSelf.playbackList.header endRefreshing];
                    [weakSelf.records removeAllObjects];
                    [weakSelf.playbackList reloadData];
                }
            }];
        }
        else
        {
@@ -666,36 +673,36 @@
                                                             beginTime:weakSelf.beginTime
                                                               endTime:weakSelf.endTime
                                                            completion:^(NSArray *cloudRecords, NSError *error) {
                                                                NSLog(@"cloudRecords is %@, error is %@", cloudRecords, error);
                                                                if (error)
                                                                {
                                                                    if (error.code > 0) {
                                                                        [UIView dd_showMessage:[NSString stringWithFormat:@"error code is %d",(int) error.code] onParentView:self.view];
                                                                    }
                                                                    [weakSelf.playbackList.header endRefreshing];
                                                                    [weakSelf.records removeAllObjects];
                                                                    [weakSelf.playbackList reloadData];
                                                                    return ;
                                                                }
                                                                [weakSelf.records removeAllObjects];
                                                                if(cloudRecords.count == 0)
                                                                {
                                                                    weakSelf.noVideoLabel.hidden = NO;
                                                                    weakSelf.noVideoImageView.hidden = NO;
                                                                    [weakSelf.playbackList reloadData];
                                                                    [weakSelf.playbackList.header endRefreshing];
                                                                    return;
                                                                }
                                                                if (cloudRecords.count > 0)
                                                                {
                                                                    [weakSelf.records addObjectsFromArray:cloudRecords];
                                                                    [weakSelf.playbackList reloadData];
                                                                    [weakSelf.playbackList.header endRefreshing];
                                                                    [weakSelf doPlayback];
                                                                }
                                                            }];
                NSLog(@"cloudRecords is %@, error is %@", cloudRecords, error);
                if (error)
                {
                    if (error.code > 0) {
                        [UIView dd_showMessage:[NSString stringWithFormat:@"error code is %d",(int) error.code] onParentView:self.view];
                    }
                    [weakSelf.playbackList.header endRefreshing];
                    [weakSelf.records removeAllObjects];
                    [weakSelf.playbackList reloadData];
                    return ;
                }
                [weakSelf.records removeAllObjects];
                if(cloudRecords.count == 0)
                {
                    weakSelf.noVideoLabel.hidden = NO;
                    weakSelf.noVideoImageView.hidden = NO;
                    [weakSelf.playbackList reloadData];
                    [weakSelf.playbackList.header endRefreshing];
                    return;
                }
                if (cloudRecords.count > 0)
                {
                    [weakSelf.records addObjectsFromArray:cloudRecords];
                    [weakSelf.playbackList reloadData];
                    [weakSelf.playbackList.header endRefreshing];
                    [weakSelf doPlayback];
                }
            }];
        }
    }];
    self.playbackList.header.automaticallyChangeAlpha = YES;
@@ -777,7 +784,7 @@
        [_player setPlaybackRate:rate mode:0];
    }
    else {
        EZPlaybackRate rate = [cloudRate[indexPath.row] intValue];
        [_player setPlaybackRate:rate mode:0];
    }
@@ -816,7 +823,7 @@
}
- (IBAction)clickRateBtn:(UIButton *)sender {
    self.rateBtnTimer = [NSTimer scheduledTimerWithTimeInterval:2.5f target:self selector:@selector(hideRateView) userInfo:nil repeats:NO];
    
    if(_isSelectedDevice) {
@@ -888,14 +895,14 @@
    self.selectedIndexPath = nil;
    [UIView animateWithDuration:0.3
                     animations:^{
                         self.selectedImageViewConstraint.constant = 0;
                         [self.toolView setNeedsUpdateConstraints];
                         [self.toolView layoutIfNeeded];
                     }
        self.selectedImageViewConstraint.constant = 0;
        [self.toolView setNeedsUpdateConstraints];
        [self.toolView layoutIfNeeded];
    }
                     completion:^(BOOL finished) {
                         self.cloudButton.selected = YES;
                         self.deviceButton.selected = NO;
                     }];
        self.cloudButton.selected = YES;
        self.deviceButton.selected = NO;
    }];
    _isSelectedDevice = NO;
    [self.records removeAllObjects];
    [self.playbackList reloadData];
@@ -912,14 +919,14 @@
    self.selectedIndexPath = nil;
    [UIView animateWithDuration:0.3
                     animations:^{
                         self.selectedImageViewConstraint.constant = self.view.bounds.size.width / 2.0f;
                         [self.toolView setNeedsUpdateConstraints];
                         [self.toolView layoutIfNeeded];
                     }
        self.selectedImageViewConstraint.constant = self.view.bounds.size.width / 2.0f;
        [self.toolView setNeedsUpdateConstraints];
        [self.toolView layoutIfNeeded];
    }
                     completion:^(BOOL finished) {
                         self.cloudButton.selected = NO;
                         self.deviceButton.selected = YES;
                     }];
        self.cloudButton.selected = NO;
        self.deviceButton.selected = YES;
    }];
    _isSelectedDevice = YES;
    [self.records removeAllObjects];
    [self.playbackList reloadData];
@@ -983,7 +990,7 @@
- (void)playBoxToolRefresh:(NSTimer *)timer
{
    NSDate *currentTime = [_player getOSDTime];
NSLog(@"getOSDTime === %@", currentTime);
    NSLog(@"getOSDTime === %@", currentTime);
    if(_isSelectedDevice)
    {
        _playSeconds = [currentTime timeIntervalSinceDate:_deviceRecord.startTime];
@@ -992,7 +999,7 @@
    {
        _playSeconds = [currentTime timeIntervalSinceDate:_cloudRecord.startTime];
    }
    if(_playSeconds >= 3600)
    {
        int hour = (int)_playSeconds / 3600;
@@ -1100,19 +1107,19 @@
- (void)streamPlayer:(EZStreamPlayer *)player didReceivedMessage:(EZStreamPlayerMsgType)msgType
{
    dispatch_async(dispatch_get_main_queue(), ^{
        NSString *msg;
        switch (msgType) {
            case EZStreamPlayerMsgTypeRealPlayStart:
                msg = @"开启预览成功";
                break;
             case EZStreamPlayerMsgTypeRealPlayClose:
            case EZStreamPlayerMsgTypeRealPlayClose:
                msg = @"关闭预览成功";
                break;
             case EZStreamPlayerMsgTypePlayBackStart:
            case EZStreamPlayerMsgTypePlayBackStart:
                msg = @"开启设备回放成功";
                break;
             case EZStreamPlayerMsgTypePlayBackClose:
            case EZStreamPlayerMsgTypePlayBackClose:
                msg = @"关闭设备回放成功";
                break;
            default:
@@ -1126,14 +1133,14 @@
{
    if (dataType == EZStreamDataTypeHeader) {
        dispatch_async(dispatch_get_main_queue(), ^{
            [self.navigationController.view makeToast:@"开始写入文件"];
        });
    }
    else if (dataType == EZStreamDataTypeStreamEnd)
    {
        dispatch_async(dispatch_get_main_queue(), ^{
            self.streamPlayBtn.selected = NO;
        });
        
Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZSettingViewController.m
@@ -142,6 +142,7 @@
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    self.navigationController.navigationBar.hidden = NO;//2021-02-01
    [self.tableView reloadData];
}
@@ -150,7 +151,7 @@
        [_timer invalidate];
        _timer = nil;
    }
//    self.navigationController.navigationBarHidden = YES;//2021-02-01 添加隐藏navigationBarHidden
    [super viewWillDisappear:animated];
}
EZSDK.IOS/EZSDK.IOS/Library/libEZSDK.a
Binary files differ
EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceTableViewController.m
@@ -51,9 +51,7 @@
- (void)viewDidLoad
{
    [super viewDidLoad];
    [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60)
     forBarMetrics:UIBarMetricsDefault];
    
    // Uncomment the following line to preserve selection between presentations.
    // self.clearsSelectionOnViewWillAppear = NO;
@@ -75,7 +73,7 @@
{
    [super viewWillAppear:animated];
    
    //    self.navigationController.navigationBarHidden = NO;//2021-02-01
    self.navigationController.navigationBar.hidden = NO;//2021-02-01
    
    if (_needRefresh)
    {
EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m
@@ -223,7 +223,7 @@
- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
//    self.navigationController.navigationBarHidden = NO;//2021-02-01
    self.navigationController.navigationBar.hidden = NO;//2021-02-01
    self.ptzViewContraint.constant = self.bottomView.frame.size.height;
    self.talkViewContraint.constant = self.ptzViewContraint.constant;
}
EZSDK/EZSDK/EZ/UIViewControllers/EZPlaybackViewController.m
@@ -44,8 +44,8 @@
    NSArray *sdCardRate;
    NSArray *cloudRateStr;
    NSArray *sdCardRateStr;
//    BOOL _isDoBack;
    //    BOOL _isDoBack;
}
@property (nonatomic, strong) NSIndexPath *selectedIndexPath;
@@ -102,6 +102,13 @@
    [EZOPENSDK releasePlayer:_player];
}
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    self.navigationController.navigationBar.hidden = NO;//2021-02-01
}
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
@@ -154,7 +161,7 @@
    
    [self.duringSlider setThumbImage:[UIImage imageNamed:@"slider"] forState:UIControlStateNormal];
    [self.duringSlider setThumbImage:[UIImage imageNamed:@"slider_sel"] forState:UIControlStateHighlighted];
    self.cloudButton.selected = YES;
    self.largeBackButton.hidden = YES;
    
@@ -166,7 +173,7 @@
    [self.dateButton setTitle:[dateFormatter stringFromDate:self.datePicker.date] forState:UIControlStateNormal];
    dateFormatter.dateFormat = @"MM-dd △";
    [self.dateButton setTitle:[dateFormatter stringFromDate:self.datePicker.date] forState:UIControlStateSelected];
    _isShowToolbox = YES;
    
    cloudRate = @[@(EZOPENSDK_PLAY_RATE_1),
@@ -204,14 +211,14 @@
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/
 #pragma mark - Navigation
 // In a storyboard-based application, you will often want to do a little preparation before navigation
 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
 // Get the new view controller using [segue destinationViewController].
 // Pass the selected object to the new view controller.
 }
 */
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
@@ -316,7 +323,7 @@
        
        [self invalidateTimer];
        
//        [_player stopPlayback];
        //        [_player stopPlayback];
        
        if(_isSelectedDevice)
        {
@@ -341,7 +348,7 @@
#pragma mark - ValidateCode Methods
- (void)repeatDelay{
    self.selectedCell = NO;
}
@@ -399,7 +406,7 @@
                                           verifyCode:self.verifyCode
                                             savePath:path
                                           completion:^(EZDeviceRecordDownloadTask * _Nonnull task) {
        //设置回调函数
        __weak typeof(task) weakTask = task;
        [task setDownloadCallBackWithFinshed:^(EZRecordDownloaderStatus statusCode) {
@@ -559,7 +566,7 @@
        
        NSLog(@"GetStreamFetchType:%d", [self.player getStreamFetchType]);
        
//        [self showStreamFetchType];
        //        [self showStreamFetchType];
    }
    else if (messageCode == PLAYER_PLAYBACK_STOP)
    {
@@ -578,7 +585,7 @@
}
- (void) invalidateTimer {
    if(self.playbackTimer)
    {
        [self.playbackTimer invalidate];
@@ -604,13 +611,13 @@
- (IBAction)hiddenPlayerToolbox:(id)sender
{
//    [UIView animateWithDuration:0.3
//                     animations:^{
//                         self.playerToolbox.alpha = 0.0f;
//                     }
//                     completion:^(BOOL finished) {
//                         _isShowToolbox = NO;
//                     }];
    //    [UIView animateWithDuration:0.3
    //                     animations:^{
    //                         self.playerToolbox.alpha = 0.0f;
    //                     }
    //                     completion:^(BOOL finished) {
    //                         _isShowToolbox = NO;
    //                     }];
}
#pragma mark - MJRefresh Methods
@@ -620,7 +627,7 @@
    [self.operation cancel];
    [self.playbackList.header endRefreshing];
    __weak __typeof(self) weakSelf = self;
    self.playbackList.header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        weakSelf.noVideoImageView.hidden = YES;
        weakSelf.noVideoLabel.hidden = YES;
@@ -630,34 +637,34 @@
                                                             beginTime:weakSelf.beginTime
                                                               endTime:weakSelf.endTime
                                                            completion:^(NSArray *deviceRecords, NSError *error) {
                                                                NSLog(@"deviceRecords is %@, error is %@", deviceRecords, error);
                                                                if (!error)
                                                                {
                                                                    [weakSelf.records removeAllObjects];
                                                                    if(deviceRecords.count == 0)
                                                                    {
                                                                        weakSelf.noVideoLabel.hidden = NO;
                                                                        weakSelf.noVideoImageView.hidden = NO;
                                                                        [weakSelf.playbackList reloadData];
                                                                        [weakSelf.playbackList.header endRefreshing];
                                                                        return;
                                                                    }
                                                                    if (deviceRecords.count > 0)
                                                                    {
                                                                        [weakSelf.records addObjectsFromArray:deviceRecords];
                                                                        [weakSelf.playbackList reloadData];
                                                                        [weakSelf.playbackList.header endRefreshing];
                                                                        [weakSelf doPlayback];
                                                                    }
                                                                }
                                                                else
                                                                {
                                                                    [UIView dd_showMessage:[NSString stringWithFormat:@"error code is %d",(int) error.code] onParentView:self.view];
                                                                    [weakSelf.playbackList.header endRefreshing];
                                                                    [weakSelf.records removeAllObjects];
                                                                    [weakSelf.playbackList reloadData];
                                                                }
                                                            }];
                NSLog(@"deviceRecords is %@, error is %@", deviceRecords, error);
                if (!error)
                {
                    [weakSelf.records removeAllObjects];
                    if(deviceRecords.count == 0)
                    {
                        weakSelf.noVideoLabel.hidden = NO;
                        weakSelf.noVideoImageView.hidden = NO;
                        [weakSelf.playbackList reloadData];
                        [weakSelf.playbackList.header endRefreshing];
                        return;
                    }
                    if (deviceRecords.count > 0)
                    {
                        [weakSelf.records addObjectsFromArray:deviceRecords];
                        [weakSelf.playbackList reloadData];
                        [weakSelf.playbackList.header endRefreshing];
                        [weakSelf doPlayback];
                    }
                }
                else
                {
                    [UIView dd_showMessage:[NSString stringWithFormat:@"error code is %d",(int) error.code] onParentView:self.view];
                    [weakSelf.playbackList.header endRefreshing];
                    [weakSelf.records removeAllObjects];
                    [weakSelf.playbackList reloadData];
                }
            }];
        }
        else
        {
@@ -666,36 +673,36 @@
                                                             beginTime:weakSelf.beginTime
                                                               endTime:weakSelf.endTime
                                                            completion:^(NSArray *cloudRecords, NSError *error) {
                                                                NSLog(@"cloudRecords is %@, error is %@", cloudRecords, error);
                                                                if (error)
                                                                {
                                                                    if (error.code > 0) {
                                                                        [UIView dd_showMessage:[NSString stringWithFormat:@"error code is %d",(int) error.code] onParentView:self.view];
                                                                    }
                                                                    [weakSelf.playbackList.header endRefreshing];
                                                                    [weakSelf.records removeAllObjects];
                                                                    [weakSelf.playbackList reloadData];
                                                                    return ;
                                                                }
                                                                [weakSelf.records removeAllObjects];
                                                                if(cloudRecords.count == 0)
                                                                {
                                                                    weakSelf.noVideoLabel.hidden = NO;
                                                                    weakSelf.noVideoImageView.hidden = NO;
                                                                    [weakSelf.playbackList reloadData];
                                                                    [weakSelf.playbackList.header endRefreshing];
                                                                    return;
                                                                }
                                                                if (cloudRecords.count > 0)
                                                                {
                                                                    [weakSelf.records addObjectsFromArray:cloudRecords];
                                                                    [weakSelf.playbackList reloadData];
                                                                    [weakSelf.playbackList.header endRefreshing];
                                                                    [weakSelf doPlayback];
                                                                }
                                                            }];
                NSLog(@"cloudRecords is %@, error is %@", cloudRecords, error);
                if (error)
                {
                    if (error.code > 0) {
                        [UIView dd_showMessage:[NSString stringWithFormat:@"error code is %d",(int) error.code] onParentView:self.view];
                    }
                    [weakSelf.playbackList.header endRefreshing];
                    [weakSelf.records removeAllObjects];
                    [weakSelf.playbackList reloadData];
                    return ;
                }
                [weakSelf.records removeAllObjects];
                if(cloudRecords.count == 0)
                {
                    weakSelf.noVideoLabel.hidden = NO;
                    weakSelf.noVideoImageView.hidden = NO;
                    [weakSelf.playbackList reloadData];
                    [weakSelf.playbackList.header endRefreshing];
                    return;
                }
                if (cloudRecords.count > 0)
                {
                    [weakSelf.records addObjectsFromArray:cloudRecords];
                    [weakSelf.playbackList reloadData];
                    [weakSelf.playbackList.header endRefreshing];
                    [weakSelf doPlayback];
                }
            }];
        }
    }];
    self.playbackList.header.automaticallyChangeAlpha = YES;
@@ -777,7 +784,7 @@
        [_player setPlaybackRate:rate mode:0];
    }
    else {
        EZPlaybackRate rate = [cloudRate[indexPath.row] intValue];
        [_player setPlaybackRate:rate mode:0];
    }
@@ -816,7 +823,7 @@
}
- (IBAction)clickRateBtn:(UIButton *)sender {
    self.rateBtnTimer = [NSTimer scheduledTimerWithTimeInterval:2.5f target:self selector:@selector(hideRateView) userInfo:nil repeats:NO];
    
    if(_isSelectedDevice) {
@@ -888,14 +895,14 @@
    self.selectedIndexPath = nil;
    [UIView animateWithDuration:0.3
                     animations:^{
                         self.selectedImageViewConstraint.constant = 0;
                         [self.toolView setNeedsUpdateConstraints];
                         [self.toolView layoutIfNeeded];
                     }
        self.selectedImageViewConstraint.constant = 0;
        [self.toolView setNeedsUpdateConstraints];
        [self.toolView layoutIfNeeded];
    }
                     completion:^(BOOL finished) {
                         self.cloudButton.selected = YES;
                         self.deviceButton.selected = NO;
                     }];
        self.cloudButton.selected = YES;
        self.deviceButton.selected = NO;
    }];
    _isSelectedDevice = NO;
    [self.records removeAllObjects];
    [self.playbackList reloadData];
@@ -912,14 +919,14 @@
    self.selectedIndexPath = nil;
    [UIView animateWithDuration:0.3
                     animations:^{
                         self.selectedImageViewConstraint.constant = self.view.bounds.size.width / 2.0f;
                         [self.toolView setNeedsUpdateConstraints];
                         [self.toolView layoutIfNeeded];
                     }
        self.selectedImageViewConstraint.constant = self.view.bounds.size.width / 2.0f;
        [self.toolView setNeedsUpdateConstraints];
        [self.toolView layoutIfNeeded];
    }
                     completion:^(BOOL finished) {
                         self.cloudButton.selected = NO;
                         self.deviceButton.selected = YES;
                     }];
        self.cloudButton.selected = NO;
        self.deviceButton.selected = YES;
    }];
    _isSelectedDevice = YES;
    [self.records removeAllObjects];
    [self.playbackList reloadData];
@@ -983,7 +990,7 @@
- (void)playBoxToolRefresh:(NSTimer *)timer
{
    NSDate *currentTime = [_player getOSDTime];
NSLog(@"getOSDTime === %@", currentTime);
    NSLog(@"getOSDTime === %@", currentTime);
    if(_isSelectedDevice)
    {
        _playSeconds = [currentTime timeIntervalSinceDate:_deviceRecord.startTime];
@@ -992,7 +999,7 @@
    {
        _playSeconds = [currentTime timeIntervalSinceDate:_cloudRecord.startTime];
    }
    if(_playSeconds >= 3600)
    {
        int hour = (int)_playSeconds / 3600;
@@ -1100,19 +1107,19 @@
- (void)streamPlayer:(EZStreamPlayer *)player didReceivedMessage:(EZStreamPlayerMsgType)msgType
{
    dispatch_async(dispatch_get_main_queue(), ^{
        NSString *msg;
        switch (msgType) {
            case EZStreamPlayerMsgTypeRealPlayStart:
                msg = @"开启预览成功";
                break;
             case EZStreamPlayerMsgTypeRealPlayClose:
            case EZStreamPlayerMsgTypeRealPlayClose:
                msg = @"关闭预览成功";
                break;
             case EZStreamPlayerMsgTypePlayBackStart:
            case EZStreamPlayerMsgTypePlayBackStart:
                msg = @"开启设备回放成功";
                break;
             case EZStreamPlayerMsgTypePlayBackClose:
            case EZStreamPlayerMsgTypePlayBackClose:
                msg = @"关闭设备回放成功";
                break;
            default:
@@ -1126,14 +1133,14 @@
{
    if (dataType == EZStreamDataTypeHeader) {
        dispatch_async(dispatch_get_main_queue(), ^{
            [self.navigationController.view makeToast:@"开始写入文件"];
        });
    }
    else if (dataType == EZStreamDataTypeStreamEnd)
    {
        dispatch_async(dispatch_get_main_queue(), ^{
            self.streamPlayBtn.selected = NO;
        });
        
EZSDK/EZSDK/EZ/UIViewControllers/EZSettingViewController.m
@@ -142,7 +142,7 @@
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
//    self.navigationController.navigationBarHidden = NO;//2021-02-01
    self.navigationController.navigationBar.hidden = NO;//2021-02-01
    [self.tableView reloadData];
}