YOUPAIZFDouYinControlView.m 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. //
  2. // YOUPAIZFDouYinControlView.m
  3. // ZFPlayer_Example
  4. //
  5. // Created by 任子丰 on 2018/6/4.
  6. // Copyright © 2018年 紫枫. All rights reserved.
  7. //
  8. #import "YOUPAIZFDouYinControlView.h"
  9. #import "ZFSliderView.h"
  10. #import "ZFLoadingView.h"
  11. #import "ZFUtilities.h"
  12. #import "UIImageView+ZFCache.h"
  13. #import "UIView+ZFFrame.h"
  14. @interface YOUPAIZFDouYinControlView ()
  15. /// 封面图
  16. //@property (nonatomic, strong) UIImageView *coverImageView;
  17. @property (nonatomic, strong) UIButton *playBtn;
  18. @property (nonatomic, strong) ZFSliderView *sliderView;
  19. //@property (nonatomic, strong) UIImageView *bgImgView;
  20. //@property (nonatomic, strong) UIView *effectView;
  21. @end
  22. @implementation YOUPAIZFDouYinControlView
  23. @synthesize player = _player;
  24. - (instancetype)init {
  25. self = [super init];
  26. if (self) {
  27. [self addSubview:self.playBtn];
  28. [self addSubview:self.sliderView];
  29. [self youpaifresetControlView];
  30. }
  31. return self;
  32. }
  33. - (void)layoutSubviews {
  34. [super layoutSubviews];
  35. // self.coverImageView.frame = self.player.currentPlayerManager.view.bounds;
  36. CGFloat min_x = 0;
  37. CGFloat min_y = 0;
  38. CGFloat min_w = 0;
  39. CGFloat min_h = 0;
  40. CGFloat min_view_w = self.zf_width;
  41. CGFloat min_view_h = self.zf_height;
  42. min_w = 50;
  43. min_h = 50;
  44. self.playBtn.frame = CGRectMake(min_x, min_y, min_w, min_h);
  45. self.playBtn.center = self.center;
  46. min_x = 0;
  47. // min_y = min_view_h - 80;
  48. min_y = min_view_h-1;
  49. min_w = min_view_w;
  50. min_h = 1;
  51. self.sliderView.frame = CGRectMake(min_x, min_y, min_w, min_h);
  52. // self.bgImgView.frame = self.bounds;
  53. // self.effectView.frame = self.bgImgView.bounds;
  54. }
  55. - (void)youpaifresetControlView {
  56. self.playBtn.hidden = YES;
  57. self.sliderView.value = 0;
  58. self.sliderView.bufferValue = 0;
  59. // self.coverImageView.contentMode = UIViewContentModeScaleAspectFit;
  60. }
  61. /// 加载状态改变
  62. - (void)videoPlayer:(ZFPlayerController *)videoPlayer loadStateChanged:(ZFPlayerLoadState)state {
  63. // if (state == ZFPlayerLoadStatePrepare) {
  64. // self.coverImageView.hidden = NO;
  65. // } else if (state == ZFPlayerLoadStatePlaythroughOK || state == ZFPlayerLoadStatePlayable) {
  66. // self.coverImageView.hidden = YES;
  67. // self.effectView.hidden = NO;
  68. // }
  69. if ((state == ZFPlayerLoadStateStalled || state == ZFPlayerLoadStatePrepare) && videoPlayer.currentPlayerManager.isPlaying) {
  70. [self.sliderView startAnimating];
  71. } else {
  72. [self.sliderView stopAnimating];
  73. }
  74. }
  75. /// 播放进度改变回调
  76. - (void)videoPlayer:(ZFPlayerController *)videoPlayer currentTime:(NSTimeInterval)currentTime totalTime:(NSTimeInterval)totalTime {
  77. self.sliderView.value = videoPlayer.progress;
  78. }
  79. - (void)gestureSingleTapped:(ZFPlayerGestureControl *)gestureControl {
  80. if (self.player.currentPlayerManager.isPlaying) {
  81. [self.player.currentPlayerManager pause];
  82. self.playBtn.hidden = NO;
  83. self.playBtn.transform = CGAffineTransformMakeScale(1.5f, 1.5f);
  84. [UIView animateWithDuration:0.2f delay:0
  85. options:UIViewAnimationOptionCurveEaseIn animations:^{
  86. self.playBtn.transform = CGAffineTransformIdentity;
  87. } completion:^(BOOL finished) {
  88. }];
  89. } else {
  90. [self.player.currentPlayerManager play];
  91. self.playBtn.hidden = YES;
  92. }
  93. }
  94. - (void)setPlayer:(ZFPlayerController *)player {
  95. _player = player;
  96. // [player.currentPlayerManager.view insertSubview:self.bgImgView atIndex:0];
  97. // [self.bgImgView addSubview:self.effectView];
  98. // [player.currentPlayerManager.view insertSubview:self.coverImageView atIndex:1];
  99. }
  100. - (void)showCoverViewWithUrl:(NSString *)coverUrl withImageMode:(UIViewContentMode)contentMode {
  101. // self.coverImageView.contentMode = contentMode;
  102. //
  103. // [self.coverImageView setImageWithURLString:@"https://asset.tannicp.cn/uploads/album/202006/24/5582b7edbd52a78bdcd3e4e2538ce13c_.pic.jpg" placeholder:[UIImage imageNamed:@"img_video_loading"]];
  104. //
  105. // [self.bgImgView setImageWithURLString:@"https://asset.tannicp.cn/uploads/album/202006/24/5582b7edbd52a78bdcd3e4e2538ce13c_.pic.jpg" placeholder:[UIImage imageNamed:@"img_video_loading"]];
  106. }
  107. #pragma mark - getter
  108. //- (UIImageView *)bgImgView {
  109. // if (!_bgImgView) {
  110. // _bgImgView = [[UIImageView alloc] init];
  111. // _bgImgView.userInteractionEnabled = YES;
  112. // }
  113. // return _bgImgView;
  114. //}
  115. //- (UIView *)effectView {
  116. // if (!_effectView) {
  117. // if (@available(iOS 8.0, *)) {
  118. // UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
  119. // _effectView = [[UIVisualEffectView alloc] initWithEffect:effect];
  120. // } else {
  121. // UIToolbar *effectView = [[UIToolbar alloc] init];
  122. // effectView.barStyle = UIBarStyleBlackTranslucent;
  123. // _effectView = effectView;
  124. // }
  125. // }
  126. // return _effectView;
  127. //}
  128. - (UIButton *)playBtn {
  129. if (!_playBtn) {
  130. _playBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  131. _playBtn.userInteractionEnabled = NO;
  132. [_playBtn setImage:[UIImage imageNamed:@"vqu_images_D_video_play"] forState:UIControlStateNormal];
  133. }
  134. return _playBtn;
  135. }
  136. - (ZFSliderView *)sliderView {
  137. if (!_sliderView) {
  138. _sliderView = [[ZFSliderView alloc] init];
  139. _sliderView.maximumTrackTintColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:0.2];
  140. _sliderView.minimumTrackTintColor = [UIColor redColor];//滑杆进度颜色
  141. _sliderView.bufferTrackTintColor = [UIColor clearColor];
  142. _sliderView.sliderHeight = 1;
  143. _sliderView.isHideSliderBlock = NO;
  144. }
  145. return _sliderView;
  146. }
  147. -(void)setHideenProgess:(BOOL)hideenProgess{
  148. _hideenProgess = hideenProgess;
  149. self.sliderView.hidden =hideenProgess;
  150. self.volumeBtn.hidden = NO;
  151. }
  152. //- (UIImageView *)coverImageView {
  153. // if (!_coverImageView) {
  154. // _coverImageView = [[UIImageView alloc] init];
  155. // _coverImageView.userInteractionEnabled = YES;
  156. // _coverImageView.clipsToBounds = YES;
  157. // }
  158. // return _coverImageView;
  159. //}
  160. @end