fix:修正部分问题

This commit is contained in:
eggmanQQQ
2024-10-17 16:05:02 +08:00
parent e72f39ffde
commit c9cacb388b
17 changed files with 104 additions and 100 deletions

View File

@@ -38,7 +38,7 @@ typedef NS_ENUM(NSInteger, BackMusicPlayState) {
///因为跨房pk结束后会闭麦用这个限制不要关麦
@property(nonatomic,assign) BOOL isAnckorPk;
///因为最小化进房闭麦问题,用这个限制不要关麦
@property(nonatomic,assign) BOOL isMiniEnterk;
@property(nonatomic,assign) BOOL isMiniEnter;
/**
* 是否静音(静别人)
* YES🔇虽然你们麦位上在说话但是我就是不听。🙉
@@ -142,8 +142,6 @@ typedef NS_ENUM(NSInteger, BackMusicPlayState) {
- (NSInteger)loadUserSound;
- (void)resetToDefault;
@property (nonatomic,assign) BOOL broadcast;
@end

View File

@@ -160,10 +160,6 @@ UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
return [self.engine loadUserSound];
}
- (void)resetToDefault {
[self.engine updateUserSound:50];
}
- (void)usersSpeaking:(NSMutableArray *)uids {
if (self.engineDelegate) {
[self.engineDelegate usersSpeaking:uids];

View File

@@ -17,8 +17,6 @@
@property (nonatomic, strong) VAPView *vapView;
@property (nonatomic, strong) XPRoomGiftAnimationParser *vapParser;
//@property (nonatomic, strong) Boom632Model *model;
//@property (nonatomic, strong) BoomInfoModel *boomInfo;
@property (nonatomic, assign) NSInteger seq;
@property (nonatomic, copy) NSString *countDownURLString;
@@ -54,16 +52,15 @@
- (void)dealloc
{
if (self.seq != 2) {
// manager
[[RoomBoomManager sharedManager] explosionEnd];
}
[self.vapView stopHWDMP4];
[self.vapView removeFromSuperview];
self.vapView = nil;
}
- (void)handleEnd {
[[RoomBoomManager sharedManager] explosionEnd];
}
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
@@ -78,22 +75,12 @@
return self;
}
//- (void)setModel:(Boom632Model *)model {
// _model = model;
// self.countDownURLString = model.countDownVapUrl;
// self.endURLString = model.endVapUrl;
// [self play_count];
//}
//
//- (void)setBoomInfo:(BoomInfoModel *)boomInfo {
// _boomInfo = boomInfo;
//}
- (void)play_count {
self.seq = 1;
NSString *path = [self.countDownURLString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if (path.length == 0) {
[self handleEnd];
return;
}
@@ -106,7 +93,8 @@
[self.vapView playHWDMP4:videoUrl repeatCount:0 delegate:self];
}
} failureBlock:^(NSError * _Nullable error) {
@kStrongify(self);
[self handleEnd];
}];
}
@@ -114,6 +102,7 @@
self.seq = 2;
NSString *path = [self.endURLString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if (path.length == 0) {
[self handleEnd];
return;
}
@@ -126,7 +115,8 @@
[self.vapView playHWDMP4:videoUrl repeatCount:0 delegate:self];
}
} failureBlock:^(NSError * _Nullable error) {
@kStrongify(self);
[self handleEnd];
}];
}
@@ -154,6 +144,7 @@
- (void)viewDidStopPlayMP4:(NSInteger)lastFrameIndex view:(VAPView *)container {
}
- (void)viewDidFailPlayMP4:(NSError *)error{
@kWeakify(self);
dispatch_async(dispatch_get_main_queue(), ^{

View File

@@ -269,6 +269,8 @@
}
[self.bannerEventsQueue addObject:attachment];
[self sortDataSource];
[self checkAndStartBoomEvent];
[self checkAndStartBannerEvent];
}
@@ -282,6 +284,10 @@
}
}
- (void)sortDataSource {
// TODO: boom banner
}
- (void)handleProgressUpdate:(BoomDetailModel *)model {
[self updateBoomDetail:model];

View File

@@ -52,6 +52,7 @@
- (NetImageView *)giftPic {
if (!_giftPic) {
_giftPic = [[NetImageView alloc] init];
_giftPic.contentMode = UIViewContentModeScaleAspectFit;
}
return _giftPic;
}

View File

@@ -348,7 +348,7 @@
fail:^(NSInteger code, NSString * _Nullable msg) {
}
showLoading:NO]
showLoading:NO errorToast:NO]
roomUid:roomUid];
}

View File

@@ -22,7 +22,7 @@
///Model
#import "UserInfoModel.h"
#import "RoomInfoModel.h"
#import "BoomInfoModel.h"
#import "AttachmentModel.h"
#import "FirstRechargeModel.h"
#import "TreasureFairyLimitModel.h"

View File

@@ -22,8 +22,6 @@ NS_ASSUME_NONNULL_BEGIN
- (void)menuResignFirstResponder;
- (void)recheckMicState;
- (NSInteger)micState;
@end
NS_ASSUME_NONNULL_END

View File

@@ -37,6 +37,7 @@
#import "SVGA.h"
#import "XPRoomMiniManager.h"
#import "XPSkillCardPlayerManager.h"
UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
@@ -79,8 +80,6 @@ UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
@property (nonatomic, assign) BOOL isDisplayMicStatusControl;
@property (nonatomic, assign) NSInteger micStateType;
@end
@@ -309,24 +308,24 @@ UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
default:
break;
}
[self micButtonUpdate:sender.tag];
[self hideMicControlMenu];
[XNDJTDDLoadingTool showErrorWithMessage:message];
[[XPSkillCardPlayerManager shareInstance] setMicState:sender.tag];
}
- (void)micButtonUpdate:(NSInteger)type {
self.micStateType = type;
switch (type) {
case 1:
case MICState_Open:
//
[self.micButton setImage:kImage(@"room_menu_mic_open") forState:UIControlStateNormal];
break;
case 2:
case MICState_Close:
//
[self.micButton setImage:kImage(@"room_menu_mic_close") forState:UIControlStateNormal];
break;
case 3:
case MICState_Music:
// 0
[self.micButton setImage:kImage(@"room_menu_mic_close_but_music") forState:UIControlStateNormal];
break;
@@ -337,16 +336,13 @@ UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
}
- (void)recheckMicState {
if (self.micStateType == 3) {
if ([XPSkillCardPlayerManager shareInstance].micState == MICState_Music) {
[RtcManager instance].localMuted = NO;
[[RtcManager instance] updateUserSoundWithUserInMic:0];
[self micButtonUpdate:MICState_Music];
}
}
- (NSInteger)micState {
return self.micStateType;
}
#pragma mark - notification
- (void)showGiftView:(NSNotification *)noti {
NSDictionary *dict = noti.object;
@@ -529,10 +525,13 @@ UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
[self micButtonUpdate:1];
}
//
NSInteger miniRoomMicState = [[XPRoomMiniManager shareManager] loadMicState];
if (miniRoomMicState != -1) {
[self micButtonUpdate:miniRoomMicState];
if (model.microState.micState == MicroMicStateType_Open) {
self.micButton.enabled = YES;
[self recheckMicState];
} else {
[[RtcManager instance] setLocalMuted:YES];
[self micButtonUpdate:MICState_None];
self.micButton.enabled = NO;
}
self.micButton.enabled = model.microState.micState == MicroMicStateType_Open;
@@ -549,6 +548,16 @@ UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
- (void)onRoomEntered {
NSInteger unreadCount = [[NIMSDK sharedSDK].conversationManager allUnreadCount];
self.messageButton.selected = unreadCount > 0;
[[RtcManager instance] setLocalMuted:YES];
[self onRoomUpdate];
}
- (void)onRoomMiniEntered {
NSInteger unreadCount = [[NIMSDK sharedSDK].conversationManager allUnreadCount];
self.messageButton.selected = unreadCount > 0;
[self onRoomUpdate];
}

View File

@@ -1000,11 +1000,6 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
///
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSArray * temArray = [XPRoomMiniManager shareManager].getLocalCurrentRoomMessage;
//
// for (NIMMessage *item in temArray) {
// [self.datasource addObject:[self.messageParser parseMessageAttribute:item]];
// }
[temArray enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[NIMMessage class]]) {
XPMessageInfoModel *model = [self.messageParser parseMessageAttribute:(NIMMessage *)obj];
@@ -1018,7 +1013,6 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
}];
[self updateAllDataSource];
[self.messageTableView reloadData];
//
[self scrollToBottom:YES];

View File

@@ -76,11 +76,11 @@
if (self) {
_hostDelegate = delegate;
_isMiniEnter = NO;
[RtcManager instance].isMiniEnterk = self.hostDelegate.getIsMiniEnter;
[RtcManager instance].isMiniEnter = self.hostDelegate.getIsMiniEnter;
RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo;
if (roomInfo.roomModeType != RoomModeType_Open_AcrossRoomPK_mode ){
if ([RtcManager instance].isAnckorPk == NO){
if ([RtcManager instance].isMiniEnterk == NO){
if ([RtcManager instance].isMiniEnter == NO){
[RtcManager instance].localMuted = YES;
}
@@ -549,7 +549,7 @@
if (roomInfo.roomModeType != RoomModeType_Open_Blind){
if (userInfo.isNoProhibitMic == NO){
if (roomInfo.roomModeType != RoomModeType_Open_AcrossRoomPK_mode){
if ([RtcManager instance].isMiniEnterk == NO){
if ([RtcManager instance].isMiniEnter == NO){
[RtcManager instance].localMuted = YES;
}
@@ -557,7 +557,7 @@
}
}
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[RtcManager instance].isMiniEnterk = NO;
[RtcManager instance].isMiniEnter = NO;
});
}
}

View File

@@ -810,8 +810,7 @@ UIKIT_EXTERN NSString *kRoomKickoutTime;
int captureVolum = (int)[defaults integerForKey:kRoomBackMusicCaptureVolumeKey];
captureVolum = captureVolum > 0 ? captureVolum : 50;
self.currentMusic = music;
self.currentIndex = index;
NSString * documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
@@ -831,7 +830,7 @@ UIKIT_EXTERN NSString *kRoomKickoutTime;
[self playNextMusic:self.currentIndex];
}
}];
[[RtcManager instance] updateUserSound:captureVolum];
// [[RtcManager instance] updateUserSound:captureVolum];
[[RtcManager instance] updateMusicSound:musicVolum];
}
@@ -850,7 +849,6 @@ UIKIT_EXTERN NSString *kRoomKickoutTime;
if (!_backImageView) {
_backImageView = [[UIImageView alloc] init];
_backImageView.userInteractionEnabled = YES;
// _backImageView.image = [UIImage imageNamed:@"room_mini_background"];
}
return _backImageView;
}

View File

@@ -36,8 +36,7 @@ NS_ASSUME_NONNULL_BEGIN
///最小化的时候也要保存一下当前播放的歌曲
- (void)configCurrentMusic:(Music * _Nullable)roomInfo isPlaying:(BOOL)isPlaying;
- (void)saveMicState:(NSInteger)type;
- (NSInteger)loadMicState;
@end
NS_ASSUME_NONNULL_END

View File

@@ -20,7 +20,6 @@
///
@property (nonatomic,strong) UserInfoModel *userInfo;
@property (nonatomic, assign) NSInteger micState;
@end
@implementation XPRoomMiniManager
@@ -30,7 +29,6 @@
static XPRoomMiniManager *instance;
dispatch_once(&onceToken, ^{
instance = [[XPRoomMiniManager alloc] init];
instance.micState = -1;
});
return instance;
}
@@ -81,7 +79,6 @@
- (void)resetLocalMessage {
[self.messageArray removeAllObjects];
self.micState = -1;
}
- (NSMutableArray *)messageArray {
@@ -91,15 +88,4 @@
return _messageArray;
}
- (void)saveMicState:(NSInteger)type {
self.micState = type;
}
- (NSInteger)loadMicState {
NSInteger state = self.micState;
self.micState = -1;
return state;
}
@end

View File

@@ -296,12 +296,15 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[XPSkillCardPlayerManager shareInstance].isInRoomFirstRecharge = NO;
[XPSkillCardPlayerManager shareInstance].isInRoom = NO;
[XPSkillCardPlayerManager shareInstance].roomUid = @"";
if([[XPRoomMiniManager shareManager] getRoomInfo]==nil){
[XPSkillCardPlayerManager shareInstance].isMineInMic = NO;
}
[[CountDownHelper shareHelper] stopCountDown];
[CountDownHelper shareHelper].delegate = nil;
[[NIMSDK sharedSDK].chatroomManager removeDelegate:self];
[[NIMSDK sharedSDK].chatManager removeDelegate:self];
[[NIMSDK sharedSDK].loginManager removeDelegate:self];
@@ -370,6 +373,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
}];
});
[self.presenter getBoomDetail:self.roomUid];
} target:self];
[[RoomBoomManager sharedManager] registerBoomGiftDisplay:^(id _Nonnull sth) {
@@ -734,13 +738,18 @@ XPCandyTreeInsufficientBalanceViewDelegate>
- (void)exitOldRoom {
NSString * roomUid = [NSString stringWithFormat:@"%ld", [XPRoomMiniManager shareManager].getRoomInfo.uid];
if (roomUid.integerValue > 0 && roomUid.integerValue != self.roomUid.integerValue) {
// 退
NSString * roomId = [NSString stringWithFormat:@"%ld", [XPRoomMiniManager shareManager].getRoomInfo.roomId];
[self.presenter exitNIMRoom:roomId];
[[RtcManager instance] exitRoom];
[[XPRoomMiniManager shareManager] resetLocalMessage];
[self.presenter reportUserOutRoom:roomUid];
if (roomUid.integerValue > 0) {
if ([roomUid isEqualToString:self.roomUid]) {
self.isMiniEnter = YES;
} else {
// 退
NSString * roomId = [NSString stringWithFormat:@"%ld", [XPRoomMiniManager shareManager].getRoomInfo.roomId];
[self.presenter exitNIMRoom:roomId];
[[RtcManager instance] exitRoom];
[[XPRoomMiniManager shareManager] resetLocalMessage];
[self.presenter reportUserOutRoom:roomUid];
[XPSkillCardPlayerManager shareInstance].micState = MICState_None;
}
}
}
-(BOOL)getIsMiniEnter{
@@ -1136,20 +1145,21 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self changeStageViewOnRoomUpdate];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {// 退
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
[[RtcManager instance] setLocalMuted:YES];
[self.menuContainerView onRoomMiniEntered];
}
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
@@ -1207,20 +1217,21 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {// 退
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
[[RtcManager instance] setLocalMuted:YES];
[self.menuContainerView onRoomMiniEntered];
}
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
@@ -1289,7 +1300,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
@@ -1298,6 +1309,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
//
[self.presenter enterNIMRoom:@(self.roomInfo.roomId).stringValue
@@ -1308,16 +1320,15 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
// PK 仿 2 roominfo functionView
// [self.menuContainerView onRoomMiniEntered];
// PK 仿 2 roominfo functionView
if (self.roomInfo.roomModeType == RoomModeType_Open_AcrossRoomPK_mode ||
self.roomInfo.roomModeType == RoomModeType_Open_PK_Mode) {
[self.functionView onRoomEntered];
}
[self.messageContainerView onRoomMiniEntered];
[[RtcManager instance] setLocalMuted:YES];
}
[self cleanMiniRoomStatues];
}
@@ -1402,6 +1413,8 @@ XPCandyTreeInsufficientBalanceViewDelegate>
} }
break;
}
[self.menuContainerView recheckMicState];
}
- (void)openRoomSuccess:(RoomInfoModel *)roomInfo {
@@ -1599,20 +1612,21 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {// 退
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
[[RtcManager instance] setLocalMuted:YES];
[self.menuContainerView onRoomMiniEntered];
}
[self cleanMiniRoomStatues];
@@ -2208,6 +2222,8 @@ XPCandyTreeInsufficientBalanceViewDelegate>
}
- (void)exitRoom {
[XPSkillCardPlayerManager shareInstance].micState = MICState_None;
[self.stageView exitRoom];
[self.menuContainerView menuResignFirstResponder];
[self.animationView resumeTimer];
@@ -2326,8 +2342,6 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[XPRoomMiniManager shareManager].curState = self.freeModel.curStage;
}
[[XPRoomMiniManager shareManager] saveMicState:[self.menuContainerView micState]];
[self.menuContainerView menuResignFirstResponder];
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(showRoomFirstChargeWindow) object:nil];
NSDictionary *roomInfoDic = self.roomInfo.model2dictionary != nil ? self.roomInfo.model2dictionary : @{};
@@ -2509,7 +2523,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
[self.littleGameView onRoomEntered];
@@ -2517,13 +2531,14 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
[[RtcManager instance] setLocalMuted:YES];
[self.menuContainerView onRoomMiniEntered];
}
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];

View File

@@ -8,6 +8,13 @@
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
typedef enum : NSUInteger {
MICState_None = 0,
MICState_Open = 1,
MICState_Close = 2,
MICState_Music = 3,
} MICState;
@interface XPSkillCardPlayerManager : NSObject
////获取已解锁照片id列表
@property(nonatomic,strong) NSMutableArray *photoIdList;
@@ -15,7 +22,6 @@
@property (nonatomic, strong) AVAudioPlayer *player;
///是否正在播放
@property (nonatomic,assign) BOOL isPlay;
///播放音量大小
@property (nonatomic, assign) CGFloat volume;
@property (nonatomic,assign) BOOL isInRoomFirstRecharge;
@@ -23,13 +29,16 @@
@property (nonatomic,assign) BOOL isInRoom;
///是否在房间控制器里,用于播放动画的判断
@property (nonatomic,assign) BOOL isInRoomVC;
///是否在首充不弹出界面
///所在房间的id
@property (nonatomic,copy) NSString *roomUid;
///我是否在上麦,在麦上时不能录音
@property (nonatomic,assign) BOOL isMineInMic;
// 用户在 mic 的状态
@property (nonatomic, assign) MICState micState;
+ (instancetype)shareInstance ;
/**

View File

@@ -40,6 +40,10 @@
return sharedInstance;
}
- (void)setMicState:(MICState)micState {
_micState = micState;
}
- (void)playerVoiceWithPath:(NSString *)filePath completionBlock:(void (^)(void))completionBlock{
[self playerMusicWithPath:filePath volume:1 loop:NO completionBlock:completionBlock];
}