| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 | ////  GoodsVideoCollectionViewCell.m//  westkissMob////  Created by 王猛 on 2022/9/15.//#import "GoodsVideoCollectionViewCell.h"@interface GoodsVideoCollectionViewCell ()@property (nonatomic, assign) BOOL isFirst;@end@implementation GoodsVideoCollectionViewCell- (instancetype)initWithFrame:(CGRect)frame{    self = [super initWithFrame:frame];    if (self) {        self.isFirst = YES;        [self xxx_loadIntView];                   }    return self;}-(void)xxx_loadIntView{//@"http://www.w3school.com.cn/example/html5/mov_bbb.mp4"    [self.contentView addSubview:self.forPlayView];    self.forPlayView.frame = self.bounds;    }- (UIView *)forPlayView {    if(_forPlayView == nil) {        _forPlayView = [[UIView alloc]initWithFrame:self.bounds];        _forPlayView.hidden = YES;        UIButton *voiceBtn = [UIButton buttonWithType:UIButtonTypeCustom];        [voiceBtn setImage:[UIImage imageNamed:@"goods_voice_open"] forState:UIControlStateNormal];        [voiceBtn setImage:[UIImage imageNamed:@"goods_voice_close"] forState:UIControlStateSelected];        [voiceBtn addTarget:self action:@selector(handleVoiceBtnEvent:) forControlEvents:UIControlEventTouchUpInside];        [_forPlayView addSubview:voiceBtn];        voiceBtn.frame = CGRectMake(self.mj_h-60, self.mj_w-60, 44, 44);    }    return _forPlayView;}-(void)handleVoiceBtnEvent:(UIButton *)btn{    btn.selected = !btn.selected;    if (self.player.isMuted) {        self.player.muted = NO;    }else{        self.player.muted = YES;    }}#pragma mark - 网络视频模块- (ZFAVPlayerManager *)playerManager {    if(_playerManager == nil) {        _playerManager = [[ZFAVPlayerManager alloc] init];    }    return _playerManager;}- (ZFPlayerController *)player {    if(_player == nil) {        _player = [[ZFPlayerController alloc] initWithPlayerManager:self.playerManager containerView:self.forPlayView];        _player.controlView = self.controlView;        _player.playerDisapperaPercent = 1.0f;                __weak typeof(self) weakSelf = self;        _player.playerDidToEnd = ^(id<ZFPlayerMediaPlayback> asset) { //结束播放//            [weakSelf.player stop];        };        [_player setPlayerPlayStateChanged:^(id<ZFPlayerMediaPlayback> asset, ZFPlayerPlaybackState playState) {            if(playState == ZFPlayerPlayStatePlayStopped) {//                NSLog(@"播放暂停");            }        }];        [_player setPlayerPlayTimeChanged:^(id<ZFPlayerMediaPlayback> asset, NSTimeInterval currentTime, NSTimeInterval duration) {//            NSLog(@"播放改变currentTime - %f duration - %f", currentTime, duration);        }];    }    return _player;}-(ZFPlayerControlView *)controlView {   if (_controlView == nil) {       _controlView = [[ZFPlayerControlView alloc]init];       _controlView.fastViewAnimated = YES;       _controlView.autoHiddenTimeInterval = 5;       _controlView.autoFadeTimeInterval = 0.5;       _controlView.prepareShowLoading = YES;       _controlView.prepareShowControlView = NO;       [_controlView.portraitControlView.fullScreenBtn setImage:[UIImage imageNamed:@"goods_voice_open"] forState:UIControlStateNormal];       [_controlView.portraitControlView.fullScreenBtn setImage:[UIImage imageNamed:@"goods_voice_close"] forState:UIControlStateSelected];       [_controlView.portraitControlView.fullScreenBtn addTarget:self action:@selector(handleVoiceBtnEvent:) forControlEvents:UIControlEventTouchUpInside];          }   return _controlView;}- (void)playerDealloc {   //网络视频   if(_playerManager) {       _playerManager = nil;   }   if(_player) {       _player.viewControllerDisappear = YES;       [_player stop];       _player = nil;   }}-(void)setModel:(GoodsBannerModel *)model{    NSString *videoUrl = model.url;    self.forPlayView.hidden = NO;    if (self.isFirst) {        self.isFirst = NO;        [self.player.currentPlayerManager setAssetURL:[NSURL URLWithString:videoUrl]];        @weakify(self)        self.player.playerReadyToPlay = ^(id<ZFPlayerMediaPlayback>  _Nonnull asset, NSURL * _Nonnull assetURL) {            @strongify(self)            self.controlView.portraitControlView.fullScreenBtn.selected = YES;            self.player.muted = NO;        };    }}@end
 |