JLChen
2021-05-18 a869383e163a18cdedcf587383c1eca043129754
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
//
//  Copyright © 2020 dahua. All rights reserved.
//
 
#import "LCVideotapePlayProcessView.h"
#import "LCUIKit.h"
#import "LCToolKit.h"
 
@interface LCVideotapePlayProcessView ()
 
@property (strong,nonatomic)UISlider * silder;
 
@property (strong,nonatomic)UILabel * startLab;
 
@property (strong,nonatomic)UILabel * endLab;
 
@property (strong,nonatomic)NSDate * endDate;
 
@property (strong,nonatomic)NSDate * startDate;
 
@end
 
@implementation LCVideotapePlayProcessView
 
//MARK: - Public Methods
 
//设定开始结束时间
-(void)setStartDate:(NSDate *)startDate EndDate:(NSDate *)endDate{
    self.endDate = endDate;
    self.startDate = startDate;
    self.startLab.text = [self.startDate stringWithFormat:@"HH:mm:ss"];
    self.endLab.text = [self.endDate stringWithFormat:@"HH:mm:ss"];
    NSTimeInterval during = [self.endDate timeIntervalSinceDate:self.startDate];
    self.silder.maximumValue = during;//将最大值设置为差值
}
 
-(void)configFullScreenUI{
     self.backgroundColor = [UIColor dhcolor_c00];
    [self.startLab setHidden:YES];
    [self.endLab setHidden:YES];
    [self.silder mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.right.mas_equalTo(self);
        make.centerY.mas_equalTo(self);
    }];
}
-(void)configPortraitScreenUI{
   self.backgroundColor = [UIColor dhcolor_c50];
    [self.startLab mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.left.bottom.mas_equalTo(self);
        make.width.mas_equalTo(45);
    }];
    
    [self.endLab mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.right.bottom.mas_equalTo(self);
        make.width.mas_equalTo(45);
    }];
    
    [self.silder mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.mas_equalTo(self.startLab.mas_right).offset(5);
        make.right.mas_equalTo(self.endLab.mas_left).offset(-5);
        make.centerY.mas_equalTo(self);
    }];
}
 
-(instancetype)initWithFrame:(CGRect)frame{
    if (self = [super initWithFrame:frame]) {
        [self setupView];
        self.canRefreshSlider = YES;
    }
    return self;
}
 
-(void)setupView{
    self.startLab = [UILabel new];
    [self addSubview:self.startLab];
    self.startLab.textAlignment = NSTextAlignmentCenter;
    self.startLab.textColor = [UIColor dhcolor_c43];
    self.startLab.adjustsFontSizeToFitWidth = YES;
    
    self.endLab = [UILabel new];
    self.endLab.textAlignment = NSTextAlignmentCenter;
    self.endLab.textColor = [UIColor dhcolor_c43];
    [self addSubview:self.endLab];
    self.endLab.adjustsFontSizeToFitWidth = YES;
    
    self.silder = [UISlider new];
    [self.silder addTarget:self action:@selector(sliderChangeValue:) forControlEvents:UIControlEventValueChanged];
    [self.silder addTarget:self action:@selector(sliderEndChangeValue:) forControlEvents:UIControlEventTouchUpOutside];
    [self.silder addTarget:self action:@selector(sliderEndChangeValue:) forControlEvents:UIControlEventTouchUpInside];
    [self.silder addTarget:self action:@selector(sliderEndChangeValue:) forControlEvents:UIControlEventTouchCancel];
    [self.silder setThumbImage:LC_IMAGENAMED(@"common_icon_slider_thumb") forState:UIControlStateNormal];
    self.silder.minimumValue = 0;
    [self addSubview:self.silder];
//    self.silder.continuous = NO;
    [self.silder setMinimumTrackTintColor:[UIColor dhcolor_c43]];
    
}
-(void)sliderChangeValue:(UISlider *)slider{
    self.canRefreshSlider = NO;
    self.startLab.text = [[self.startDate dateByAddingSeconds:(NSInteger)slider.value] stringWithFormat:@"HH:mm:ss"];
    if (self.valueChangeBlock) {
        self.valueChangeBlock(self.silder.value, [self.startDate dateByAddingSeconds:self.silder.value]);
    }
}
 
-(void)sliderEndChangeValue:(UISlider *)slider{
    //结束拖动调用
    NSTimeInterval offest = [self.endDate timeIntervalSinceDate:self.startDate];
    if (self.silder.value == offest) {//如果拖到末尾,减3秒播放
        [self.silder setValue:(offest-3)];
    }
    if (self.valueChangeEndBlock) {
        self.valueChangeEndBlock(self.silder.value, [self.startDate dateByAddingSeconds:self.silder.value]);
    }
    self.canRefreshSlider = YES;
}
 
-(void)setCurrentDate:(NSDate *)currentDate{
    _currentDate = currentDate;
    //如果当前不在滑动中
    if (self.canRefreshSlider) {
        //获取当前解码时间相对于开始时间的偏移量
        NSTimeInterval offest = [currentDate timeIntervalSinceDate:self.startDate];
        NSLog(@"异常跳针OFF:%f",offest);
        self.startLab.text = [currentDate stringWithFormat:@"HH:mm:ss"];
        [self.silder setValue:offest];
    }
    
}
 
 
@end