diff --git a/QXLive/Manager/QXAgoraEngine.h b/QXLive/Manager/QXAgoraEngine.h index 089225e..3937c71 100755 --- a/QXLive/Manager/QXAgoraEngine.h +++ b/QXLive/Manager/QXAgoraEngine.h @@ -63,7 +63,12 @@ typedef void(^SearchSongBlock)(NSArray *songList,BOOL isReload); @property (nonatomic, strong) id 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 *songList,BOOL isReload); - (void)setLocalVoiceReverbKTV; //设置录音棚 - (void)setLocalVoiceReverbRecordingStudio; -//播放音效 -@property (nonatomic, assign)NSInteger CurrentVoiceStyle; - +/// 设置音色 +- (int)ktv_setAudioEffectPreset:(AgoraAudioEffectPreset)prese; +/// 重置ktv声音及伴奏 +- (void)ktv_resetVoice; -(void)startScreenCapture; diff --git a/QXLive/Manager/QXAgoraEngine.m b/QXLive/Manager/QXAgoraEngine.m index 15c9e66..651c1bc 100755 --- a/QXLive/Manager/QXAgoraEngine.m +++ b/QXLive/Manager/QXAgoraEngine.m @@ -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]; diff --git a/QXLive/Other/Assets.xcassets/room/room_set_room_type_k_sing.imageset/Contents.json b/QXLive/Other/Assets.xcassets/room/room_set_room_type_k_sing.imageset/Contents.json new file mode 100644 index 0000000..f5cec56 --- /dev/null +++ b/QXLive/Other/Assets.xcassets/room/room_set_room_type_k_sing.imageset/Contents.json @@ -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 + } +} diff --git a/QXLive/Other/Assets.xcassets/room/room_set_room_type_k_sing.imageset/room_set_room_type_k_sing@2x.png b/QXLive/Other/Assets.xcassets/room/room_set_room_type_k_sing.imageset/room_set_room_type_k_sing@2x.png new file mode 100644 index 0000000..99fa55e Binary files /dev/null and b/QXLive/Other/Assets.xcassets/room/room_set_room_type_k_sing.imageset/room_set_room_type_k_sing@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/room/room_set_room_type_k_sing.imageset/room_set_room_type_k_sing@3x.png b/QXLive/Other/Assets.xcassets/room/room_set_room_type_k_sing.imageset/room_set_room_type_k_sing@3x.png new file mode 100644 index 0000000..98f57b4 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/room/room_set_room_type_k_sing.imageset/room_set_room_type_k_sing@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/room/room_song_give.imageset/room_song_give@2x.png b/QXLive/Other/Assets.xcassets/room/room_song_give.imageset/room_song_give@2x.png index 5b24d39..215af94 100644 Binary files a/QXLive/Other/Assets.xcassets/room/room_song_give.imageset/room_song_give@2x.png and b/QXLive/Other/Assets.xcassets/room/room_song_give.imageset/room_song_give@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/room/room_song_give.imageset/room_song_give@3x.png b/QXLive/Other/Assets.xcassets/room/room_song_give.imageset/room_song_give@3x.png index 3173d5f..0187b49 100644 Binary files a/QXLive/Other/Assets.xcassets/room/room_song_give.imageset/room_song_give@3x.png and b/QXLive/Other/Assets.xcassets/room/room_song_give.imageset/room_song_give@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/room/room_song_next.imageset/room_song_next@2x.png b/QXLive/Other/Assets.xcassets/room/room_song_next.imageset/room_song_next@2x.png index 813e28f..6aac192 100644 Binary files a/QXLive/Other/Assets.xcassets/room/room_song_next.imageset/room_song_next@2x.png and b/QXLive/Other/Assets.xcassets/room/room_song_next.imageset/room_song_next@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/room/room_song_next.imageset/room_song_next@3x.png b/QXLive/Other/Assets.xcassets/room/room_song_next.imageset/room_song_next@3x.png index 0bf5f8f..9fbec43 100644 Binary files a/QXLive/Other/Assets.xcassets/room/room_song_next.imageset/room_song_next@3x.png and b/QXLive/Other/Assets.xcassets/room/room_song_next.imageset/room_song_next@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/Contents.json b/QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/Contents.json index be0e9d8..ab57f9b 100644 --- a/QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/Contents.json +++ b/QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/Contents.json @@ -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" } diff --git a/QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/Group 7286@2x.png b/QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/Group 7286@2x.png deleted file mode 100644 index 719783f..0000000 Binary files a/QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/Group 7286@2x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/Group 7286@3x.png b/QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/Group 7286@3x.png deleted file mode 100644 index ca58de8..0000000 Binary files a/QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/Group 7286@3x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/room_song_original_nor@2x.png b/QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/room_song_original_nor@2x.png new file mode 100644 index 0000000..ffbf931 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/room_song_original_nor@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/room_song_original_nor@3x.png b/QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/room_song_original_nor@3x.png new file mode 100644 index 0000000..8264844 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/room_song_original_nor@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/room/room_song_original_sel.imageset/room_song_original_sel@2x.png b/QXLive/Other/Assets.xcassets/room/room_song_original_sel.imageset/room_song_original_sel@2x.png index e067b7b..a31c1a5 100644 Binary files a/QXLive/Other/Assets.xcassets/room/room_song_original_sel.imageset/room_song_original_sel@2x.png and b/QXLive/Other/Assets.xcassets/room/room_song_original_sel.imageset/room_song_original_sel@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/room/room_song_original_sel.imageset/room_song_original_sel@3x.png b/QXLive/Other/Assets.xcassets/room/room_song_original_sel.imageset/room_song_original_sel@3x.png index 6fb06b9..a3df2ad 100644 Binary files a/QXLive/Other/Assets.xcassets/room/room_song_original_sel.imageset/room_song_original_sel@3x.png and b/QXLive/Other/Assets.xcassets/room/room_song_original_sel.imageset/room_song_original_sel@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/room/room_song_voice.imageset/Contents.json b/QXLive/Other/Assets.xcassets/room/room_song_voice.imageset/Contents.json new file mode 100644 index 0000000..f5c101b --- /dev/null +++ b/QXLive/Other/Assets.xcassets/room/room_song_voice.imageset/Contents.json @@ -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 + } +} diff --git a/QXLive/Other/Assets.xcassets/room/room_song_voice.imageset/room_song_voice@2x.png b/QXLive/Other/Assets.xcassets/room/room_song_voice.imageset/room_song_voice@2x.png new file mode 100644 index 0000000..937ad97 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/room/room_song_voice.imageset/room_song_voice@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/room/room_song_voice.imageset/room_song_voice@3x.png b/QXLive/Other/Assets.xcassets/room/room_song_voice.imageset/room_song_voice@3x.png new file mode 100644 index 0000000..202a7bc Binary files /dev/null and b/QXLive/Other/Assets.xcassets/room/room_song_voice.imageset/room_song_voice@3x.png differ diff --git a/QXLive/Room(房间)/Controller/QXRoomViewController.m b/QXLive/Room(房间)/Controller/QXRoomViewController.m index 09d4b22..8811d9b 100644 --- a/QXLive/Room(房间)/Controller/QXRoomViewController.m +++ b/QXLive/Room(房间)/Controller/QXRoomViewController.m @@ -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 diff --git a/QXLive/Room(房间)/View/设置/QXRoomSettingView.h b/QXLive/Room(房间)/View/设置/QXRoomSettingView.h index ae4ca12..3488660 100644 --- a/QXLive/Room(房间)/View/设置/QXRoomSettingView.h +++ b/QXLive/Room(房间)/View/设置/QXRoomSettingView.h @@ -22,6 +22,8 @@ typedef NS_ENUM(NSInteger) { QXRoomSettingTypeRoomTypeFriend = 14, /// 互娱 QXRoomSettingTypeRoomTypeFunny = 100, + /// 练歌房 + QXRoomSettingTypeRoomTypeKSing = 200, /// 常用工具 /// 房间补贴 diff --git a/QXLive/Room(房间)/View/设置/QXRoomSettingView.m b/QXLive/Room(房间)/View/设置/QXRoomSettingView.m index 4a33d30..9dcd606 100644 --- a/QXLive/Room(房间)/View/设置/QXRoomSettingView.m +++ b/QXLive/Room(房间)/View/设置/QXRoomSettingView.m @@ -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]; diff --git a/QXLive/Room(房间)/View/设置/QXSingerConfigView.h b/QXLive/Room(房间)/View/设置/QXSingerConfigView.h index 5720f1d..1a40ea6 100644 --- a/QXLive/Room(房间)/View/设置/QXSingerConfigView.h +++ b/QXLive/Room(房间)/View/设置/QXSingerConfigView.h @@ -7,9 +7,13 @@ #import #import "QXRoomSettingView.h" +#import 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 diff --git a/QXLive/Room(房间)/View/设置/QXSingerConfigView.m b/QXLive/Room(房间)/View/设置/QXSingerConfigView.m index 268f620..d17c4c4 100644 --- a/QXLive/Room(房间)/View/设置/QXSingerConfigView.m +++ b/QXLive/Room(房间)/View/设置/QXSingerConfigView.m @@ -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]; } diff --git a/QXLive/Room(房间)/View/麦位视图/QXRoomSeatTypeSongView.m b/QXLive/Room(房间)/View/麦位视图/QXRoomSeatTypeSongView.m index b070fab..1786fde 100644 --- a/QXLive/Room(房间)/View/麦位视图/QXRoomSeatTypeSongView.m +++ b/QXLive/Room(房间)/View/麦位视图/QXRoomSeatTypeSongView.m @@ -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