TCPlayViewCell.m 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. //
  2. // TCPlayViewCell.m
  3. // TXXiaoShiPinDemo
  4. //
  5. // Created by xiang zhang on 2018/2/2.
  6. // Copyright © 2018年 tencent. All rights reserved.
  7. //
  8. #import "TCPlayViewCell.h"
  9. #import "UIImageView+WebCache.h"
  10. #define FULL_SCREEN_PLAY_VIDEO_VIEW 10000
  11. @implementation TCPlayViewCell
  12. - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  13. {
  14. self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  15. if (self) {
  16. CGRect frame = self.contentView.bounds;// [UIScreen mainScreen].bounds;
  17. _videoCoverView = [[UIImageView alloc] initWithFrame:self.contentView.bounds];
  18. _videoCoverView.contentMode = UIViewContentModeScaleAspectFill;
  19. _videoCoverView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
  20. [self.contentView addSubview:_videoCoverView];
  21. _videoParentView = [[UIView alloc] initWithFrame:frame];
  22. _videoParentView.tag = FULL_SCREEN_PLAY_VIDEO_VIEW;
  23. _videoParentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
  24. [self.contentView addSubview:_videoParentView];
  25. _logicView = [[TCPlayDecorateView alloc] initWithFrame:frame];
  26. _logicView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
  27. _logicView.delegate = self;
  28. [self.contentView addSubview:_logicView];
  29. _reviewLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.contentView.width / 2 - 50, self.contentView.height / 2 - 25 , 100, 50)];
  30. _reviewLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
  31. _reviewLabel.textAlignment = NSTextAlignmentCenter;
  32. _reviewLabel.font = [UIFont systemFontOfSize:18];
  33. _reviewLabel.textColor = [UIColor whiteColor];
  34. [self.contentView addSubview:_reviewLabel];
  35. }
  36. return self;
  37. }
  38. - (void)awakeFromNib {
  39. [super awakeFromNib];
  40. // Initialization code
  41. }
  42. - (void)prepareForReuse
  43. {
  44. [super prepareForReuse];
  45. [_logicView preprareForReuse];
  46. }
  47. -(void)setLiveInfo:(TCLiveInfo *)liveInfo
  48. {
  49. [_videoParentView removeAllSubViews];
  50. ReviewStatus reviewStatus = liveInfo.reviewStatus;
  51. switch (reviewStatus) {
  52. case ReviewStatus_Normal:
  53. {
  54. if (liveInfo.userinfo.frontcoverImage) {
  55. [_videoCoverView setImage:liveInfo.userinfo.frontcoverImage];
  56. }else{
  57. [_videoCoverView sd_setImageWithURL:[NSURL URLWithString:[TCUtil transImageURL2HttpsURL:liveInfo.userinfo.frontcover]] placeholderImage:[UIImage imageNamed:@"bg.jpg"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
  58. liveInfo.userinfo.frontcoverImage = image;
  59. }];
  60. }
  61. _reviewLabel.text = @"";
  62. _logicView.btnChorus.hidden = NO;
  63. }
  64. break;
  65. case ReviewStatus_NotReivew:
  66. {
  67. [_videoCoverView setImage:[UIImage imageNamed:@"bg.jpg"]];
  68. _reviewLabel.text = NSLocalizedString(@"TCPlayViewCell.UncensoredVideo", nil);
  69. _logicView.btnChorus.hidden = YES;
  70. }
  71. break;
  72. case ReviewStatus_Porn:
  73. {
  74. [_videoCoverView setImage:[UIImage imageNamed:@"bg.jpg"]];
  75. _reviewLabel.text = NSLocalizedString(@"TCPlayViewCell.AdultVideo", nil);
  76. _logicView.btnChorus.hidden = YES;
  77. }
  78. break;
  79. default:
  80. break;
  81. }
  82. [_logicView setLiveInfo:liveInfo];
  83. [_logicView.playProgress setValue:0];
  84. }
  85. -(void)setPlayLabelText:(NSString *)text
  86. {
  87. [_logicView.playLabel setText:text];
  88. }
  89. -(void)setPlayProgress:(CGFloat)progress
  90. {
  91. [_logicView.playProgress setValue:progress];
  92. }
  93. -(void)setPlayBtnImage:(UIImage *)image
  94. {
  95. [_logicView.playBtn setImage:image forState:UIControlStateNormal];
  96. }
  97. #pragma TCPlayDecorateDelegate
  98. -(void)closeVC:(BOOL)isRefresh popViewController:(BOOL)popViewController
  99. {
  100. [_delegate closeVC:isRefresh popViewController:popViewController];
  101. }
  102. -(void)clickScreen:(UITapGestureRecognizer *)gestureRecognizer
  103. {
  104. [_delegate clickScreen:gestureRecognizer];
  105. }
  106. -(void)clickPlayVod
  107. {
  108. [_delegate clickPlayVod];
  109. }
  110. -(void)onSeek:(UISlider *)slider
  111. {
  112. [_delegate onSeek:slider];
  113. }
  114. -(void)onSeekBegin:(UISlider *)slider
  115. {
  116. [_delegate onSeekBegin:slider];
  117. }
  118. -(void)onDrag:(UISlider *)slider
  119. {
  120. [_delegate onDrag:slider];
  121. }
  122. -(void)clickLog:(UIButton *)button
  123. {
  124. [_delegate clickLog:button];
  125. }
  126. -(void)clickChorus:(UIButton *)button
  127. {
  128. [_delegate clickChorus:button];
  129. }
  130. -(void)clickShare:(UIButton *)button
  131. {
  132. [_delegate clickShare:button];
  133. }
  134. @end