JXXinRenLookDetialVc.m 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. //
  2. // JXXinRenLookDetialVc.m
  3. // shiku_im
  4. //
  5. // Created by 123 on 2020/5/29.
  6. // Copyright © 2020 Reese. All rights reserved.
  7. //
  8. #import "JXXinRenLookDetialVc.h"
  9. #import <AVFoundation/AVFoundation.h>
  10. #import <AVKit/AVKit.h>
  11. @interface JXXinRenLookDetialVc ()
  12. @property (nonatomic,strong) AVPlayerViewController *AVPlayer;
  13. @property (nonatomic,weak) AVPlayerLayer *layer;
  14. @property (nonatomic,weak) UIButton *backBtn ;
  15. @end
  16. @implementation JXXinRenLookDetialVc
  17. - (void)click:(UIButton *)brn{
  18. [g_navigation dismissViewController:self animated:YES];
  19. }
  20. - (void)defineNavBaraaaa:(NSString *)title andRinghtBtnImg:(NSString *)image
  21. {
  22. UIView *navView = [[UIView alloc] init];
  23. [self.view addSubview:navView];
  24. navView.frame = CGRectMake(0, 0, JX_SCREEN_WIDTH,JX_SCREEN_TOP);
  25. UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  26. backBtn.frame = CGRectMake(0,JX_SCREEN_HEIGHT>812?44:20,44, 44);
  27. [backBtn setImage:[UIImage imageNamed:@"photo_title_back_black"] forState:0];
  28. backBtn.tag = 1001;
  29. [backBtn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
  30. [navView addSubview:backBtn];
  31. UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(80,(JX_SCREEN_HEIGHT>812?44:20), JX_SCREEN_WIDTH-160, 44)];
  32. label.text = title;
  33. label.textColor = kRGBColor51;
  34. navView.backgroundColor = [UIColor whiteColor];
  35. label.font = [UIFont systemFontOfSize:18 weight:UIFontWeightRegular];
  36. label.textAlignment = NSTextAlignmentCenter;
  37. [navView addSubview:label];
  38. UIButton *backBtnaaa = [[UIButton alloc]initWithFrame:CGRectMake(JX_SCREEN_WIDTH-60, JX_STATUSBAR_H, 44, 44)];
  39. [backBtnaaa setTitle:@"x" forState:UIControlStateNormal];
  40. [backBtnaaa setTitleColor:kRGBColor51 forState:UIControlStateNormal];
  41. //backBtnaaa.backgroundColor=[UIColor colorWithWhite:0.0 alpha:0.3];
  42. //backBtnaaa.layer.cornerRadius=22;
  43. //backBtnaaa.layer.masksToBounds=YES;
  44. [backBtnaaa addTarget:self action:@selector(addtBtnClick) forControlEvents:UIControlEventTouchUpInside];
  45. [navView addSubview:backBtnaaa];
  46. }
  47. - (id)init
  48. {
  49. self = [super init];
  50. if (self) {
  51. [self defineNavBaraaaa:@"新人必看" andRinghtBtnImg:@""];
  52. }
  53. return self;
  54. }
  55. - (void)viewDidLoad {
  56. [super viewDidLoad];
  57. // Do any additional setup after loading the view.
  58. self.navigationItem.title=@"新人必看";
  59. UIImageView *iconIMG=[[UIImageView alloc]init];
  60. iconIMG.userInteractionEnabled=YES;
  61. iconIMG.image=[UIImage imageNamed:@"wanzhuanjixin"];
  62. [self.view addSubview:iconIMG];
  63. [iconIMG mas_makeConstraints:^(MASConstraintMaker *make) {
  64. make.left.mas_equalTo(0);
  65. make.top.mas_equalTo(JX_SCREEN_TOP);
  66. make.bottom.mas_equalTo(0);
  67. make.right.mas_equalTo(0);
  68. }];
  69. UIButton *touchBtn=[[UIButton alloc]init];
  70. touchBtn.backgroundColor=[UIColor clearColor];
  71. [iconIMG addSubview:touchBtn];
  72. [touchBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  73. make.centerX.mas_equalTo(iconIMG.mas_centerX);
  74. make.bottom.mas_equalTo(-60);
  75. make.width.mas_equalTo(110);
  76. make.height.mas_equalTo(110);
  77. }];
  78. [touchBtn addTarget:self action:@selector(playBtn) forControlEvents:UIControlEventTouchUpInside];
  79. }
  80. /**
  81. * 背景视频
  82. */
  83. -(void)playBtn{
  84. //初始化AVPlayer
  85. self.AVPlayer = [[AVPlayerViewController alloc]init];
  86. //多分屏功能取消
  87. self.AVPlayer.allowsPictureInPicturePlayback = NO;
  88. //设置是否显示媒体播放组件
  89. self.AVPlayer.showsPlaybackControls = false;
  90. NSString *strUl=@"http://2449.vod.myqcloud.com/2449_22ca37a6ea9011e5acaaf51d105342e3.f20.mp4";
  91. //[[NSBundle mainBundle] pathForResource:@"movie" ofType:@".mp4"];
  92. //初始化一个播放单位。给AVplayer 使用
  93. AVPlayerItem *item = [[AVPlayerItem alloc]initWithURL:[NSURL URLWithString :strUl]];
  94. AVPlayer *player = [AVPlayer playerWithPlayerItem:item];
  95. //layer
  96. AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:player];
  97. [layer setFrame:CGRectMake(0, JX_SCREEN_TOP, JX_SCREEN_WIDTH, JX_SCREEN_HEIGHT-JX_SCREEN_TOP)];
  98. //设置填充模式
  99. layer.videoGravity = AVLayerVideoGravityResizeAspect;
  100. self.layer=layer;
  101. //设置AVPlayerViewController内部的AVPlayer为刚创建的AVPlayer
  102. self.AVPlayer.player = player;
  103. //添加到self.view上面去
  104. [self.view.layer addSublayer:layer];
  105. //开始播放
  106. [self.AVPlayer.player play];
  107. //这里设置的是重复播放。
  108. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playDidEnd:) name:AVPlayerItemDidPlayToEndTimeNotification object:item];
  109. //定时器。延迟3秒再出现进入应用按钮
  110. [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(prepareForbackIMG) userInfo:nil repeats:YES];
  111. }
  112. - (void)addtBtnClick{
  113. [self.AVPlayer.player pause];
  114. [self.backBtn removeFromSuperview];
  115. [self.layer removeFromSuperlayer];
  116. [self.backBtn removeFromSuperview];
  117. self.layer = nil;
  118. self.AVPlayer=nil;
  119. self.AVPlayer.player=nil;
  120. self.backBtn.hidden=YES;
  121. }
  122. - (void)prepareForbackIMG{
  123. self.backBtn.hidden=NO;
  124. }
  125. //播放完成的代理
  126. - (void)playDidEnd:(NSNotification *)Notification{
  127. //播放完成后。设置播放进度为0 。 重新播放
  128. // [self.layer removeFromSuperlayer];
  129. // self.layer = nil;
  130. [self.AVPlayer.player seekToTime:CMTimeMake(0, 1)];
  131. //开始播放
  132. [self.AVPlayer.player play];
  133. }
  134. @end