练歌房

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

@@ -63,7 +63,12 @@ typedef void(^SearchSongBlock)(NSArray<AgoraMusic *> *songList,BOOL isReload);
@property (nonatomic, strong) id<AgoraMusicPlayerProtocol> ktvPlayer;
@property(nonatomic, assign) NSInteger playPosition;//播放进度
@property(nonatomic, assign) BOOL isErfan;
@property(nonatomic, assign) NSInteger renshengVolume;//采集音量,取值范围为 [0,400]默认100
/// 下面三个属性为k歌房使用
@property(nonatomic, assign,readonly) double renshengRatio;//采集音量,取值范围为 [0,400]默认100
@property(nonatomic, assign,readonly) double playerRatio;//采集音量,取值范围为 [0,400]默认100
//播放音效
@property (nonatomic, assign,readonly)AgoraAudioEffectPreset currentVoiceStyle;
@property(nonatomic, assign) BOOL useMicrophone;
/// 当前是否为开麦状态
@@ -182,9 +187,10 @@ typedef void(^SearchSongBlock)(NSArray<AgoraMusic *> *songList,BOOL isReload);
- (void)setLocalVoiceReverbKTV;
//设置录音棚
- (void)setLocalVoiceReverbRecordingStudio;
//播放音效
@property (nonatomic, assign)NSInteger CurrentVoiceStyle;
/// 设置音色
- (int)ktv_setAudioEffectPreset:(AgoraAudioEffectPreset)prese;
/// 重置ktv声音及伴奏
- (void)ktv_resetVoice;
-(void)startScreenCapture;

View File

