练歌房

This commit is contained in:
启星
2025-11-04 09:13:09 +08:00
parent f0c82c3ac7
commit 4aa2fac912
25 changed files with 227 additions and 77 deletions

View File

@@ -22,6 +22,8 @@ typedef NS_ENUM(NSInteger) {
QXRoomSettingTypeRoomTypeFriend = 14,
/// 互娱
QXRoomSettingTypeRoomTypeFunny = 100,
/// 练歌房
QXRoomSettingTypeRoomTypeKSing = 200,
/// 常用工具
/// 房间补贴

View File

@@ -42,6 +42,9 @@
@property (nonatomic,strong)QXRoomSettingModel *roomTypeFriend;
///
@property (nonatomic,strong)QXRoomSettingModel *roomTypeFunny;
///
@property (nonatomic,strong)QXRoomSettingModel *roomTypeKSing;
///
@@ -178,14 +181,14 @@
// toolsArr = @[self.roomSubsidy,self.roomMessage,self.roomOrderMic,self.roomBgImage];
///
toolsArr = @[self.roomMessage,self.roomOrderMic,self.roomBgImage];
roomTypeArr = @[self.roomTypeSing,self.roomTypeAuction,self.roomTypeFunny,self.roomTypeFriend];
moreArr = @[self.redBag,self.roomVoiceSet,self.roomSetting,self.roomEffects,self.drifPop,self.roomReport];
roomTypeArr = @[self.roomTypeSing,self.roomTypeAuction,self.roomTypeFunny,self.roomTypeFriend,self.roomTypeKSing];
moreArr = @[self.redBag,self.roomSetting,self.roomEffects,self.drifPop,self.roomReport];
}else{
// toolsArr = @[self.roomSubsidy,self.roomMessage,self.roomOrderMic,self.roomBgMusic,self.roomBgImage];
///
toolsArr = @[self.roomMessage,self.roomOrderMic,self.roomBgImage];
roomTypeArr = @[self.roomTypeSing,self.roomTypeAuction,self.roomTypeFunny,self.roomTypeFriend];
moreArr = @[self.redBag,self.roomVoiceSet,self.roomSetting,self.roomEffects,self.drifPop,self.roomReport];
moreArr = @[self.redBag,self.roomSetting,self.roomEffects,self.drifPop,self.roomReport];
}
self.titles = @[QXText(@"房间类型"),QXText(@"常用工具"),QXText(@"更多操作")];
@@ -195,7 +198,7 @@
//
roomTypeArr = @[];
toolsArr = @[];
moreArr = @[self.redBag,self.roomVoiceSet,self.roomEffects,self.drifPop,self.roomReport];
moreArr = @[self.redBag,self.roomEffects,self.drifPop,self.roomReport];
self.titles = @[QXText(@"更多操作")];
}
break;
@@ -216,8 +219,8 @@
///
toolsArr = @[self.roomCompere,self.roomMessage,self.roomOrderMic,self.roomBgImage];
}
roomTypeArr = @[self.roomTypeSing,self.roomTypeAuction,self.roomTypeFunny,self.roomTypeFriend];
moreArr = @[self.redBag,self.roomVoiceSet,self.roomSetting,self.roomEffects,self.drifPop,self.roomReport];
roomTypeArr = @[self.roomTypeSing,self.roomTypeAuction,self.roomTypeFunny,self.roomTypeFriend,self.roomTypeKSing];
moreArr = @[self.redBag,self.roomSetting,self.roomEffects,self.drifPop,self.roomReport];
// roomTypeArr = @[self.roomTypeSing,self.roomTypeAuction,self.roomTypeBoy,self.roomTypeGirl,self.roomTypeFriend];
self.titles = @[QXText(@"房间类型"),QXText(@"常用工具"),QXText(@"更多操作")];
}
@@ -240,8 +243,8 @@
toolsArr = @[self.roomCompere,self.roomMessage,self.roomOrderMic,self.roomBgImage];
}
// roomTypeArr = @[self.roomTypeSing,self.roomTypeAuction,self.roomTypeBoy,self.roomTypeGirl,self.roomTypeFriend];
roomTypeArr = @[self.roomTypeSing,self.roomTypeAuction,self.roomTypeFunny,self.roomTypeFriend];
moreArr = @[self.redBag,self.roomVoiceSet,self.roomSetting,self.roomEffects,self.drifPop,self.roomReport];
roomTypeArr = @[self.roomTypeSing,self.roomTypeAuction,self.roomTypeFunny,self.roomTypeFriend,self.roomTypeKSing];
moreArr = @[self.redBag,self.roomSetting,self.roomEffects,self.drifPop,self.roomReport];
self.titles = @[QXText(@"房间类型"),QXText(@"常用工具"),QXText(@"更多操作")];
}
break;
@@ -322,14 +325,15 @@
// [self.welcomeView showInView:self.viewController.view];
return;
}
if (model.type == QXRoomSettingTypeRoomTypeAuction || model.type == QXRoomSettingTypeRoomTypeSing || model.type == QXRoomSettingTypeRoomTypeBoy || model.type == QXRoomSettingTypeRoomTypeGirl || model.type == QXRoomSettingTypeRoomTypeFriend || model.type == QXRoomSettingTypeRoomTypeFunny) {
if (model.type == QXRoomSettingTypeRoomTypeAuction || model.type == QXRoomSettingTypeRoomTypeSing || model.type == QXRoomSettingTypeRoomTypeBoy || model.type == QXRoomSettingTypeRoomTypeGirl || model.type == QXRoomSettingTypeRoomTypeFriend || model.type == QXRoomSettingTypeRoomTypeFunny || model.type == QXRoomSettingTypeRoomTypeKSing) {
self.alertView.message = [NSString stringWithFormat:@"您确定要修改为%@房吗?",model.name];
[[QXGlobal shareGlobal] showView:self.alertView controller:self.viewController popType:(PopViewTypeTopToCenter) tapDismiss:NO finishBlock:^{
}];
MJWeakSelf
@weakify(self)
self.alertView.commitBlock = ^{
[weakSelf changeRoomType:model.type];
@strongify(self)
[self changeRoomType:model.type];
};
return;
}
@@ -339,6 +343,14 @@
}
-(void)changeRoomType:(QXRoomSettingType)roomType{
if (roomType == QXRoomSettingTypeRoomTypeKSing) {
[QXMineNetwork agreeApplySongWithRoomId:self.roomModel.room_info.room_id type:@"1" successBlock:^(NSDictionary * _Nonnull dict) {
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
showToast(msg);
}];
return;
}
NSString *type = @"";
if (roomType == QXRoomSettingTypeRoomTypeAuction) {
type = @"2";
@@ -385,6 +397,15 @@
}
return _roomTypeSing;
}
-(QXRoomSettingModel *)roomTypeKSing{
if (!_roomTypeKSing) {
_roomTypeKSing = [[QXRoomSettingModel alloc] init];
_roomTypeKSing.name = QXText(@"练歌");
_roomTypeKSing.icon = @"room_set_room_type_k_sing";
_roomTypeKSing.type = QXRoomSettingTypeRoomTypeKSing;
}
return _roomTypeKSing;
}
-(QXRoomSettingModel *)roomTypeAuction{
if (!_roomTypeAuction) {
_roomTypeAuction = [[QXRoomSettingModel alloc] init];

View File

@@ -7,9 +7,13 @@
#import <UIKit/UIKit.h>
#import "QXRoomSettingView.h"
#import <AgoraRtcKit/AgoraEnumerates.h>
NS_ASSUME_NONNULL_BEGIN
@interface QXSingerConfigView : UIView
@property(nonatomic,assign)double playerRatio;
@property(nonatomic,assign)double renshengRatio;
@property (nonatomic, assign)AgoraAudioEffectPreset currentVoiceStyle;
-(void)showInView:(UIView *)view;
@end

View File

@@ -85,7 +85,7 @@
self.voiceLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.titleLabel.left, self.titleLabel.bottom+20, 160, 21)];
self.voiceLabel.font = [UIFont systemFontOfSize:14];
self.voiceLabel.text = QXText(@"人声 100%");
// self.voiceLabel.text = QXText(@"人声 100%");
self.voiceLabel.textColor = RGB16A(0xffffff, 1);
[self.bgView addSubview:self.voiceLabel];
@@ -102,8 +102,7 @@
self.musicLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.titleLabel.left, self.voiceSliser.bottom+12, 160, 21)];
self.musicLabel.font = [UIFont systemFontOfSize:14];
float musicVolume = [[QXAgoraEngine sharedEngine] ktv_GetBanzouVolume];
self.musicLabel.text = [NSString stringWithFormat:@"%@ %d",QXText(@"伴奏"),(int)musicVolume*100];
// self.musicLabel.text = [NSString stringWithFormat:@"%@ %d",QXText(@"伴奏"),(int)musicVolume*100];
self.musicLabel.textColor = RGB16A(0xffffff, 1);
[self.bgView addSubview:self.musicLabel];
@@ -112,7 +111,7 @@
[self.musicSliser addTarget:self action:@selector(musicSliderAction:) forControlEvents:(UIControlEventValueChanged)];
self.musicSliser.minimumValue = 0;
self.musicSliser.maximumValue = 100;
self.musicSliser.value = musicVolume*100;
self.musicSliser.value = 50;
self.musicSliser.minimumTrackTintColor = QXConfig.themeColor;
self.musicSliser.maximumTrackTintColor = [UIColor whiteColor];
self.musicSliser.thumbTintColor = QXConfig.themeColor;
@@ -198,7 +197,48 @@
self.voiceEffectLabel.font = [UIFont systemFontOfSize:14];
self.voiceEffectLabel.text = [NSString stringWithFormat:@"%@",QXText(@"混响")];
self.voiceEffectLabel.textColor = RGB16A(0xffffff, 1);
self.audioModel = self.audioArray.firstObject;
self.audioModel.isSelected = YES;
}
-(void)setRenshengRatio:(double)renshengRatio{
_renshengRatio = renshengRatio;
NSInteger sliderValue = (int)(renshengRatio*100);
NSString *value = [NSString stringWithFormat:@"%ld",(long)sliderValue];
self.voiceLabel.text = [NSString stringWithFormat:@"%@ %@%%",QXText(@"人声"),value];
self.voiceSliser.value = sliderValue;
}
-(void)setPlayerRatio:(double)playerRatio{
_playerRatio = playerRatio;
NSInteger sliderValue = (int)(playerRatio*100);
NSString *value = [NSString stringWithFormat:@"%ld",(long)sliderValue];
self.musicLabel.text = [NSString stringWithFormat:@"%@ %@%%",QXText(@"伴奏"),value];
self.musicSliser.value = sliderValue;
}
-(void)setCurrentVoiceStyle:(AgoraAudioEffectPreset)currentVoiceStyle{
_currentVoiceStyle = currentVoiceStyle;
for (QXRoomSettingModel *md in self.audioArray) {
md.isSelected = NO;
}
switch (currentVoiceStyle) {
case AgoraAudioEffectPresetOff:
self.audioModel = self.audioArray.firstObject;
self.audioModel.isSelected = YES;
break;
case AgoraAudioEffectPresetRoomAcousPhonograph:
self.audioModel = self.audioArray[1];
self.audioModel.isSelected = YES;
break;
case AgoraAudioEffectPresetRoomAcousticsKTV:
self.audioModel = self.audioArray.lastObject;
self.audioModel.isSelected = YES;
break;
default:
break;
}
[self.collectionView reloadData];
}
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
return 1;
@@ -241,28 +281,28 @@
QXRoomSettingModel *model;
if (indexPath.section == 0) {
if (indexPath.row == 0) {
[[QXAgoraEngine sharedEngine].agoraKit setAudioEffectPreset:AgoraAudioEffectPresetOff];
[[QXAgoraEngine sharedEngine] ktv_setAudioEffectPreset:AgoraAudioEffectPresetOff];
}else if(indexPath.row == 1){
[[QXAgoraEngine sharedEngine].agoraKit setAudioEffectPreset:AgoraAudioEffectPresetRoomAcousPhonograph];
[[QXAgoraEngine sharedEngine] ktv_setAudioEffectPreset:AgoraAudioEffectPresetRoomAcousPhonograph];
}else if(indexPath.row == 2){
[[QXAgoraEngine sharedEngine].agoraKit setAudioEffectPreset:AgoraAudioEffectPresetRoomAcous3DVoice];
[[QXAgoraEngine sharedEngine] ktv_setAudioEffectPreset:AgoraAudioEffectPresetRoomAcous3DVoice];
}else if(indexPath.row == 3){
[[QXAgoraEngine sharedEngine].agoraKit setAudioEffectPreset:AgoraAudioEffectPresetRoomAcousVirtualSurroundSound];
[[QXAgoraEngine sharedEngine] ktv_setAudioEffectPreset:AgoraAudioEffectPresetRoomAcousVirtualSurroundSound];
}else if(indexPath.row == 4){
[[QXAgoraEngine sharedEngine].agoraKit setAudioEffectPreset:AgoraAudioEffectPresetRoomAcousticsKTV];
[[QXAgoraEngine sharedEngine] ktv_setAudioEffectPreset:AgoraAudioEffectPresetRoomAcousticsKTV];
}
model = self.audioArray[indexPath.row];
}else{
if (indexPath.row == 0) {
[[QXAgoraEngine sharedEngine].agoraKit setAudioEffectPreset:AgoraAudioEffectPresetVoiceChangerEffectOldMan];
[[QXAgoraEngine sharedEngine] ktv_setAudioEffectPreset:AgoraAudioEffectPresetVoiceChangerEffectOldMan];
}else if(indexPath.row == 1){
[[QXAgoraEngine sharedEngine].agoraKit setAudioEffectPreset:AgoraAudioEffectPresetVoiceChangerEffectPigKin];
[[QXAgoraEngine sharedEngine] ktv_setAudioEffectPreset:AgoraAudioEffectPresetVoiceChangerEffectPigKin];
}else if(indexPath.row == 2){
[[QXAgoraEngine sharedEngine].agoraKit setAudioEffectPreset:AgoraAudioEffectPresetVoiceChangerEffectUncle];
[[QXAgoraEngine sharedEngine] ktv_setAudioEffectPreset:AgoraAudioEffectPresetVoiceChangerEffectUncle];
}else if(indexPath.row == 3){
[[QXAgoraEngine sharedEngine].agoraKit setAudioEffectPreset:AgoraAudioEffectPresetVoiceChangerEffectBoy];
[[QXAgoraEngine sharedEngine] ktv_setAudioEffectPreset:AgoraAudioEffectPresetVoiceChangerEffectBoy];
}else if(indexPath.row == 4){
[[QXAgoraEngine sharedEngine].agoraKit setAudioEffectPreset:AgoraAudioEffectPresetVoiceChangerEffectGirl];
[[QXAgoraEngine sharedEngine] ktv_setAudioEffectPreset:AgoraAudioEffectPresetVoiceChangerEffectGirl];
}
model = self.voiceArray[indexPath.row];
}