| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- //
- // FullVideoCell.m
- // TeacherDaya
- //
- // Created by Kyle on 2020/9/8.
- // Copyright © 2020 DayaMusic. All rights reserved.
- //
- #import "FullVideoCell.h"
- #import "RTCService.h"
- #import "ClassroomService.h"
- #import "LocalRenderManager.h"
- @interface FullVideoCell ()
- @property (nonatomic, strong) NSString *displayUserId;
- @property (weak, nonatomic) IBOutlet UIView *backGroundView;
- @property (strong, nonatomic) UILabel *roleLable;
- @property (strong, nonatomic) UILabel *nameLable;
- @property (nonatomic, strong) UILabel *promptLable;
- @end
- @implementation FullVideoCell
- - (void)awakeFromNib {
- [super awakeFromNib];
- // Initialization code
- }
- - (instancetype)initWithCoder:(NSCoder *)coder {
- self = [super initWithCoder:coder];
- if (self) {
- [self.contentView addSubview:self.videoView];
- [self.contentView addSubview:self.roleLable];
- [self.contentView addSubview:self.nameLable];
- [self.contentView addSubview:self.promptLable];
- }
- return self;
- }
- - (void)setCellSize:(CGSize)cellSize {
- _cellSize = cellSize;
- CGFloat height = cellSize.height - 2;
- CGFloat width = height / 3.0f * 4;
- if (width > cellSize.width - 2) {
- width = cellSize.width - 2;
- height = width / 4.0f * 3;
- }
- self.videoView.frame = CGRectMake((cellSize.width - width) / 2.0f, (cellSize.height - height) / 2.0f, width, height);
- [self.nameLable mas_makeConstraints:^(MASConstraintMaker *make) {
-
- }];
- [self.roleLable mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.mas_equalTo(self.mas_top).offset((cellSize.height - height) / 2.0f + 4);
- make.left.mas_equalTo(self.mas_left).offset((cellSize.width - width) / 2.0f + 4);
- make.height.equalTo(@18);
- make.width.equalTo(@24);
- }];
- [self.nameLable mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.equalTo(self.mas_left).offset(10 + (cellSize.width - width) / 2.0f);
- make.bottom.equalTo(self.mas_bottom).offset(-(cellSize.height - height) / 2.0f - 10);
- make.height.equalTo(@22);
- make.right.mas_equalTo(self.mas_right).offset(-10);
- }];
-
- [self.promptLable mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerY.equalTo(self.videoView.mas_centerY);
- make.centerX.equalTo(self.videoView.mas_centerX);
- make.height.equalTo(@25);
- make.width.equalTo(@84);
- }];
- }
- - (void)setModel:(RoomMember *)member displayUserId:(NSString *)displayUserId {
- [self resetDefaultStyle];
- self.displayUserId = displayUserId;
- if (member == nil) {
- return;
- }
- if (member.userId == nil) {
- self.nameLable.hidden = YES;
- self.videoView.hidden = YES;
- self.roleLable.hidden = YES;
- }
- else {
- if ([member.userId isEqualToString:[ClassroomService sharedService].currentRoom.currentMember.userId]) {
- self.nameLable.text = @"我";
- self.roleLable.hidden = NO;
- }
- else {
- self.roleLable.hidden = YES;
- [self remakeNameLable:member];
- }
-
- if ([[ClassroomService sharedService].currentRoom.shareUserId isEqualToString:member.userId]) {
- member.handUpOn = NO;
- self.promptLable.text = @"演示中";
- self.promptLable.hidden = NO;
- }
-
- }
- if (![member.userId isEqualToString:displayUserId]) {
- [self renderVideo:member];
- }
- }
- - (void)resetDefaultStyle {
- self.nameLable.text = nil;
- self.roleLable.hidden = NO;
- self.nameLable.hidden = NO;
- self.videoView.hidden = NO;
- self.promptLable.hidden = YES;
- [self cancelVideo];
- }
- - (void)renderVideo:(RoomMember *)member {
-
- if([[ClassroomService sharedService].currentRoom.currentMemberId isEqualToString:member.userId]) {
- RoomMember *curMemeber =[ClassroomService sharedService].currentRoom.currentMember;
- [[RTCService sharedInstance] renderLocalVideoOnView:self.videoView cameraEnable:curMemeber.cameraEnable];
- }else {
- if (![member.userId isEqualToString:self.displayUserId]) {
- [[RTCService sharedInstance] renderRemoteVideoOnView:self.videoView forUser:member.userId];
- }
- }
- }
- - (void)cancelVideo {
- [[RTCService sharedInstance] cancelRenderVideoInView:self.videoView];
- }
- - (void)remakeNameLable:(RoomMember *)member {
- NSString * nameTxt = member.name.length > 8 ? [NSString stringWithFormat:@"%@...",[member.name substringToIndex:8]] : member.name;
- self.nameLable.text = nameTxt;
- }
- - (UIView *)videoView {
- if(!_videoView) {
- _videoView = [[UIView alloc] init];
- _videoView.backgroundColor = [UIColor colorWithHexString:@"3D4041" alpha:1];
- }
- return _videoView;
- }
- - (UILabel *)roleLable {
- if(!_roleLable) {
- _roleLable = [[UILabel alloc] init];
- _roleLable.font = [UIFont systemFontOfSize:10];
- _roleLable.textAlignment = NSTextAlignmentCenter;
- _roleLable.textColor = [UIColor colorWithHexString:@"FFFFFF" alpha:1];
- _roleLable.backgroundColor = HexRGB(0xFF5500);
- _roleLable.text = @"讲师";
- _roleLable.layer.cornerRadius = 4;
- _roleLable.layer.masksToBounds = YES;
- }
- return _roleLable;
- }
- - (UILabel *)nameLable {
- if(!_nameLable) {
- _nameLable = [[UILabel alloc] init];
- _nameLable.font = [UIFont systemFontOfSize:16.0];
- _nameLable.numberOfLines = 1;
- _nameLable.textAlignment = NSTextAlignmentLeft;
- _nameLable.textColor = [UIColor colorWithHexString:@"FFFFFF" alpha:1];
- }
- return _nameLable;
- }
- - (UILabel *)promptLable {
- if(!_promptLable) {
- _promptLable = [[UILabel alloc] init];
- _promptLable.font = [UIFont systemFontOfSize:12];
- _promptLable.numberOfLines = 1;
- _promptLable.textAlignment = NSTextAlignmentCenter;
- _promptLable.backgroundColor = [UIColor clearColor];
- _promptLable.textColor = [UIColor colorWithHexString:@"FFFFFF" alpha:1];
- _promptLable.text = @"演示中";
- _promptLable.hidden = YES;
- }
- return _promptLable;
- }
- @end
|