// // videoPlayByAVPlayerViewController.m // 双子星云手机 // // Created by xd h on 2024/5/22. // #import "videoPlayByAVPlayerViewController.h" #import "ZFCustomControlView.h" #import #import #import #import #import #import "UIImageView+ZFCache.h" #import "ZFUtilities.h" @interface videoPlayByAVPlayerViewController () @property (nonatomic, strong) ZFPlayerController *player; @property (nonatomic, strong) ZFAVPlayerManager *playerManager; @property (nonatomic, strong) UIImageView *containerView; @property (nonatomic, strong) ZFCustomControlView *controlView; @end @implementation videoPlayByAVPlayerViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. [self.toolBar setHidden:YES]; [self.navigationBar setHidden:YES]; [self.navBarBGView setHidden:NO]; //self.navBarBGView.backgroundColor = [UIColor whiteColor]; [self.view setBackgroundColor:[UIColor whiteColor]]; [self.view addSubview:self.containerView]; [self.containerView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(0); make.right.mas_equalTo(0); make.bottom.mas_equalTo(0); make.top.mas_equalTo(self.navBarBGView.mas_bottom); }]; self.playerManager = [[ZFAVPlayerManager alloc] init]; /// 播放器相关 self.player = [ZFPlayerController playerWithPlayerManager:self.playerManager containerView:self.containerView]; self.player.controlView = self.controlView; /// 设置退到后台继续播放 self.player.pauseWhenAppResignActive = NO; @zf_weakify(self) /// 播放完成 self.player.playerDidToEnd = ^(id _Nonnull asset) { @zf_strongify(self) //[self.player.currentPlayerManager replay]; [self.player playTheNext]; if (!self.player.isLastAssetURL) { // NSString *title = [NSString stringWithFormat:@"视频标题%zd",self.player.currentPlayIndex]; // [self.controlView showTitle:title coverURLString:nil fullScreenMode:ZFFullScreenModeLandscape]; } else { [self.player stop]; } }; self.player.playerPlayFailed = ^(id _Nonnull asset, id _Nonnull error) { HLog(@"%@----%@",asset,error); }; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; self.player.viewControllerDisappear = NO; //http://transfertest.armclouding.com:10006/getFile?path=/storage/C47D-46D2/3907638929_%E6%98%8E%E9%81%93.MP4 //http://transfertest.armclouding.com:10006/getFile?path=/storage/C47D-46D2/mp4/loginVideo.mp4 if(!self.playerManager.assetURL){ NSString *filePath = _VideoDataMode.path; NSString *urlStr = ksharedAppDelegate.NASFileService; NSString *fileUrl = [[NSString alloc] initWithFormat:@"%@getFile?path=%@",urlStr,filePath]; NSString *showUrl = [[NSString alloc] initWithFormat:@"%@getThumbnail?path=%@",urlStr,filePath]; //HLog(@"%@",fileUrl); //fileUrl = @"http://transfertest.armclouding.com:10010/getFile?path=/sdcard/bb.mp4"; //fileUrl = @"http://m10.music.126.net/20240527160012/d3f165dc686ac01afd4497400b2c2c58/ymusic/5353/0f0f/0358/d99739615f8e5153d77042092f07fd77.mp3"; fileUrl = [fileUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL * sourceMovieURL= [NSURL URLWithString:fileUrl]; self.playerManager.assetURL = sourceMovieURL; self.titleLabel.text = _VideoDataMode.name; [self.controlView showTitle:@"" coverURLString:showUrl fullScreenMode:ZFFullScreenModeAutomatic]; } } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; self.player.viewControllerDisappear = YES; } - (void)viewWillLayoutSubviews { [super viewWillLayoutSubviews]; CGFloat x = 0; CGFloat y = CGRectGetMaxY(self.navigationController.navigationBar.frame); CGFloat w = CGRectGetWidth(self.view.frame); CGFloat h = w*9/16; self.containerView.frame = CGRectMake(x, y, w, h); } - (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleDefault; } - (BOOL)prefersStatusBarHidden { return NO; } - (BOOL)shouldAutorotate { return NO; } - (UIInterfaceOrientationMask)supportedInterfaceOrientations { if (self.player.isFullScreen) { return UIInterfaceOrientationMaskLandscape; } return UIInterfaceOrientationMaskPortrait; } - (ZFCustomControlView *)controlView { if (!_controlView) { _controlView = [ZFCustomControlView new]; } return _controlView; } - (UIImageView *)containerView { if (!_containerView) { _containerView = [UIImageView new]; [_containerView setImageWithURLString:nil placeholder:[ZFUtilities imageWithColor:[UIColor colorWithRed:220/255.0 green:220/255.0 blue:220/255.0 alpha:1] size:CGSizeMake(1, 1)]]; } return _containerView; } @end