@@ -31,6 +31,9 @@
@property (nonatomic , strong)RPSystemBroadcastPickerView *systemBroadcastPicker;
@property (nonatomic , strong)AgoraRtcChannelMediaOptions *option;
@property (nonatomic , assign) BOOL isOpenMic;
@property(nonatomic, assign) double renshengRatio;
@property(nonatomic, assign) double playerRatio;
@property (nonatomic, assign)AgoraAudioEffectPreset currentVoiceStyle;
@end
@implementation QXAgoraEngine
@@ -51,6 +54,9 @@
//
- (void)initializeAgoraEngine {
self.renshengRatio = 0.5;
self.playerRatio = 0.5;
self.currentVoiceStyle = AgoraAudioEffectPresetOff;
self.agoraKit = [AgoraRtcEngineKit sharedEngineWithAppId:AgoraAuthId delegate:self];
[self.agoraKit enableAudioVolumeIndication:200 smooth:3 reportVad:NO];
[self.agoraKit getCurrentMonotonicTimeInMs];
@@ -503,7 +509,7 @@
//使
_ktvPlayer = [_ktvAmcc createMusicPlayerWithDelegate:self];
[self ktv_resetVoice];
}
- (void)ktv_DestoryKtvPlayer{
@@ -706,24 +712,32 @@
-(void)ktv_SetRenshengVolume:(float)ratio {
int volume = ratio*400;
self.renshengVolume = volume;
int volume = ratio*200;
self.renshengRatio = ratio;
// if (self.useMicrophone) {
[self.agoraKit adjustRecordingSignalVolume:volume];
// }
}
-(void)ktv_SetBanzouVolume:(float)ratio {
int volume = ratio*100;
int volume = ratio*200;
self.playerRatio = ratio;
[self.ktvPlayer adjustPlayoutVolume:volume];
[self.ktvPlayer adjustPublishSignalVolume:volume];
[self.ktvPlayer adjustPublishSignalVolume:volume/2];
}
-(float)ktv_GetBanzouVolume {
int volume = [self.ktvPlayer getPlayoutVolume];
// [self.agoraKit getAudioMixingPlayoutVolume];
return volume/100.0;
}
-(int)ktv_setAudioEffectPreset:(AgoraAudioEffectPreset)prese{
self.currentVoiceStyle = prese;
return [[QXAgoraEngine sharedEngine].agoraKit setAudioEffectPreset:prese];
}
-(void)ktv_resetVoice{
[self ktv_SetRenshengVolume:0.5];
[self ktv_SetBanzouVolume:0.5];
[self ktv_setAudioEffectPreset:AgoraAudioEffectPresetOff];
}
-(NSMutableArray *)bgMusicArray{
if (!_bgMusicArray) {
_bgMusicArray = [NSMutableArray array];

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "room_set_room_type_k_sing@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "room_set_room_type_k_sing@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "Group 7286@2x.png",
"filename" : "room_song_original_nor@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 7286@3x.png",
"filename" : "room_song_original_nor@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "room_song_voice@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "room_song_voice@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -633,7 +633,7 @@ QXRoomUserInfoViewDelegate
hasPK = YES;
}
BOOL hasSong = NO;
if ((self.roomModel.room_info.type_id.intValue == 1) && self.roomModel.room_info.label_id.intValue == 1) {
if ((self.roomModel.room_info.type_id.intValue == 1) && self.roomModel.room_info.label_id.intValue == 2) {
hasSong = YES;
}
/// pk

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];
}

View File

@@ -14,6 +14,7 @@
#import "QXSongSeatCell.h"
#import "QXMineNetwork.h"
#import "QXRoomUserInfoView.h"
#import "QXSingerConfigView.h"
@import AgoraLyricsScore;
@@ -39,9 +40,12 @@ QXRoomSeatDelegate
///
@property (nonatomic,strong)UIButton *nextBtn;
///
@property (nonatomic,strong)UIButton *endBtn;
//@property (nonatomic,strong)UIButton *endBtn;
///
@property (nonatomic,strong)UIButton *giveBtn;
///
@property (nonatomic,strong)UIButton *voiceBtn;
/// k
//@property (nonatomic,strong)UIButton *ktvConifgBtn;
///
@@ -62,7 +66,7 @@ QXRoomSeatDelegate
@property (nonatomic,strong)QXRoomUserInfoView *userInfoView;
@property (nonatomic,strong)QXSingerConfigView *voiceConifgView;
@end
@implementation QXRoomSeatTypeSongView
@@ -184,7 +188,8 @@ QXRoomSeatDelegate
[self.leftBgView addSubview:self.originalBtn];
[self.leftBgView addSubview:self.giveBtn];
[self.leftBgView addSubview:self.nextBtn];
[self.leftBgView addSubview:self.endBtn];
// [self.leftBgView addSubview:self.endBtn];
[self.leftBgView addSubview:self.voiceBtn];
// self.ktvConifgBtn.hidden = YES;
// [self.leftBgView addSubview:self.ktvConifgBtn];
[self.leftBgView addSubview:self.tipsLabel];
@@ -386,19 +391,22 @@ QXRoomSeatDelegate
self.originalBtn.frame = CGRectMake(self.leftBgView.width-12-35, self.singerSeatView.bottom+5, 50, 35);
self.giveBtn.frame = CGRectMake(self.originalBtn.left, self.originalBtn.bottom+5, 50, 35);
self.nextBtn.frame = CGRectMake(self.originalBtn.left, self.giveBtn.bottom+5, 50, 35);
self.endBtn.frame = CGRectMake(self.originalBtn.left, self.nextBtn.bottom+5, 50, 35);
// self.endBtn.frame = CGRectMake(self.originalBtn.left, self.nextBtn.bottom+5, 50, 35);
// self.ktvConifgBtn.frame = CGRectMake(self.originalBtn.left, self.nextBtn.bottom+5, 50, 35);
self.voiceBtn.frame = CGRectMake(self.originalBtn.left, self.nextBtn.bottom+5, 50, 35);
self.originalBtn.centerX = self.singerSeatView.centerX;
self.giveBtn.centerX = self.singerSeatView.centerX;
self.nextBtn.centerX = self.singerSeatView.centerX;
self.endBtn.centerX = self.singerSeatView.centerX;
// self.endBtn.centerX = self.singerSeatView.centerX;
self.voiceBtn.centerX = self.singerSeatView.centerX;
// self.ktvConifgBtn.centerX = self.singerSeatView.centerX;
[self.originalBtn qx_layoutButtonNOSizeToFitWithEdgeInsetsStyle:(QXButtonEdgeInsetsStyleTop) imageTitleSpace:2];
[self.giveBtn qx_layoutButtonNOSizeToFitWithEdgeInsetsStyle:(QXButtonEdgeInsetsStyleTop) imageTitleSpace:2];
[self.nextBtn qx_layoutButtonNOSizeToFitWithEdgeInsetsStyle:(QXButtonEdgeInsetsStyleTop) imageTitleSpace:2];
[self.endBtn qx_layoutButtonNOSizeToFitWithEdgeInsetsStyle:(QXButtonEdgeInsetsStyleTop) imageTitleSpace:2];
// [self.endBtn qx_layoutButtonNOSizeToFitWithEdgeInsetsStyle:(QXButtonEdgeInsetsStyleTop) imageTitleSpace:2];
[self.voiceBtn qx_layoutButtonNOSizeToFitWithEdgeInsetsStyle:(QXButtonEdgeInsetsStyleTop) imageTitleSpace:2];
// [self.ktvConifgBtn qx_layoutButtonNOSizeToFitWithEdgeInsetsStyle:(QXButtonEdgeInsetsStyleTop) imageTitleSpace:2];
self.compereView.frame = CGRectMake(self.width-10-ScaleWidth(52), 0, ScaleWidth(52), 51+ScaleWidth(52-10));
@@ -646,7 +654,12 @@ QXRoomSeatDelegate
}];
}
-(void)voiceAction{
self.voiceConifgView.playerRatio = QXAgoraEngine.sharedEngine.playerRatio;
self.voiceConifgView.renshengRatio = QXAgoraEngine.sharedEngine.renshengRatio;
self.voiceConifgView.currentVoiceStyle = QXAgoraEngine.sharedEngine.currentVoiceStyle;
[self.voiceConifgView showInView:KEYWINDOW];
}
-(void)setSongInfo:(QXSongListModel *)songInfo{
[self.singerSeatView stopAudioAnimation];
@@ -670,6 +683,8 @@ QXRoomSeatDelegate
}
self.originalBtn.selected = NO;
}else{
///
[[QXAgoraEngine sharedEngine] ktv_resetVoice];
if (self.myPitNumber > 0) {
}else{
@@ -729,31 +744,22 @@ QXRoomSeatDelegate
self.nextBtn.hidden = NO;
self.nextBtn.top = self.originalBtn.bottom+5;
if (self.myPitNumber == 9) {
/// K
self.endBtn.hidden = NO;
self.endBtn.top = self.nextBtn.bottom+5;
// self.ktvConifgBtn.hidden = NO;
// self.ktvConifgBtn.top = self.endBtn.bottom+5;
}else{
self.endBtn.hidden = YES;
// K
// self.ktvConifgBtn.hidden = NO;
// self.ktvConifgBtn.top = self.nextBtn.bottom+5;
}
self.voiceBtn.hidden = NO;
self.voiceBtn.top = self.nextBtn.bottom+5;
}else{
self.voiceBtn.hidden = YES;
if (songInfo == nil) {
if (self.myPitNumber == 9) {
///
self.originalBtn.hidden = YES;
self.giveBtn.hidden = YES;
self.nextBtn.hidden = YES;
self.endBtn.hidden = NO;
// self.endBtn.hidden = NO;
}else{
self.originalBtn.hidden = YES;
self.giveBtn.hidden = YES;
self.nextBtn.hidden = YES;
self.endBtn.hidden = YES;
// self.endBtn.hidden = YES;
}
}else{
@@ -766,13 +772,10 @@ QXRoomSeatDelegate
///
self.nextBtn.hidden = NO;
self.nextBtn.top = self.giveBtn.bottom+5;
self.endBtn.hidden = NO;
self.endBtn.top = self.nextBtn.bottom+5;
}else{
// self.ktvConifgBtn.hidden = YES;
self.originalBtn.hidden = YES;
self.nextBtn.hidden = YES;
self.endBtn.hidden = YES;
}
}
@@ -817,7 +820,7 @@ QXRoomSeatDelegate
[_originalBtn setTitle:QXText(@"伴奏") forState:(UIControlStateNormal)];
[_originalBtn setTitle:QXText(@"原唱") forState:(UIControlStateSelected)];
[_originalBtn setTitleColor:UIColor.whiteColor forState:(UIControlStateNormal)];
[_originalBtn setTitleColor:QXConfig.themeColor forState:(UIControlStateSelected)];
[_originalBtn setTitleColor:RGB16(0xffffff) forState:(UIControlStateSelected)];
_originalBtn.titleLabel.font = [UIFont systemFontOfSize:12];
[_originalBtn addTarget:self action:@selector(originalAction:) forControlEvents:(UIControlEventTouchUpInside)];
}
@@ -828,7 +831,7 @@ QXRoomSeatDelegate
_giveBtn = [[UIButton alloc] init];
[_giveBtn setImage:[UIImage imageNamed:@"room_song_give"] forState:(UIControlStateNormal)];
[_giveBtn setTitle:QXText(@"打赏") forState:(UIControlStateNormal)];
[_giveBtn setTitleColor:QXConfig.themeColor forState:(UIControlStateNormal)];
[_giveBtn setTitleColor:RGB16(0xffffff) forState:(UIControlStateNormal)];
[_giveBtn addTarget:self action:@selector(giveAction) forControlEvents:(UIControlEventTouchUpInside)];
_giveBtn.titleLabel.font = [UIFont systemFontOfSize:12];
}
@@ -839,22 +842,33 @@ QXRoomSeatDelegate
_nextBtn = [[UIButton alloc] init];
[_nextBtn setImage:[UIImage imageNamed:@"room_song_next"] forState:(UIControlStateNormal)];
[_nextBtn setTitle:QXText(@"切歌") forState:(UIControlStateNormal)];
[_nextBtn setTitleColor:QXConfig.themeColor forState:(UIControlStateNormal)];
[_nextBtn setTitleColor:RGB16(0xffffff) forState:(UIControlStateNormal)];
_nextBtn.titleLabel.font = [UIFont systemFontOfSize:12];
[_nextBtn addTarget:self action:@selector(nextAction) forControlEvents:(UIControlEventTouchUpInside)];
}
return _nextBtn;
}
-(UIButton *)endBtn{
if (!_endBtn) {
_endBtn = [[UIButton alloc] init];
[_endBtn setImage:[UIImage imageNamed:@"room_song_close"] forState:(UIControlStateNormal)];
[_endBtn setTitle:QXText(@"结束") forState:(UIControlStateNormal)];
[_endBtn setTitleColor:QXConfig.themeColor forState:(UIControlStateNormal)];
_endBtn.titleLabel.font = [UIFont systemFontOfSize:12];
[_endBtn addTarget:self action:@selector(endAction) forControlEvents:(UIControlEventTouchUpInside)];
//-(UIButton *)endBtn{
// if (!_endBtn) {
// _endBtn = [[UIButton alloc] init];
// [_endBtn setImage:[UIImage imageNamed:@"room_song_close"] forState:(UIControlStateNormal)];
// [_endBtn setTitle:QXText(@"结束") forState:(UIControlStateNormal)];
// [_endBtn setTitleColor:QXConfig.themeColor forState:(UIControlStateNormal)];
// _endBtn.titleLabel.font = [UIFont systemFontOfSize:12];
// [_endBtn addTarget:self action:@selector(endAction) forControlEvents:(UIControlEventTouchUpInside)];
// }
// return _endBtn;
//}
-(UIButton *)voiceBtn{
if (!_voiceBtn) {
_voiceBtn = [[UIButton alloc] init];
[_voiceBtn setImage:[UIImage imageNamed:@"room_song_voice"] forState:(UIControlStateNormal)];
[_voiceBtn setTitle:QXText(@"调音台") forState:(UIControlStateNormal)];
[_voiceBtn setTitleColor:RGB16(0xffffff) forState:(UIControlStateNormal)];
_voiceBtn.titleLabel.font = [UIFont systemFontOfSize:12];
[_voiceBtn addTarget:self action:@selector(voiceAction) forControlEvents:(UIControlEventTouchUpInside)];
}
return _endBtn;
return _voiceBtn;
}
//-(UIButton *)ktvConifgBtn{
// if (!_ktvConifgBtn) {
@@ -895,5 +909,10 @@ QXRoomSeatDelegate
}
return _leftBgImageView;
}
-(QXSingerConfigView *)voiceConifgView{
if (!_voiceConifgView) {
_voiceConifgView = [[QXSingerConfigView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
}
return _voiceConifgView;
}
@end