Files
midi_ios/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatView.m
2025-09-24 09:14:50 +08:00

1416 lines
49 KiB
Objective-C

//
// QXRoomSeatView.m
// QXLive
//
// Created by 启星 on 2025/6/7.
//
#import "QXRoomSeatView.h"
#import "QXRoomSeatTypeSongView.h"
#import "QXRoomSeatTypeAuctionView.h"
#import "QXAgoraEngine.h"
#import "QXRoomOnlineUserListView.h"
#import "QXRoomSeatTypeCabinView.h"
#import "QXRoomSeatPKView.h"
#import "QXRoomSeatTypeFrientView.h"
#import "QXRoomUserCharmView.h"
@interface QXRoomSeatView()<QXRoomSeatDelegate>
@property (nonatomic,strong)QXRoomSeatTypeNormalView *normalSeatView;
@property (nonatomic,strong)QXRoomSeatTypeSongView *songView;
@property (nonatomic,strong)QXRoomSeatTypeAuctionView *auctionView;
@property (nonatomic,strong) QXRoomOnlineUserListView *onlineListView;
@property (nonatomic,strong)QXRoomSeatTypeCabinView *cabinView;
@property (nonatomic,strong)QXRoomSeatPKView *roomPkView;
@property (nonatomic,strong)QXRoomSeatTypeFrientView *roomFriendView;
@property (nonatomic,strong)QXRoomUserCharmView *charmListView;
@end
@implementation QXRoomSeatView
- (instancetype)initWithType:(QXRoomSeatViewType)type
{
self = [super init];
if (self) {
_type = type;
[self setType:type];
}
return self;
}
//初始化普通视图
-(void)initNomarlView{
// if (_songView) {
// [_songView removeFromSuperview];
// _songView = nil;
// }
//
if (_songView) {
// [_normalSeatView removeFromSuperview];
// _normalSeatView = nil;
[[QXAgoraEngine sharedEngine] ktv_EndSing];
_songView.transform = CGAffineTransformIdentity;
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_songView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_songView destroyViews];
[self->_songView removeFromSuperview];
self->_songView = nil;
[self addSubview:self.normalSeatView];
[self.normalSeatView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01);
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.normalSeatView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
if (_auctionView) {
// [_normalSeatView removeFromSuperview];
// _normalSeatView = nil;
[[QXAgoraEngine sharedEngine] ktv_EndSing];
_auctionView.transform = CGAffineTransformIdentity;
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_auctionView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
if (self->_auctionView.auctionInfoView != nil) {
[self->_auctionView.auctionInfoView hide];
}
[self->_auctionView destroyViews];
[self->_auctionView removeFromSuperview];
self->_auctionView = nil;
[self addSubview:self.normalSeatView];
[self.normalSeatView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01);
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.normalSeatView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
if (_roomPkView) {
_roomPkView.transform = CGAffineTransformIdentity;
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_roomPkView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_roomPkView destroyViews];
[self->_roomPkView removeFromSuperview];
self->_roomPkView = nil;
[self addSubview:self.normalSeatView];
[self.normalSeatView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01);
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.normalSeatView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
if (_roomFriendView) {
_roomFriendView.transform = CGAffineTransformIdentity;
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_roomFriendView destroyViews];
[self->_roomFriendView removeFromSuperview];
self->_roomFriendView = nil;
[self addSubview:self.normalSeatView];
[self.normalSeatView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01);
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.normalSeatView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
[self addSubview:self.normalSeatView];
[self.normalSeatView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
}
//初始化拍卖视图
-(void)initAuctionView{
if (_normalSeatView) {
// [_normalSeatView removeFromSuperview];
// _normalSeatView = nil;
_normalSeatView.transform = CGAffineTransformIdentity;
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_normalSeatView destroyViews];
[self->_normalSeatView removeFromSuperview];
self->_normalSeatView = nil;
[self addSubview:self.auctionView];
[self.auctionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.auctionView.transform = CGAffineTransformMakeScale(0.01, 0.01);
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.auctionView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
if (_songView) {
// [_normalSeatView removeFromSuperview];
// _normalSeatView = nil;
[[QXAgoraEngine sharedEngine] ktv_EndSing];
_songView.transform = CGAffineTransformIdentity;
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_songView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_songView destroyViews];
[self->_songView removeFromSuperview];
self->_songView = nil;
[self addSubview:self.auctionView];
[self.auctionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.auctionView.transform = CGAffineTransformMakeScale(0.01, 0.01);
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.auctionView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
if (_roomPkView) {
_roomPkView.transform = CGAffineTransformIdentity;
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_roomPkView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_roomPkView destroyViews];
[self->_roomPkView removeFromSuperview];
self->_roomPkView = nil;
[self addSubview:self.auctionView];
[self.auctionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.auctionView.transform = CGAffineTransformMakeScale(0.01, 0.01);
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.auctionView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
if (_roomFriendView) {
_roomFriendView.transform = CGAffineTransformIdentity;
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_roomFriendView destroyViews];
[self->_roomFriendView removeFromSuperview];
self->_roomFriendView = nil;
[self addSubview:self.auctionView];
[self.auctionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.auctionView.transform = CGAffineTransformMakeScale(0.01, 0.01);
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.auctionView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
[self addSubview:self.auctionView];
[self.auctionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
}
//初始化点唱
-(void)initSingView{
if (_normalSeatView) {
// [_normalSeatView removeFromSuperview];
// _normalSeatView = nil;
_normalSeatView.transform = CGAffineTransformIdentity;
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_normalSeatView destroyViews];
[self->_normalSeatView removeFromSuperview];
self->_normalSeatView = nil;
[self addSubview:self.songView];
[self.songView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.songView.transform = CGAffineTransformMakeScale(0.01, 0.01);
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.songView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
if (_auctionView) {
_auctionView.transform = CGAffineTransformIdentity;
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_auctionView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
if (self->_auctionView.auctionInfoView != nil) {
[self->_auctionView.auctionInfoView hide];
}
[self->_auctionView destroyViews];
[self->_auctionView removeFromSuperview];
self->_auctionView = nil;
[self addSubview:self.songView];
[self.songView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.songView.transform = CGAffineTransformMakeScale(0.01, 0.01);
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.songView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
if (_roomPkView) {
_roomPkView.transform = CGAffineTransformIdentity;
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_roomPkView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_roomPkView destroyViews];
[self->_roomPkView removeFromSuperview];
self->_roomPkView = nil;
[self addSubview:self.songView];
[self.songView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.songView.transform = CGAffineTransformMakeScale(0.01, 0.01);
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.songView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
if (_roomFriendView) {
_roomFriendView.transform = CGAffineTransformIdentity;
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_roomFriendView destroyViews];
[self->_roomFriendView removeFromSuperview];
self->_roomFriendView = nil;
[self addSubview:self.songView];
[self.songView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.songView.transform = CGAffineTransformMakeScale(0.01, 0.01);
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.songView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
[self addSubview:self.songView];
[self.songView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
}
- (void)initRoomPKView{
if (_normalSeatView) {
// [_normalSeatView removeFromSuperview];
// _normalSeatView = nil;
_normalSeatView.transform = CGAffineTransformIdentity;
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_normalSeatView destroyViews];
[self->_normalSeatView removeFromSuperview];
self->_normalSeatView = nil;
[self addSubview:self.roomPkView];
[self.roomPkView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.roomPkView.transform = CGAffineTransformMakeScale(0.01, 0.01);
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.roomPkView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
if (_songView) {
// [_normalSeatView removeFromSuperview];
// _normalSeatView = nil;
[[QXAgoraEngine sharedEngine] ktv_EndSing];
_songView.transform = CGAffineTransformIdentity;
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_songView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_songView destroyViews];
[self->_songView removeFromSuperview];
self->_songView = nil;
[self addSubview:self.roomPkView];
[self.roomPkView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.roomPkView.transform = CGAffineTransformMakeScale(0.01, 0.01);
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.roomPkView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
[self addSubview:self.roomPkView];
[self.roomPkView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
}
-(void)initRoomFriendView{
if (_normalSeatView) {
// [_normalSeatView removeFromSuperview];
// _normalSeatView = nil;
_normalSeatView.transform = CGAffineTransformIdentity;
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_normalSeatView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_normalSeatView destroyViews];
[self->_normalSeatView removeFromSuperview];
self->_normalSeatView = nil;
[self addSubview:self.roomFriendView];
[self.roomFriendView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01);
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.roomFriendView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
if (_auctionView) {
_auctionView.transform = CGAffineTransformIdentity;
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_auctionView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
if (self->_auctionView.auctionInfoView != nil) {
[self->_auctionView.auctionInfoView hide];
}
[self->_auctionView destroyViews];
[self->_auctionView removeFromSuperview];
self->_auctionView = nil;
[self addSubview:self.roomFriendView];
[self.roomFriendView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01);
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.roomFriendView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
if (_songView) {
[[QXAgoraEngine sharedEngine] ktv_EndSing];
_songView.transform = CGAffineTransformIdentity;
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self->_songView.transform = CGAffineTransformMakeScale(0.01, 0.01);
} completion:^(BOOL finished) {
[self->_songView destroyViews];
[self->_songView removeFromSuperview];
self->_songView = nil;
[self addSubview:self.roomFriendView];
[self.roomFriendView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
self.roomFriendView.transform = CGAffineTransformMakeScale(0.01, 0.01);
// 弹性动画
[UIView animateWithDuration:0.5
delay:0
usingSpringWithDamping:0.9
initialSpringVelocity:0.1
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.roomFriendView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
}];
}];
return;
}
[self addSubview:self.roomFriendView];
[self.roomFriendView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
}
- (void)initCabinView{
self.cabinView = [[QXRoomSeatTypeCabinView alloc] init];
self.cabinView.delegate = self;
[self addSubview:self.cabinView];
[self.cabinView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.equalTo(self);
}];
}
-(void)setMyPitNumber:(NSInteger)myPitNumber{
_myPitNumber = myPitNumber;
switch (self.type) {
case QXRoomSeatViewTypeNormal:
self.normalSeatView.myPitNumber = myPitNumber;
break;
case QXRoomSeatViewTypeSing:
self.songView.myPitNumber = myPitNumber;
break;
case QXRoomSeatViewTypeAuction:
self.auctionView.myPitNumber = myPitNumber;
break;
case QXRoomSeatViewTypePK:
self.roomPkView.myPitNumber = myPitNumber;
break;
case QXRoomSeatViewTypeFriend:
self.roomFriendView.myPitNumber = myPitNumber;
break;
default:
break;
}
}
-(void)setType:(QXRoomSeatViewType)type{
_type = type;
switch (type) {
case QXRoomSeatViewTypeNone:{
}
break;
case QXRoomSeatViewTypeNormal:{
[self initNomarlView];
}
break;
case QXRoomSeatViewTypeAuction:{
[self initAuctionView];
}
break;
case QXRoomSeatViewTypeSing:{
[self initSingView];
}
break;
case QXRoomSeatViewTypeCabin:{
[self initCabinView];
}
break;
case QXRoomSeatViewTypePK:{
[self initRoomPKView];
}
break;
case QXRoomSeatViewTypeFriend:{
[self initRoomFriendView];
}
break;
default:
break;
}
}
-(void)setLrcUrl:(NSString *)lrcUrl{
if (_songView) {
_lrcUrl = lrcUrl;
self.songView.lrcUrl = lrcUrl;
}
}
-(void)setProgress:(NSUInteger)progress{
if (_songView) {
_progress = progress;
self.songView.progress = progress;
}
}
-(void)setSpeakerPitch:(double)speakerPitch{
if (_songView) {
_speakerPitch = speakerPitch;
self.songView.speakerPitch = speakerPitch;
}
}
-(void)setSongInfo:(QXSongListModel *)songInfo{
if (_songView) {
_songInfo = songInfo;
self.songView.songInfo = songInfo;
}
}
-(void)setNextInfo:(QXSongListModel *)nextInfo{
if (_songView) {
_nextInfo = nextInfo;
self.songView.nextInfo = nextInfo;
}
}
-(void)setRoomModel:(QXRoomModel *)roomModel{
_roomModel = roomModel;
switch (self.type) {
case QXRoomSeatViewTypeNormal:
self.normalSeatView.roomModel = roomModel;
break;
case QXRoomSeatViewTypeSing:
self.songView.roomModel = roomModel;
break;
case QXRoomSeatViewTypeAuction:
self.auctionView.roomModel = roomModel;
break;
case QXRoomSeatViewTypeCabin:
self.cabinView.roomModel = roomModel;
break;
case QXRoomSeatViewTypePK:
self.roomPkView.roomModel = roomModel;
break;
case QXRoomSeatViewTypeFriend:
self.roomFriendView.roomModel = roomModel;
break;
default:
break;
}
}
-(void)setPkRoomModel:(QXRoomModel *)pkRoomModel{
_pkRoomModel = pkRoomModel;
if (_roomPkView) {
self.roomPkView.pkRoomModel = pkRoomModel;
}
}
-(void)previewUserInfoWithUserId:(NSString *)userId{
[self.onlineListView hide];
_onlineListView = nil;
if (self.delegate && [self.delegate respondsToSelector:@selector(didClickUserHeaderWithPitModel:userModel:isPkRoom:pkRoomId:isNoTakeOff:)]) {
QXRoomOwnerModel *md = [QXRoomOwnerModel new];
md.user_id = userId;
[self.delegate didClickUserHeaderWithPitModel:nil userModel:md isPkRoom:NO pkRoomId:@"" isNoTakeOff:NO];
}
}
-(void)previewRoomUserCharmListWithUserId:(NSString *)userId{
self.charmListView.roomId = self.roomModel.room_info.room_id;
self.charmListView.userId = userId;
[self.charmListView showInView:self.viewController.view];
}
-(void)didClickUserHeaderWithPitModel:(QXRoomPitModel *)pitModel userModel:(id)userModel isPkRoom:(BOOL)isPkRoom pkRoomId:(NSString *)pkRoomId isNoTakeOff:(BOOL)isNoTakeOff{
if (self.delegate && [self.delegate respondsToSelector:@selector(didClickUserHeaderWithPitModel:userModel:isPkRoom:pkRoomId:isNoTakeOff:)]) {
[self.delegate didClickUserHeaderWithPitModel:pitModel userModel:userModel isPkRoom:isPkRoom pkRoomId:pkRoomId isNoTakeOff:isNoTakeOff];
}
}
-(void)auctionGiftAction:(QXRoomPitModel *)user auctionId:(NSString *)auctionId{
if (self.delegate && [self.delegate respondsToSelector:@selector(auctionGiftAction:auctionId:)]) {
[self.delegate auctionGiftAction:user auctionId:auctionId];
}
}
-(void)sendGiftWithUser:(QXRoomPitModel *)user{
if (self.delegate && [self.delegate respondsToSelector:@selector(sendGiftWithUser:)]) {
[self.delegate sendGiftWithUser:user];
}
}
/// 拍卖类型发生变化
-(void)auctionTypeDidChanged:(NSString *)type{
if (self.roomModel == nil) {
return;
}
if (_auctionView) {
[self.auctionView auctionTypeDidChanged:type];
return;
}
}
-(void)cabinRoomHotValueDidChanged:(NSString *)hot_value{
if (_cabinView) {
[self.cabinView cabinRoomHotValueDidChanged:hot_value];
}
}
-(void)clearCharm{
if (self.roomModel == nil) {
return;
}
switch (self.type) {
case QXRoomSeatViewTypeNormal:
[self.normalSeatView clearCharm];
break;
case QXRoomSeatViewTypeSing:
[self.songView clearCharm];
break;
case QXRoomSeatViewTypeAuction:
[self.auctionView clearCharm];
break;
case QXRoomSeatViewTypeCabin:
break;
case QXRoomSeatViewTypePK:
[self.roomPkView clearCharm];
break;
case QXRoomSeatViewTypeFriend:
[self.roomFriendView clearCharm];
break;
default:
break;
}
}
/// 清除个人魅力
-(void)roomClearUserCharmWithUserId:(NSString *)userId{
if (self.roomModel == nil) {
return;
}
switch (self.type) {
case QXRoomSeatViewTypeNormal:
[self.normalSeatView roomClearUserCharmWithUserId:userId];
break;
case QXRoomSeatViewTypeSing:
[self.songView roomClearUserCharmWithUserId:userId];
break;
case QXRoomSeatViewTypeAuction:
[self.auctionView roomClearUserCharmWithUserId:userId];
break;
case QXRoomSeatViewTypeCabin:
break;
case QXRoomSeatViewTypePK:
[self.roomPkView roomClearUserCharmWithUserId:userId];
break;
case QXRoomSeatViewTypeFriend:
[self.roomFriendView roomClearUserCharmWithUserId:userId];
break;
default:
break;
}
}
/// 房间内换麦
-(void)roomSeatExchangedWithFromPitNumber:(NSInteger)fromPitNumber toPitNumber:(NSInteger)toPitNumber userInfo:(QXUserHomeModel*)userInfo{
if (self.roomModel == nil) {
return;
}
switch (self.type) {
case QXRoomSeatViewTypeNormal:
[self.normalSeatView roomSeatExchangedWithFromPitNumber:fromPitNumber toPitNumber:toPitNumber userInfo:userInfo];
break;
case QXRoomSeatViewTypeSing:
// [self.songView clearCharm];
break;
case QXRoomSeatViewTypeAuction:
break;
case QXRoomSeatViewTypeCabin:
break;
case QXRoomSeatViewTypePK:
[self.roomPkView roomSeatExchangedWithFromPitNumber:fromPitNumber toPitNumber:toPitNumber userInfo:userInfo];
break;
case QXRoomSeatViewTypeFriend:
[self.roomFriendView roomSeatExchangedWithFromPitNumber:fromPitNumber toPitNumber:toPitNumber userInfo:userInfo];
break;
default:
break;
}
}
-(void)setSeatCharmWithUser:(QXUserHomeModel *)model{
if (self.roomModel == nil) {
return;
}
switch (self.type) {
case QXRoomSeatViewTypeNormal:
[self.normalSeatView setSeatCharmWithUser:model];
break;
case QXRoomSeatViewTypeSing:
[self.songView setSeatCharmWithUser:model];
break;
case QXRoomSeatViewTypeAuction:
[self.auctionView setSeatCharmWithUser:model];
break;
case QXRoomSeatViewTypeCabin:
// self.cabinView.roomModel = roomModel;
break;
case QXRoomSeatViewTypePK:
[self.roomPkView setSeatCharmWithUser:model];
break;
case QXRoomSeatViewTypeFriend:
[self.roomFriendView setSeatCharmWithUser:model];
break;
default:
break;
}
}
-(void)setSeatCharmWithUsers:(NSArray<QXUserHomeModel *> *)users{
if (self.roomModel == nil) {
return;
}
switch (self.type) {
case QXRoomSeatViewTypeNormal:
[self.normalSeatView setSeatCharmWithUsers:users];
break;
case QXRoomSeatViewTypeSing:
[self.songView setSeatCharmWithUsers:users];
break;
case QXRoomSeatViewTypeAuction:
[self.auctionView setSeatCharmWithUsers:users];
break;
case QXRoomSeatViewTypeCabin:
// self.cabinView.roomModel = roomModel;
break;
case QXRoomSeatViewTypePK:
[self.roomPkView setSeatCharmWithUsers:users];
break;
case QXRoomSeatViewTypeFriend:
[self.roomFriendView setSeatCharmWithUsers:users];
break;
default:
break;
}
}
-(void)setSeatIsLock:(NSString *)isLock pitNumber:(NSString *)pitNumber{
if (self.roomModel == nil) {
return;
}
switch (self.type) {
case QXRoomSeatViewTypeNormal:
[self.normalSeatView setSeatIsLock:isLock pitNumber:pitNumber];
break;
case QXRoomSeatViewTypeSing:
// [self.songView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number];
break;
case QXRoomSeatViewTypeAuction:
// [self.auctionView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number];
break;
case QXRoomSeatViewTypeCabin:
// self.cabinView.roomModel = roomModel;
break;
case QXRoomSeatViewTypePK:
[self.roomPkView setSeatIsLock:isLock pitNumber:pitNumber];
break;
default:
break;
}
}
-(void)pkStartWithPkEndTimes:(NSString *)pk_end_times pk_id:(NSString*)pk_id{
if (self.roomModel == nil) {
return;
}
if (_roomPkView) {
[self.roomPkView pkStartWithPkEndTimes:pk_end_times pk_id:pk_id];
}
}
-(void)roomPKValueDidChangedWithRoomIdA:(NSString*)room_id_a create_value_a:(NSString*)create_value_a room_id_b:(NSString*)room_id_b receive_value_b:(NSString*)receive_value_b{
if (self.roomModel == nil) {
return;
}
if (_roomPkView) {
[self.roomPkView roomPKValueDidChangedWithRoomIdA:room_id_a create_value_a:create_value_a room_id_b:room_id_b receive_value_b:receive_value_b];
}
}
/// pk结果
-(void)pkResultWithIsVictory:(NSInteger)isVictory
end_time:(NSString*)end_time
victory_name:(NSString*)victory_name
victory_cover:(NSString*)victory_cover
defeated_name:(NSString*)defeated_name
defeated_cover:(NSString*)defeated_cover{
if (self.roomModel == nil) {
return;
}
if (_roomPkView) {
[self.roomPkView pkResultWithIsVictory:isVictory end_time:end_time victory_name:victory_name victory_cover:victory_cover defeated_name:defeated_name defeated_cover:defeated_cover];
}
}
#pragma mark - 交友房
/// 交友房阶段发生变化 step 阶段 1等待 2心动 3牵手 friend_id 场次id
-(void)friendPartDidChangedWithType:(NSString*)step friend_id:(NSString*)friend_id end_time:(NSString*)end_time relationModel:(QXRoomFriendRelationModel*)relationModel{
if (self.roomModel == nil) {
return;
}
switch (self.type) {
case QXRoomSeatViewTypeFriend:{
[self.roomFriendView friendPartDidChangedWithType:step friend_id:friend_id end_time:end_time relationModel:relationModel];
}
break;
default:
break;
}
}
/// 交友房时间发生延时 end_time 截止时间
-(void)friendTimeDelayWithTime:(NSString*)end_time{
if (self.roomModel == nil) {
return;
}
switch (self.type) {
case QXRoomSeatViewTypeFriend:{
[self.roomFriendView friendTimeDelayWithTime:end_time];
}
break;
default:
break;
}
}
-(void)friendSeatDidChanged:(NSArray<QXRoomPitModel *> *)pitArray{
if (self.roomModel == nil) {
return;
}
switch (self.type) {
case QXRoomSeatViewTypeFriend:{
[self.roomFriendView friendSeatDidChanged:pitArray];
}
break;
default:
break;
}
}
-(void)friendHeartNumberDidChanged:(NSArray<QXRoomFriendHeartListModel *> *)heartArray{
if (self.roomModel == nil) {
return;
}
switch (self.type) {
case QXRoomSeatViewTypeFriend:{
[self.roomFriendView friendHeartNumberDidChanged:heartArray];
}
break;
default:
break;
}
}
/// 关系创建完成
-(void)friendRelationIsCreatedWithrelationModel:(QXRoomFriendRelationModel*)relationModel{
if (self.roomModel == nil) {
return;
}
switch (self.type) {
case QXRoomSeatViewTypeFriend:{
[self.roomFriendView friendRelationIsCreatedWithrelationModel:relationModel];
}
break;
default:
break;
}
}
/// 有人退出交友房私密小屋
-(void)friendCabinRoomIsQuit{
switch (self.type) {
case QXRoomSeatViewTypeCabin:{
[self.cabinView friendCabinRoomIsQuit];
}
break;
default:
break;
}
}
/// 私密小屋时间发生延时
-(void)friendCabinRoomTimeDelayWithTime:(NSString*)end_time{
switch (self.type) {
case QXRoomSeatViewTypeCabin:{
[self.cabinView friendCabinRoomTimeDelayWithTime:end_time];
}
break;
default:
break;
}
}
/// 助力
-(void)friendPowerSendGiftWithUser:(QXRoomPitModel *)user heartId:(NSString *)heartId{
if (self.roomModel == nil) {
return;
}
if ([self.delegate respondsToSelector:@selector(friendPowerSendGiftWithUser:heartId:)]) {
[self.delegate friendPowerSendGiftWithUser:user heartId:heartId];
}
}
-(QXRoomSeatTypeNormalView *)normalSeatView{
if (!_normalSeatView) {
_normalSeatView = [[QXRoomSeatTypeNormalView alloc] init];
_normalSeatView.delegate = self;
}
return _normalSeatView;
}
-(QXRoomSeatTypeSongView *)songView{
if (!_songView) {
_songView = [[QXRoomSeatTypeSongView alloc] init];
_songView.delegate = self;
}
return _songView;
}
-(UIView*)getCurrentSeatView{
if (_normalSeatView) {
return _normalSeatView;
}
if (_songView) {
return _songView;
}
if (_auctionView) {
return _auctionView;
}
return nil;
}
-(void)didHugSeatWithPitNumber:(NSString *)pitNumber{
[self showOnlineListWithPitNumber:pitNumber];
}
-(void)didUpDownSeatWithUser:(QXUserHomeModel *)user isUpSeat:(BOOL)isUpSeat pit_number:(NSInteger)pit_number{
if (self.roomModel == nil) {
return;
}
switch (self.type) {
case QXRoomSeatViewTypeNormal:
[self.normalSeatView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number];
break;
case QXRoomSeatViewTypeSing:
[self.songView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number];
break;
case QXRoomSeatViewTypeAuction:
[self.auctionView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number];
break;
case QXRoomSeatViewTypeCabin:
// self.cabinView.roomModel = roomModel;
break;
case QXRoomSeatViewTypePK:
[self.roomPkView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number];
break;
case QXRoomSeatViewTypeFriend:
[self.roomFriendView didUpDownSeatWithUser:user isUpSeat:isUpSeat pit_number:pit_number];
break;
default:
break;
}
}
-(void)didAuctiontUpDownSeatWithUser:(QXUserHomeModel *)user isUpSeat:(BOOL)isUpSeat{
if (_auctionView) {
[self.auctionView didAuctiontUpDownSeatWithUser:user isUpSeat:isUpSeat];
}
}
-(void)auctionStartOrEndIsStart:(BOOL)isStart user:(QXRoomAuctionUser *)user getUser:(QXRoomAuctionUser *)getUser{
if (self.roomModel == nil) {
return;
}
if (_auctionView) {
[self.auctionView auctionStartOrEndIsStart:isStart user:user getUser:getUser];
}
}
-(void)auctionListDidChanged:(NSArray<QXRoomPitModel *> *)list{
if (self.roomModel == nil) {
return;
}
if (_auctionView) {
[self.auctionView auctionListDidChanged:list];
}
}
-(void)auctionDelayTimeWithEndTime:(NSString *)endTime{
if (self.roomModel == nil) {
return;
}
if (_auctionView) {
[self.auctionView auctionDelayTimeWithEndTime:endTime];
}
}
-(void)songRoomCharmRankListDidChanged:(NSArray<QXRoomPitModel *> *)list{
if (_songView) {
[self.songView songRoomCharmRankListDidChanged:list];
}
}
-(void)showOnlineListWithPitNumber:(NSString*)pitNumber{
self.onlineListView.isHugSeat = YES;
self.onlineListView.pitNumber = pitNumber;
self.onlineListView.roomId = self.roomModel.room_info.room_id;
[self.onlineListView showInView:self.viewController.view];
}
-(void)roomUserInfoDidChanged:(QXUserHomeModel *)user{
// if (_normalSeatView) {
// [self.normalSeatView roomUserInfoDidChanged:user];
// return;
// }
// if (_songView) {
// [self.songView roomUserInfoDidChanged:user];
// return;
// }
// if (_auctionView) {
// [self.auctionView roomUserInfoDidChanged:user];
// return;
// }
// if (_roomPkView) {
// [self.roomPkView roomUserInfoDidChanged:user];
// return;
// }
switch (self.type) {
case QXRoomSeatViewTypeNormal:
[self.normalSeatView roomUserInfoDidChanged:user];
break;
case QXRoomSeatViewTypeSing:
[self.songView roomUserInfoDidChanged:user];
break;
case QXRoomSeatViewTypeAuction:
[self.auctionView roomUserInfoDidChanged:user];
break;
case QXRoomSeatViewTypeCabin:
// self.cabinView.roomModel = roomModel;
break;
case QXRoomSeatViewTypePK:
[self.roomPkView roomUserInfoDidChanged:user];
break;
case QXRoomSeatViewTypeFriend:
[self.roomFriendView roomUserInfoDidChanged:user];
break;
default:
break;
}
}
-(void)stopHWDMP4{
switch (self.type) {
case QXRoomSeatViewTypeNormal:
[self.normalSeatView stopHWDMP4];
break;
case QXRoomSeatViewTypeSing:
[self.songView stopHWDMP4];
break;
case QXRoomSeatViewTypeAuction:
[self.auctionView stopHWDMP4];
break;
case QXRoomSeatViewTypeCabin:
[self.cabinView stopHWDMP4];
break;
case QXRoomSeatViewTypePK:
[self.roomPkView stopHWDMP4];
break;
case QXRoomSeatViewTypeFriend:
[self.roomFriendView stopHWDMP4];
break;
default:
break;
}
}
-(void)playHWDMP4{
switch (self.type) {
case QXRoomSeatViewTypeNormal:
[self.normalSeatView playHWDMP4];
break;
case QXRoomSeatViewTypeSing:
[self.songView playHWDMP4];
break;
case QXRoomSeatViewTypeAuction:
[self.auctionView playHWDMP4];
break;
case QXRoomSeatViewTypeCabin:
[self.cabinView playHWDMP4];
break;
case QXRoomSeatViewTypePK:
[self.roomPkView playHWDMP4];
break;
case QXRoomSeatViewTypeFriend:
[self.roomFriendView playHWDMP4];
break;
default:
break;
}
}
-(void)destroyViews{
if (_normalSeatView) {
[self.normalSeatView destroyViews];
_normalSeatView = nil;
}
if (_songView) {
[self.songView destroyViews];
_songView = nil;
}
if (_auctionView) {
[self.auctionView destroyViews];
}
if (_roomPkView) {
[self.roomPkView destroyViews];
_roomPkView = nil;
}
if (_roomFriendView) {
[self.roomFriendView destroyViews];
_roomFriendView = nil;
}
if (_cabinView) {
[self.cabinView destroyViews];
_cabinView = nil;
}
}
-(QXRoomOnlineUserListView *)onlineListView{
if (!_onlineListView) {
_onlineListView = [[QXRoomOnlineUserListView alloc] initWithFrame:[UIScreen mainScreen].bounds];
_onlineListView.delegate = self;
}
return _onlineListView;
}
-(QXRoomSeatTypeAuctionView *)auctionView{
if (!_auctionView) {
_auctionView = [[QXRoomSeatTypeAuctionView alloc] init];
_auctionView.delegate = self;
}
return _auctionView;
}
-(QXRoomSeatPKView *)roomPkView{
if (!_roomPkView) {
_roomPkView = [[QXRoomSeatPKView alloc] init];
_roomPkView.delegate = self;
}
return _roomPkView;
}
-(QXRoomSeatTypeFrientView *)roomFriendView{
if (!_roomFriendView) {
_roomFriendView = [[QXRoomSeatTypeFrientView alloc] init];
_roomFriendView.delegate = self;
}
return _roomFriendView;
}
-(QXRoomUserCharmView *)charmListView{
if (!_charmListView) {
_charmListView = [[QXRoomUserCharmView alloc] initWithFrame:[UIScreen mainScreen].bounds];
_charmListView.delegate = self;
}
return _charmListView;
}
@end