| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- //
- // YBGoodPlayerCtrView.m
- // YBVideo
- //
- // Created by YB007 on 2022/6/24.
- // Copyright © 2022 cat. All rights reserved.
- //
- #import "YBGoodPlayerCtrView.h"
- #import <ZFPlayer/UIView+ZFFrame.h>
- #import <ZFPlayer/UIImageView+ZFCache.h>
- #import <ZFPlayer/ZFUtilities.h>
- #import "ZFLoadingView.h"
- @interface YBGoodPlayerCtrView()
- /// 加载loading
- @property (nonatomic, strong) ZFLoadingView *activity;
- @property (nonatomic, strong) UIButton *playBtn;
- @end
- @implementation YBGoodPlayerCtrView
- @synthesize player = _player;
- - (instancetype)init {
- self = [super init];
- if (self) {
- [self addSubview:self.activity];
- [self addSubview:self.playBtn];
- }
- return self;
- }
- - (void)layoutSubviews {
- [super layoutSubviews];
- CGFloat min_x = 0;
- CGFloat min_y = 0;
- CGFloat min_w = 0;
- CGFloat min_h = 0;
-
- min_w = 44;
- min_h = 44;
-
- self.playBtn.frame = CGRectMake(min_x, min_y, min_w, min_h);
- self.playBtn.center = self.center;
-
- self.activity.frame = CGRectMake(min_x, min_y, min_w, min_h);
- self.activity.zf_centerX = self.zf_centerX;
- self.activity.zf_centerY = self.zf_centerY;
- }
- /// 播放状态改变
- - (void)videoPlayer:(ZFPlayerController *)videoPlayer playStateChanged:(ZFPlayerPlaybackState)state {
- if (state == ZFPlayerPlayStatePlaying) {
- /// 开始播放时候判断是否显示loading
- if (videoPlayer.currentPlayerManager.loadState == ZFPlayerLoadStateStalled) {
- [self.activity startAnimating];
- } else if ((videoPlayer.currentPlayerManager.loadState == ZFPlayerLoadStateStalled || videoPlayer.currentPlayerManager.loadState == ZFPlayerLoadStatePrepare)) {
- [self.activity startAnimating];
- }
- } else if (state == ZFPlayerPlayStatePaused) {
- /// 暂停的时候隐藏loading
- [self.activity stopAnimating];
- } else if (state == ZFPlayerPlayStatePlayFailed) {
- [self.activity stopAnimating];
- }
- }
- /// 加载状态改变
- - (void)videoPlayer:(ZFPlayerController *)videoPlayer loadStateChanged:(ZFPlayerLoadState)state {
- if (state == ZFPlayerLoadStateStalled && videoPlayer.currentPlayerManager.isPlaying) {
- [self.activity startAnimating];
- } else if ((state == ZFPlayerLoadStateStalled || state == ZFPlayerLoadStatePrepare) && videoPlayer.currentPlayerManager.isPlaying) {
- [self.activity startAnimating];
- } else {
- [self.activity stopAnimating];
- }
- }
- - (void)gestureSingleTapped:(ZFPlayerGestureControl *)gestureControl {
- if (self.player.currentPlayerManager.isPlaying) {
- [self.player.currentPlayerManager pause];
- self.playBtn.hidden = NO;
- } else {
- [self.player.currentPlayerManager play];
- self.playBtn.hidden = YES;
- }
- if (self.ctrEvent) {
- self.ctrEvent();
- }
- }
- -(void)ctrVideoPlay:(BOOL)isPlay; {
- if (isPlay) {
- [self.player.currentPlayerManager play];
- self.playBtn.hidden = YES;
- }else{
- [self.player.currentPlayerManager pause];
- self.playBtn.hidden = NO;
- }
- }
- /// 手势筛选,返回NO不响应该手势
- - (BOOL)gestureTriggerCondition:(ZFPlayerGestureControl *)gestureControl gestureType:(ZFPlayerGestureType)gestureType gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer touch:(nonnull UITouch *)touch {
- if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) {
- if (gestureRecognizer == gestureControl.singleTap && !self.player.isFullScreen) {
- return YES;
- }
- return NO;
- }
- return YES;
- }
- - (void)setPlayer:(ZFPlayerController *)player {
- _player = player;
- }
- - (void)showCoverViewWithUrl:(NSString *)coverUrl {
- //[self.player.currentPlayerManager.view.coverImageView setImageWithURLString:coverUrl placeholder:[UIImage imageNamed:@"img_video_loading"]];
- }
- #pragma mark - getter
- - (ZFLoadingView *)activity {
- if (!_activity) {
- _activity = [[ZFLoadingView alloc] init];
- _activity.hidesWhenStopped = YES;
- _activity.animType = ZFLoadingTypeFadeOut;
- }
- return _activity;
- }
- - (UIButton *)playBtn {
- if (!_playBtn) {
- _playBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- _playBtn.userInteractionEnabled = NO;
- [_playBtn setImage:[UIImage imageNamed:@"icon_play_pause"] forState:UIControlStateNormal];
- _playBtn.hidden = YES;
- }
- return _playBtn;
- }
- @end
|