//
|
// 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
|