From 4aa2fac91218d20bf56ed34939b0c6d2f5af42c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=AF=E6=98=9F?= Date: Tue, 4 Nov 2025 09:13:09 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=83=E6=AD=8C=E6=88=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- QXLive/Manager/QXAgoraEngine.h | 14 ++- QXLive/Manager/QXAgoraEngine.m | 28 ++++-- .../Contents.json | 22 +++++ .../room_set_room_type_k_sing@2x.png | Bin 0 -> 7329 bytes .../room_set_room_type_k_sing@3x.png | Bin 0 -> 15170 bytes .../room_song_give@2x.png | Bin 2045 -> 2820 bytes .../room_song_give@3x.png | Bin 3862 -> 5714 bytes .../room_song_next@2x.png | Bin 1128 -> 1841 bytes .../room_song_next@3x.png | Bin 2002 -> 3523 bytes .../Contents.json | 4 +- .../Group 7286@2x.png | Bin 1095 -> 0 bytes .../Group 7286@3x.png | Bin 2044 -> 0 bytes .../room_song_original_nor@2x.png | Bin 0 -> 3154 bytes .../room_song_original_nor@3x.png | Bin 0 -> 6318 bytes .../room_song_original_sel@2x.png | Bin 1676 -> 3730 bytes .../room_song_original_sel@3x.png | Bin 3001 -> 7344 bytes .../room_song_voice.imageset/Contents.json | 22 +++++ .../room_song_voice@2x.png | Bin 0 -> 1693 bytes .../room_song_voice@3x.png | Bin 0 -> 3076 bytes .../Controller/QXRoomViewController.m | 2 +- .../Room(房间)/View/设置/QXRoomSettingView.h | 2 + .../Room(房间)/View/设置/QXRoomSettingView.m | 43 +++++--- .../Room(房间)/View/设置/QXSingerConfigView.h | 4 + .../Room(房间)/View/设置/QXSingerConfigView.m | 70 ++++++++++--- .../View/麦位视图/QXRoomSeatTypeSongView.m | 93 +++++++++++------- 25 files changed, 227 insertions(+), 77 deletions(-) create mode 100644 QXLive/Other/Assets.xcassets/room/room_set_room_type_k_sing.imageset/Contents.json create mode 100644 QXLive/Other/Assets.xcassets/room/room_set_room_type_k_sing.imageset/room_set_room_type_k_sing@2x.png create mode 100644 QXLive/Other/Assets.xcassets/room/room_set_room_type_k_sing.imageset/room_set_room_type_k_sing@3x.png delete mode 100644 QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/Group 7286@2x.png delete mode 100644 QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/Group 7286@3x.png create mode 100644 QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/room_song_original_nor@2x.png create mode 100644 QXLive/Other/Assets.xcassets/room/room_song_original_nor.imageset/room_song_original_nor@3x.png create mode 100644 QXLive/Other/Assets.xcassets/room/room_song_voice.imageset/Contents.json create mode 100644 QXLive/Other/Assets.xcassets/room/room_song_voice.imageset/room_song_voice@2x.png create mode 100644 QXLive/Other/Assets.xcassets/room/room_song_voice.imageset/room_song_voice@3x.png 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 0000000000000000000000000000000000000000..99fa55ec0c67a08b2d78b5ee8d2a0db93c4424c1 GIT binary patch literal 7329 zcmV;S9A4vzP)ON9J9nG$jA!$V9XpA4;$?;jcqvWN2A5J7IUxxGp$J4`xvqjr(?HY8sUky5 zsVYHBQ9w;`Q65@0_vX^Rz5UY3rQF{y z<-UF~_niRm2L5a*_y0Ef4}sscn1^=Q$6r&rdPN(vGk0!qQG0XWLpN*t(plvfrFds7uC%GS{b3tDv+xY^q|oYG{aV)n3iK^u~FhRP1uK0^_C#bDnjlM`?=a>9uQ(tzUI zZy7o_%1#g=2~NOBWk+M_G>t1|U>3Y@x(9bJA9!Hr z&YjTMzJ&Rb8ng4*(q;3xo)>G}Q%O1y88ImYCO|m=tSE-}OFQZ0)+C7|3{Z-}!h}%S zs2CR|ip^jkfzP%f%Tg+Ngb7KZsKcO9&5Q<(d(n1r&-|4a|L?^-cBx*%IPb>nJh|tp z`86|-Md;1;pF@_Q82CyEUP9vcg8_TB(Gr)FM_(92`!NK?d9P_PCN#Fe9!zOoLRO=S z#x^jmCK`K>{TLkEdH_|taXFv;tZRTduX$dLvBUZK`A_5VN(VAPE6Fw?a=>x{5=pa^ zEQX}r6w3<28&eo)WsE*$F^^V^zTj<}y_?d35Xb|cG*hr0_I*OA#V%jSRC3W=4p2h{h2T5*A@ERdF3=5Gj;mP!MbYD$$D1oY;sF z05bs!3>Rt|R$@=$AnWlQ4nhp%vK#}sNr@9?W0B}e*K$6O)r&S}XYO2>Uo-ognc}05 z?BwAm#sLS~h+G8lHbhB60#cK7qN5pXPbB`BPN6p>g@HBf6*h7m8uTz_+h=$mVkCrM zU-_(ks#_VRkqa#Rq&KP>#UZ5=a03JVm1pwIe|K$qk@2F9nd>)v2>)+V-2(iNjvRQT z&%wl>;@MkVPhmyWQpu8_%3(y2XeKwy1;C?El`^r3A!ed6f38n#k;^toXA07L(_$f# z2l_(Nn_ZjfZwBAAG0*Tlg+TX6!M{naY9kt|^<0{hLcsJc^yXa@WKGjii3WVA6&N(B z)nI#rhW!F#S&yTJ5$q2?T4G-cmp+g{Ymf!WD#?7a5o6jf2LGUHME*ka1sk*TF2`p8ncTZ2xIt~U&iGm2C|)o z83)YdPG==q2Ep~VOp`qp8-!?OuNc^|wn>61%n}wkZ&xAW)6PBUQ2+^j`0TR&=Qj=x zdi#S+VL)G#&CJ>l#z6-87+~qU&7x%H8+c#b^>lvYZH-@9&uNU`)O{cSHiZ*x3VWeY z0+#dMy!8YXa?HZm;)F46WZKPZd~kw86BXr0(J+3gu5^(KZ&lzIxpEnsWf~8t=+N&U zJFdr09Gm#S*rozY!d?sE|O%jFPu*aL^OQM@~p?%xs?gBYE*_4fOOq8y5&bSHO^^F-}mpYgxM{z zq2Zyi4#J68hRW&@f?|S%j8S8l90E~coH#zidRVm)g^)YfVuJmAtqm(|7rv3)67d)n zm@bgcaD#qzaVZX*J&QS8*ua#CB3KB*(hvwS!oKVuT3`bPlN`mMb03_(HIv3Xl}Gp$ zVQj;ul4YYYEX`mYCbhU|g1YVkab?G7ip4W$^QWKQEyMj!?~0!;dYA4mdRGh>{VsF` zy8mmt!gA4I0<=(6TDOHJq=9!#@y76npIz2}THK$fov0fka>$-yCHyd}LwG^NieD2Y z6a!uu6=Jdc+H3Wl-=kqn8pAQa2Lm?)2jZFvVcHu3bLmM*V?}`(Xt&A}+$#WEt1R+t3 zOgCtaXf`B*(6mTUB;J6nJPOGv%YfXc-*nO_8*%M-Y_>@(?47o?pR}w%vactOoz`zG z9%^Yjb^$uAjF^&DjETxMz#wEw(cS4@h*6E{)~$LQCiT4~I(HR~69lQ81_+B$2IdBH ze9j)71ktc5C*ObsDI#e~18jhloKjKa8 z0PVuyJi#uyU^rMVSO^`eYG|VaHfP)m2vuX)^mf2Jj!C2_0)sQj&=~M69$DD20ik97 zQa8av!576UT`@P;V17QYn42Bwxx8W)`TU$#W0O24$sWnc5f}e%l4UvQ(t5zSV7jr` ze0=W_{ppbtq~(JheUN+kD#y}*Fv>-aH?*5lU8jxV#EeDprbFHo z61*L!;FHHo!$2+|$fd47iQjthMY`{r%XHthm*;)gyhu0nkP~E;GGeQbkFk{^NW)F%^kwb_ajEhfIvXv9^!pVLDg2-JP zuhFfq>-bLadT&zM*B*Ib1j9rQjmR{pCP^gEB$6OY&@cOBKqWwIwv7m9V&C0r%|CTzIo>PiNP z*kbg_>mmDXofKD%AIZ=;(zvyCYBE|u_SSr(E^USer_B^Q60FliZ+|#N6(k25CYuPs zUJ5K*3c|M=9HPO2&qP)*`kP>USvTQ1Ak!u5bmB~}|G#()Kgh|!{!|0^#TUZ@PaNWs z8x2uyQLKvB@k__NE=Z)3kFc?<4?m+x;%d(E7bO$MJ#qwMq}XFNVFDWDV#Fy2@0h^c zD!LG;1Wi@=gb9*rO+iFah)_3OLM1*XKm)J2XkI_?+Ku_9Eo*hvnt9D+r}VzT&NnQ1 z!6f|W_MN~TzS0GQizALmNNo_J1YiaAI-fwjyqvG;GGh3nSj4u`CKNQZFTY`jT^ssLKX<(_u^lw#?7!dtP<1 z-g(XD{O8**%U`(t3f*)4CE7SQBir@Z2tUcb-N(-AOp0*ikT?{Hije^97%QP|L_8S; z9}$;!Db;_^5Mw-56p&PfOoKl^d-C9vg$x6#QjMN|e0K48{K}UPf!3bZd#uyLBtmKS+zwhP^|<)VDwwypfW ziMN9F#1?p&J`G5mLw_jgv%+z=?&(o;Y+We({g@Y41_0eEv{O}q8OE+#>lf50GXHueKYQqMRV-Wd6g}Ofq&D7PcGvdYOwv@*RI1f5(yKBUa=hnaGuCh!M_xX zCL>ODG~l?MqnU^kBg-tPByfnx>^ZRSILVM~IvHbN2E*^aZbSaV9hYQcjsLKZ#bek` z*?Er(y>|V)?z{a`U4GGQ9f0?+F@zuMePbqol8MSLIjKzSRO2rW@f$tjXW!}e%P!JY z>t;)5`%F;|d$4pa30|2tGjK@BVKl{IKCZjHWysPe!GuxTNI2t3b5lfT2e6GHvAKKu z=KQt|3)-?UqZ>A@&UakDK|lBA%k%GFy^cQ=mLC=(@mT)7tJmpozh+(9_OB+2l0FMLUV<|2oS;PrpfhYy*_>zz$eCbRJpMYccNnCYLb?V|vg3ff}Qf&%~PK=TH2SG>z z$cGmUOf`%a$ofH0b`u(f-!bMB$9>PjOp+0gSA^rhft^sJg$LGSD0+fYveW zp)O@MTdQLA9OrBU_F9Y%I~ugYm$u1;AICQ)DKy9x91w5AKkBrq`z%i2`IbwLGT2DA zi3|#`9#-K13G&o9%6X_{Amac7DMmILs-}Yr1)rtW)gTd97*oEnL5F~5WKZHN5W+u8 zDp)lEq68NJTN?=6vp*rqMhfECFO<|&!S2xl3@7#h>R0_~_l)MA2*n|vELw6T1_ZM5 z18LJ0h+(rrKIKu*H6k-~+4j45VWXCiL^7rgnF=*|nC53beSX);_^r<$(Z7FmU)=wx zMLqD?LHVZmOmaGfaKqmuCP6KwZHC;#%UIyEx z=|g+smw)e|{?}KI>+wCOwfFF{j-2R~+!#M2ZjiAXl8L+rrp1D93TcRE zwLy%su^cEGnP>L;UH7Cjqv$>+;V4;bs5Syxh(-t=E7L1-ny2aEMm0Z~QnM2SIlhpY z(81%&@!(^J;{J~>#_v6OLMQwc)9(?$#piRdXi)lNn?u1Vb(nZ=Y{JxZ2)`Dvtb9wT z7MndO8z3C=gpIO8ETDQJby(=c(c=%NbXJvoD)^UH7-xpb#^cxw@`eJj)lq?ARL#H- z#2~ZY)?nnHd+J2|%p*(s%vVpSeoo@La!TUGTwq#*%=9#zIJHc`z%?jo&T~P|17U^Z zW`oDaJ)sjlNa=-Kj11=eG|=(WGqbZ?61B#B$Ht9^)#s;dqzK5gSE3`qL9&xgjYkA4 z><~>g4LdPPXPoG!WEjUIpZ`XD_|Ze{hWHi$@=Y*6*R80ggalu@DgL54z6jd)0D*tU zGdLf_0=L4|hHa!!!x99kkee9Z?>vj7ywv}>HsT0uYfKT{s$b4j$a8?kOU3$t(5F;^ zt&4JufN6dJZVG`*M}yIMe&X}T^szrWs;tKZA0w{98!yu|X=3vn{+26OtNagGY%tN}QZm!X*n}A1F9H7)f9HwwZ-bfNM?~ z<2NyuKj#7o2#MpgXWNam#Xvfll0)GevV6lqs(eToMm6@=KXW*$U^jr`RX0JBX=HAI z^_I)cunZ7j`KC3i^kZ+>fWL0|RHpYsk#d-d8yfR2QC7k1VTw^U(sXWc*~IKs{5wsJ zNnb7Br57`Hcb{{;OPw(Tqq?=Jd5`}3l zO{k_6Z}~Jd{pPi^`Tno zuk78m>o*$L)^i%;TcfV~XE>_@C`!W{+b1S;O(1Z%eq;+qMm5+iH(2+f?LAA%y15*LaGvl zqLaj<&5{-xA}j_<&PTdDf**7919x0~^(jq_a~fm$4Kp(jb0sIwnjMyB;Sd9Sqi**Y z0%2rSAd#f4F=94Z=!#9V1V%@;&Um~b6e9D6L}xHNc`1YxAH_={4|x3MBR9;?KWu&)p4S*F&nz$hcq$IN z@U(!!M>=sD<_Eda2e`9^hj}14)4M?zWiE#ls>$hG!s~>v9dj0Dk z*_v;>f#2cc!*Qjs>y(H6H_9AE`&?XKdI=I>OGYVKV1kicH@G&Zwx816+)p&=x$6ry zX2+T}&u~gVsro3JbbR8k5iPb)&%6QGpcQ#NP6*#}+gjcCLtFB;>sMHMB2v|!uZ+()_LAMteyoC`+c9Nd75TvXuE<}w_p*Hd4_=b*c;ouK>asZ;2D?GNAy69PdVjc4 z3fU(ri~Z1bX(0Adc2cuzHgFh;k-$XupKqi_1TQ$hX=7}?Z`Z1SOj5t=(=u@iZ2@<OtedqJ|XllHq#(1A!$lK>u-K*&C?o<96O#yYiIaw?qlk^O#`ZztgNhrXw4rNMe zHzX7haE30!H^7iW5ZIIx`e?TK68dC^fgDiCvB6Pxmf`zIbb9ypg_(Q5)r%Ha&zmo~ zF{6iVbMeucxwx^<_{8`wX_)**qXAdvCbVn!sRs2?X!=ws488ZeSV*BPvKpo75mQWH z)_g&5kut1I#UuS(w{6?p%ty_?9C+D{aWFr#I~KaPD!R8vbdSe)k`ycX^fV0TYZ%x8 z<%qN03h%eb4Kg+~dfFFF#NN6QY-3>mlc?U|oL(QXYt+9S+`XJl&)xIw^YQTh-TKZx z;_gg+S-cZ+FiIN4M2ujN!*I-Fql)zVf$O8;(QzXh$eZQS_}&hqOb1&jqI;6R-oAVP zT-@YbbOFW%X^ivmyJrWF7pJwIQs2rm&LgJN*0~W4XHW#JIkopfxIqBLs%U}mkk)6w zKxs0=hdu#s=vIzq!AMtAqxIc?z(-un85_|%1LNCjhgMH++O zn*NQuZxPq~2M*51mM-)i>f+s0`zydBQhWuxH|x`lhKO4t`L9d|Ait#0@1Xl7KBn)@ zh;4`FwS|Vi!#?dBn^$c9B>(^b|Nrh3WV!$V00v1!K~w_(K`>mc56FD000000NkvXX Hu0mjf#(Ncf literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..98f57b41eca11fe53d5150ae41bcbdf2bcc740ff GIT binary patch literal 15170 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 literal 0 HcmV?d00001 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 5b24d39bd5acb185307e7a2aece64aafbca101b1..215af9414ad4424aa476695e7a4006de4e61739a 100644 GIT binary patch delta 2813 zcmVpnzH})EZ4R0W2hdw4#&_k3kro zm4TT%ckjJEzqQV}cLs-uQk^Z%L3x1-L*$pvhy>F#K;gamVD^yo1|X z#PRCa&rsWXKg5)k<8Sh?t&b%c19b{(zwKrR&tUnA6b z8iapP_7sAoZfcNMU})69RwUaQ%yuuCJ~JDuna!#BhBt=GTyTKP;DB9~oel@T25JNXGjjxkuzxAbL)_+$F^=@3>olmP(WXWo=1qbi{gH+G!+LOtO8-t z8=N3kJ#M+$Sb~Vb@ZRUSFFQPwFs+@a_RRJegMVCx1Pr5JZ||;DZ{e17(jbXXgn=Z5 zL#E8i5t{DeUQ3AVZO!LrE`ev%s+SMPt~leo*3G*HVe_FO0rCE4rjC$?b*#!5%N$k- z+cs;>49tLICaAJ9N(kla1;Lbj|pa zsDF+xg`sw?yb=bXlB-$=vaRH~^vV`MFzBL^wvN^Zx+x`H*RlHA>8IhUy9NX_xSYdk zO&9}Kz^!(kvVwjGGZ2l+%4G*p&ModW*ce!0C7ALk*gX^Q>PiMR^eo9?Rmbvc2828< zAUdW`PEl4P>qs!5WvvdO4plrDjKDF@aepvLUaexB2?(ti%LG!JV?Y7Lg9DVnn)ED1 zSkbZcs?%mF|*f2SwRQZgmC-dv>&5D;d)`!xsv(w8bWh3_(`Z?v=qB_#11^1EctLQ7FB%s(%8TtJNG9 z{iZ6_RQMlhZNP^{s`ywew%4^&7GYr}D@t8}2_k9Bd-E^huk>Pl9gq^UEHEd#7|#SV zQgDITR#+>l@HQ)yXQ=t|MrppH(IMCWBZrOKW7yH2@%xPoPW>y!iQG9gu=)t5?J!As zZw6L8d#t`YV{;heelGV0x#pT&GR>&-5}OC6Alt}9?v#7bX&*BX>~ z>1~^7gvv?7i4!@rccgIsXpx()Dr7dlhp=@w0(E6-lgK%v6#I{=bbp?trt85IG)=~H zc=o*@;z@9A&InQaZ!zI6wn_G5AX_#`UCe}-p>Gj*Za7bb!5;a3x6FF3BKJOD2^;=J z0Hf+-oA@)}{ud-X@KOkmFAc0-5!}|BSqyuU#fsr@#jYWG5NHGfo zvwO>sEoeMD@NCUDx_@_Pxq9%=S;I_Ip%FZHDyD5oDvMyci1aaO_CX(ufx3DfP@|sY zAR+AFg6E7@3UI6tHleH#+K(R_hTlEYD6c);Ag|2{xbE1&ky%)`-040(-^+{Mx%W1&0*me8yf?-GbkXff}jp#F%E&0 zdKSB^r1?Ag0cy3keyf1mvRlHIJt9X>)+9xabp_eF zuR*r{yRhY(hkxhPP%9eg4`|lK2s{>v*{qLKQ z@Gcj)m`3G7U*N4(4HQJV#gY}A>rXYJ%J9%zL9pv{Ip1Cf z>~H?~Pk-Ykr{kp#$i7I-&-(%fHvsD^pEPUDG=jek)y0&-4a{1zX-yGl4~LlD`r#gj zw{Zpp*P8h{^Vxhe`b$VyQCPtY&G?D4l$TQg-`@82G9+yGtYh($y|yJ92}W>~Pd5y( zk4?HTg%$U8%8FV4!Q_kh`!D8Rs4_{1VwG$y`+vb&OTe~XGXibPvG%y6Wb@_}z}9(^ zLP}rY!V35#=a^lD_kyhU4Z=)8ADAtTfqN^>1o}bQ9QT)%Qfs;1wa^Rc$y79^M_d0a z6(=h%rvRF7+(SDyNL3$$2M0wANC~7SF7SUk@<3Z9nS}PKBG~t8u-fzonjjOB$!Yd8 z?SF9e2hFZaeWj0wHs`NST_Kx{p|AA=w805q-nk^_{3L}EQZ|tiP6Y&4o<)rmj=ZM{ zUkxCfnfG&Vg)}mmzGG3rdEj|BUBXc*>yy{7ki{1Jf9q&?aB@)Sf@0r`n8! zAJQstQRS<}&L$X0J)rq%kc9d@0XR?V_crFf7Hc3I6wnq;oO`h2 z@^9>)UCDW3PMD8`HUGX P00000NkvXXu0mjf#>{Vv delta 2032 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 Ef-M{{&;S4c literal 3862 zcmV+x59#oUP)F z3z$^Jl|H9#KV}#vz<`*1u*_3@#C5-{o4Cp1E)(aWL~-MyS!3KJDvRYVsXDjnRNZbxe`41uHMso8O{L`>jq@tomoKeoUmmJ#Z(LHoxpCf^ zuiRdIs`~wu7+m#}TY?o^n-+0EI$7vZB3TW*3r04xqDNzWzL&~gYP$UVM;7?O`-8&C zF<3&X^u^_$DBIk4L3zjW+B4c$oL$zr^y9SQN~^4M(L@~>zlKD&5lK0$nIJ?yJSq8{ z0RCSoTR(oJV$uz!b57s9q^P2O*^J7q%RXoHf&OzmPdEBZxqMLNQ`nR}r!zFZa%*(H zrQ~@_(JL&n#U}d=EAHP^UQ)G8*@gFDR2Ra!(MAt$t=8Is@pl%fz4>L?I$t;Nl}mQQV#vl6B~W z9Viz=It4)(wiF{ipG3|~G4Tw7H%pZIUfe%!Hqv8;ybL~4e%fEa*n3br+!FUp5c0#Q z^vE*rwzbR&*989|Qrogn#gATy@;4Fl2d<(<-g2eg3Y%&@!d1`T?e|5b;mQbwRe?mCT9E%U~EdC0&~wvsk|su5JBrUv1mYK%spDCY+~{ zzaMg4ezw-8Mix8|bbsFeu88`s5bs3B9uaPw967vpZ~dyb57smvCaqrr-v#oqs{aao z%*Du>%*$ZZ(hD2};h@%*(*e6@we@oB*aD1lt@sMQ*nQEegM)&@+&QEpb*mna7Y1tL zEcK=Sz$3p{xX$qoVs`WPNpp#ie(C&3Q`Q&4CLw^eLzxTa#u(laWyt;iWGI~%GHJFmpZ zE{0MIXh3ki5RXUOO=7H=m%*me$i=O1U=+|eO3&CNC8X3t%)ZxXK);?d#?@;|q|xY4 zBZr0Q{sR}UeLv01nWDT6HdU5H4nISRGkRVoq9Z0_lqTkiLNWzq6FVxSKZ*a@b7b%K zBt7Oweg<#2(kk7y;_M?8lYdBBt{8JGvMI=NGj?C!nYpzouT>x~gDWP_yviET8!&=j z$Y`^Ti3|~w{1VUq9RvOx`rZSk0UHq|v@ovq)7T%+N@wIojmcmW4B)8dAWkpNOCrK`iqN8 z;!$fA*4za!81JXk9y6-HBH~MXYFihF>+b!{?z*;jOh}n4?)%%-@9w$ip1qUy9R4a^ zm79oYKhO=+NVw(wib+@JdLWRK!81EUQ~bVy`$ZEr=;U{`z-;P&poQjzYgT!7HZGZ* zNfS?p>suZsmU+bVBPi$xrl6Qft+V|_OU}Wm3uSp_ZLl#mZbu(uP1izq0Wbx;mqAhV-fG6~XcK!TBZiwBCoDnj1?-|fb`NbGCjY8}IE)2haQ zvIvouF|de;nTXD1(NC0aZZJF~Gaw%QIyftVgU3ZoWtwB3MS56>_yf-f%k4z$j=G9b z$DR9Q(KQFp#QOicO!*r6FFq1+&m6#e%6r7;0 zq-@4x#w!gtA*36@MtF$(AmH3et(@TxZW&CDaOaQ~rJvL+o4gV{l|>#f?rn@UZj1)B zdSwukGv6V>;EoLbkYu=S^>;-0A!InSH#+&VaS^kWfjtyZ-%zIESbg$k>`rhn@c>Xx1u-b=j0PiIJ-#c*$B58Ma786o$`VriGVwH0^-rzDOM zkQ)*F(P#@YouyES2DhjqygmxTL%>8*%<4{LU^2iRrixIz&mVlytc?jy7PkY~*$l+` zZx)t~=y{KO!!k1pZex#WoDW6nTGnK1tZ72`Wor&$oo*o}_as(mDPA*Ud&4BkxP~=2 ze%xw++*Du+KE&v*>z;kr;S?j=r!g8wGPe(PZ;ys!=+k@qbli-(CnK8#CeIxt{6L0m zmA{WJN5`VC(>X&7#s{&p&|CkQ7C}>lIwTPM5#thD|1v$cQx>niShH&CDt7!)OMqCvwhOBjOr#CErlGZ>Et{;#|v zy2-p+u6CS|Jn*@-eK=2B2_e_+t0$}{}d+S%b zdoIC0(aj!FgAM~qFyHA|0d^>X-wkz_@>7d*B6^;HYF*V!70B5)&rDL2-=m zr_Fpam?E!Bv&7CpMi4j%n%@NRAuuQCsczndwe$)Ox%6Zi4!DYTW^Mnac*RA{*?m7jVlMLXZGnEY(n zrbU=jJkp~k5?&$76E6tMlvF{F!OZNQ!V!|P>#R9dWb~)D*nD~Lc+2Reyb>7RxoUjj z*Sy?pQ{wST7Ai`W^cb9C=KJK6HA^%9Hs7{nmiHJenldIRMn`8B89i-Tfff?pNW>As ztm`0APP24R&FW`pEEi|YO_aVo1~ZFm-4h>?o{$-fri+eDbytTD75D?!QGq?%%(^Me zb(S8vhEZ~uJ(~t>e4JO)V=yrvNULHqx~EnB^jm>6FMI0O)uE%|3tRV_ZDI;1XuY3_ zJ?pTL97^S4s?xSvNWwThmEAg^K%GnN1a#0W3U}(tYPR6Q!;@(W1zTbT!K6a zw?mW1VL3x>Km+|2Td32JCkK_XOla&{&g76a(7QXO-D9x!DfqfLnOKKQX@D+B3FrGXZfeKv ze}x?{@|J;N}6-UtL^?$j!7j?Uh11%xPyzt;gV!y@$-CwH=ws;G0=7 zub94JvByP_KW6B;q@^cP+j3dBwz(`)*W8o{6vnL0TTmSjVp}U_cf`pYTUdQRNhcmE zaZldN@eO9`ZIDjKqDNYgU33!C)&6wh!f#-n7V8gYo zf-VvMm7yI}>ejbo{g*lEk04Yo<)YQP28VzxBPcj>f;Qdb!c;eCUsIiEvqGLs`X^hN}Zs!Fm|lh<3Q= znO@DhDe-X+8EzQXU?YIt-4j?e|BZ}m7{(wLL;07L&|^AEuU51-{0xRaP4L9@(HE!N<7?w-}w zi_aNf7hC3I#=}X4#0>uG6I3W>GzI{kjJ^_P7817(rg=8Jo3Te|kl3H=^z8WplLI75y3nJ*%x$1w6Yhih8q zh3i`DP8rs$z5<3BYy_wNklCE}hkAgi4UVp9v|F-|J-(DOu>u_oI z%)>9;++Eyx&)`m*K5FOL>7#ZWoYbc~kV{#gcck=&neAmRZe}g~Jni6XP4#fPCHS?? zyzfh!xvv+6@2OYuhr*2mk8W>&Xw7HmW{;@{bTMmlk1n5LMhl`bxd{i0#7*}fTzzjX zPF;du*^DVd_J0YJ-6F=U1|a1D0DDF(?ET=(qr0}8oj2p1gN>J_suu2w6iBFGz|Tlx z-Yz!nyaadHq&`Blk%;;jK8)A|rbK4UrWoTnUX(v93<>+zw>`PA`67uzv7#3(02gDz zn6qanQq3!;;MLUs9wr{*aoA7o#vC;OAW*wvY)nwmL4RR1!YHg6Jh1nH)qg&{@Ir~I z5{XjkjAJDOwov|+BgjM}i41?7h$)4nT&j>5EeRZr-AF7@bYSD52wK~>|1}3n#~03~ z^SmP3>3cg{EJi4n37m5~a|97P62?LVGE8Dj5hfj=07-2Y3s5zIT6Be#J$5J&Z(jPx zqCJa_Er06vG9?9ZF$7>jzAq5kZqagdkdtok~V~d*_>zvPsv|`x91yjdGmol;!K+uSXqOhbA4lhL~isb4b88J%W zp1|knnJJlK5S#qUea%ACRlP^-eB#Ipw^hra>VHLopzno}(Q$C2eZ4x)$2rPs)K5GK zs)Qnmj1v}fbpYxW8`QObl3>Z(!=3Snb!9t_NEjQfxOeuE(hN`N7V&`?769X!&R!a0 zz4o0WC=~id4V*SsNPrBnK_P$zkO5II!tg{)iih9#2C zOMgcsCJd(NN+Tm+kca`peZbpuj!rM}^bsGa2;ZY1W{jf) z)ip;484+CljvCq`HbkqO6A%D^A-Nm2fVdfj(ce13XML-Q#o=ccL10?u6^L9FA51)N>{67Ya3%TY#PD+qP8H3NuF z%1HnWJ}8t(IUy+JWIWETbBrg^ZtJCYY#X^`RaL$;%m}g<=LDfL#=v)?DSx2qBS$bY zw?>0f85vT@Z#eu)AY~wdR>Duw0BY=K$CHpNCx(Mhd{UX_pV;3%@#EpkeyYk<8AhdS zPqsf5imu@{S3)X-96{m2?+C`%NZ<%EVj!YUgh`1lG7M`1vR*M_eI4L@Mwv=~MZIau z^~*N2Om6nOP)SrhND3+^<$oMs(DLY*l)i7%N%Rs&s`qHq$&L}vtrI!VRXl4>QSGRP^|*yr8-Vucnc zW6>CdLLwV+MgU~00c-3nJ&t*)TyDEz{dJ{h*AH2Gtb%%;f%6b$5`X9;N(m3SC~A%l zBIswiwC?pYx%Y7rj`b-S@v@OmHXXyxpsJT z<99L8R22OM2)2syZX%sd6XyIyydI;82cw913jPfM0RR6k`u9ly02}}YNklV{nQ5Qrv1y60qILsm%03V}?r zGZPbY$U%sKghXO6fgFUy?DpoWnHhgT@t_9<4~mL{isH}CxT~ljc-R#M6?A&k9rWNq z!NbB#cUd*#Yo_;)neHC+u*0i};lFu;VSg8Beg-3-!NkZ=zge)x z5(TT87`7f6MQeT7By+uQ76$+0JlBokff@7ome?E__!t~IjR3s>5C?>%ieL{18GZlE zze^d5v>9gy4Fuf8c|K97cFYu9`9MdlW50{d*EmRW;eyyrqd543??G56=5#lOn3h+b z`3NF_H%mlt41Wmj$sjR))~yH+CyLe~i{gb71?oS|00nvnDVu)ZU2QHcgYnL(l>x@eyNhMs`Duj9M+ih2=JGxF1cRcTmp2!S|TWU%d56NDSu_MKLXNE?7v`ZG=v^-)HRdk z0!EYZ1{mG7Wr8|oDU~}&O7#%XMUC-Hb|K4!S?eo^bZ9(^zHNe%)b8K>z)t7BbkW_w z{v=zyG07yx@wQpCeyal!Tmli)dCRH%PIBBnmZWiwAwU-r>@|n2qh@jFU5y9rLlKmu z_R9PXs((CQK>*vt*Ty@2HIO_0L1AE(#)9;r2})9tBRiel=n^D}s4SQm0xph$I$;zB zz7{`-sUR=S_D(sIy+oBK9|F<-rZI6OwWG;z>sGZjx`n|qo23QUekXu)-f)D)-hG=l zkrNb|N!0pA5n!d}!uOseX{^;gQi4X&`bEWY41WMWhgUz|;dfX!MUGw}?RAk5eDBoX z?{I;8N)gDn*A0zdjlkW;JAAq5W&>*f8k%5&Wu$A-LY_7F&Pz`;!R(TDI=@lANe>Tj z6PTdERZOBVv>QO3=8D*>BVF0SNIefT*{cEgOnW5|L9PWq!`c#_HTt6w5rB8?GZ$%1 zIe(K|TT17jYdmb<9zm{F_*=_zEqDb1mg(e7?p&1%h;k}-L}O9)EfX}(Tg$jwxy*?N z+2U+6Ym@xX@elutd^6F%xguE9))GOMkM&By7y|Zb0xTcn5OaF%Om4fzI?>NbP>!0s zq#_@3F43huZ_v7Ytgye@a<>ztnq$sNkbl3cAAHj5jY>W^c1z7iu%=?NlwO4_5t#Hd7u@fomJf+tt>IJY#UzjPQ_V;4 zQU9junstnL%4dTm_C9sKq_S3nLpc^>`ihx z#dS(PB$t?-%I=dq5BX>-{#2VraO!~9?avboy8`nw7Ea}>) zZH-9_YFk`d3$hU@pxJ5-Bw%@IA$3FyBoJ8LAl=#qOPWeu>=J{0F%2hJcLYoAkFfHvX3{@^v?#`QY`hT8{LyCj15c>T4h9pLNz3=61aH zzNuf|yqtsokAHKwiQV8{Yx2`0>=fiRVg7Clzx|E>voz_##bw8T>dhM;(2jS0QD;3k zZsYe^vHjjF_r+1=>!0nv<&MwHzGeI0Y3EBnp|g9-f;~rr3m=|5PiE(Z{HSVf5S^E* z@^bUuQH3>5H-Chcx66C?&d%wR>u1L<|K#`H z_Ucj2o)10Md@DW`fZ^YU(vdgsTRFY@p`YM*(Xk}qj%@jenZFCd6Jmk1jEY4-JRM49 zBS$~ae66|fzw4><@4R#Rf>-VRhh5|Ly#M&Nka>voTYY~pno z&+W7CUckn8`haI8&DZ))s>` zlgu*fMo0KBM=5_ZH@5Ef+os>W^G|fqJeIBUM}OglK#tkG^XuO78A%=;2_J=y#fT%> zF~@Rr8m*jQF7xIjxRT_g(yANQIZdK9*HN%bF|uBqWbmBZ4prSY^~CynZ+`MUJ9a&X zRu6$oV4YtoD)We8Y~Etxc;pya;X^jFPG-l--yGCP_I8}lHGZeqwCg5HP)4gy73 zSNTZe)P;G-P3B!kutr5Cd?5DYVRo^seCo_yYbI!1tm< z^2G7rG>kQc=w>HA2hVL)ElqqUgnuX(BZlAvj;etMj*^&g8mxmrYGBNeSyq4uoW$hX z+MU#Az?CFm${FX}3-Gf-oc)w}`M}sjz4aXrU)?&4qXi@Ihb=iO_$X>?lutj)wmQOi zIYtm1kfM^F)oTJivr#Q?M6l`B5NADK;R?eFNMD7DIIWhyrt*$?fE_rgDSyhxf>y*n zWJi&Z-?MxFvVQHcs%$Q9bvI#LZZ zAzj#XI=0dDIK(+IDDTOO+Io1#%)Yx5?${{r$>@RtBt{CvYtuWO z#KDL$l5og+(SXeQa08@FfI&+OZxc zrumYQEKfUT^H558Wq;lHDY$5(<~=0Rms)b1s&}@jxU9c;{k)=r&NEa%YJ zIheMAvrd;7={zgTNq;Euyd`+4x7O$i7tc&P#HlVoNj98JvIZQ|mccT62Bkbt>CRf< z)`IHnn~mJ7n>t(L-Qd=(hcjK&d>F|pw7wL)P3j?W^Cz*V zS^X*_fT2ETYXsCtdsa}*o@EeWh;yUL%#}HsaEN_`xzd*`2{fD_uyFf#rZzZAOpCNf zgd*}zTRV3!1Amy$MaM|Ol=4uBXaEYX2B6A#x_u)dGMsvj@e2t@s9Ngsj^rf63Bp~0 z4D8h_F*VjtKwd%7iU8@~Axe2K2X9R5M& z9u5_Ny|rTiToGo-5+v)IPJl>#HCmOoa|NmiXE_rbZGYAu(wzX00?=lN(*VPb1GPK%+*Ib`t{wI3&+`l^MijVI*@v^75vS0+iqe-p>@yPHYXWdCvVinCSxUq0k z7H*&3^~=~)5C|9&fdl42!3d~1sA7Y8+Y3i2*ta{mMwB)KVv#dAX;pSh#7Gyi5t zH-G9-|IPQDeAVZHUUUQw#GT-yV!>USAv?=FNJ8pSj~pWjOZIrkXDh+r128uUY0j8s z#(5*pxe5NcN8Mg>Y1{3cf?;o-Z4QosQ%vBbqzy#>Sypzg+cx|Ddw%ko10$p5Ah_4= zfY*Gqy%9&Di=5eo*~l@H@S&O6TEnMf*nc+i44i;l;2qfk$qWG7Y-j7!28>3!5=_N) z23CnQ?LxF6!G?e^|Aw1iGc_^si~F}-_4$21Ig9y{qejU%NSfo%G9LDj9pd9WeU1Vd zNw{p9nBnfX2`s^hj_g5N2-rAbk3oPO5X;1{<(P!9$a_tn_HxpWy^yZ$9-(vo5P!3C zmBl=M^Y6sjC7{2WKOSbEszJ~*GN)RWtlE-g~N(RBRRkie20h)rO;I* zmO&a>;Y}OLba?L@6(mMJbKNuI#(#_x_j!U<-o8L+Fjq?(Z%I;C)SO>&{`Y3(jdyIF zJpWI({lS+Pdjl^MYdgjl-9-!YXhb8}`KiM-`c?h4G-uOOHT-^g$ro3W^Ddi(xwJ~A zLz0m%BZF+yF?$3F=)Q;?kZdmozg1`b4YzNdythUD96s=u$tRhH@c1YRXMX~mKTN!x z^;h$I_#EF?HQxJFsC>)J6&-Lo0o0J8&YP~9F(b{+r`deS)O*AF{`7l4y7jtyK6cXN zQokO#y|U5b(7;caGe|VEjNkuG^}*>QBgV*Eu!-xhoU3F3&1NlBC{ z11foqu~_i!4E6k2l5kq>+W65sWxWf??A^!{NM@84x2$r-!B=Izr<%WWZhXV*ZhG+z z*Wa||rWL<+)5o)su<}66lN@$gi-mZ4*@^!#SH>S1g}E%@y!bmCKYwzMwC+OQKR*|; zcgg)0@y|70<2%B2#>By+FTZi~jr(>VH#su1iSxXO?89MYnmAlpVev?1wUuqHet6k$ zbK7_f7x%Uz!n}}m>2bRsfA6MS|Ldw3?b&=$-Sp&L1lNW#hH(Nixx`1sG9xBt7ZeA{g^ zr=9!9{hvMibM`Bj9Llqi!od+snAle})(EdEZAZ|hwF)0W#XDM6sB0BoRoafAOKTNA wf{L}OQ2!4A0RR8|Tr}hW000I_L_t&o0O0pZ0NMcPi~s-t07*qoM6N<$g4ys99smFU delta 1989 zcmV;$2Rit}8`2MuBYy{nNklE6243e zZEtty`L?w5cJGeQ+uI9t^5%Bld$Y6ew{Ldl&CE$~ouwYY*MGXhdpz9Z;cM&-^mOU- z4kbcQsOT;B))pTGfxH|k^t zCJAs8oV}I1@co8*DOp08B7wTvJ;3v9$_i!+6{Yv(K7S$!Fv|8p+~iF( zV-avQAb+0LrEYaF?lnKeDtL<>omc#H%dZ%UR`Y zq>(7pt*1N#7dS%;Z#60{;^B$_YsNM{R^1*s9bP8{Oy_U=b4`|b-fxZEZZL`D4UG{bAaG5aDVR5b$|cx)Ik$Tp`bhHd&TN+`|1F9gM#p> z#?Jty8HCd21aV?lNx{V5uPhP1*QF+Yz%0o0@k24J-oa%;;q<1*qdlP3cs1UT8vRA)^<|0Bb0|&wmdn zXI1$(M2r!TZkvb%{-@Q+bhZqzHYmA6#SiqgIU0B%n+<^MWav&3HFPtXD_H_qn{N*( z?Q=mD>w#cI5}b}voZd^4XF!m3z}mhs&$l&fdnto;^3_0ikN{qb*z^7}C^Euk4e%}7 z7xZ-pi>6C9+g1kZW$W`eCsH#JY=1xz9~CVq+YJ1DCn_^j2A&Nw)l#~4h|n4G-P2d< zRS5!D@!)iuu__VlN1}OhzqXlLfMV2Vk~iJMLxcW_k_sGB(u-_3ZwByh0&(}x#+lMKWc#o*U2hn1~3IASN+@f@pQ9^02To7Zlyku;II+*kq}Qu3d;TA z!oV@GC|xyR-l@3BUDy5+sDJ84;N=~lapWiNvbd7s_;|FiVhdQDt_rX#SUf~h9a^8T+ddfIy655eA-~Q%YQFNCsyTzSJ}?< zbXkC1JA9KUPTP23dW~D?$GMvb1T#Su=!pT* zhcgPpi6EZjm+&ECNUiT;Q(aR6)_)GWdDFavU)KZ<_TT0k zH}RTv4X8AQT3TO@6fE5X9le}27LsPCUBYP`3(O$Ed6J;Xu~X4h|35irCI6-b%yQ7y zrm=$3y^YtC-ivO+V^k%(|bH@{yVnz3D=#6{|5j7|Nq-y)yV(=00v1!K~w_( XRTsmT-DIO-00000NkvXXu0mjf%@4$r 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 719783f7f98ae21fb1b973973652d3ddc785c737..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1095 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8264844013d025e1f692147b9adb9f17ac7d61eb GIT binary patch literal 6318 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 literal 0 HcmV?d00001 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 e067b7bb54d869cd2e346c3972746cd1192a9ce5..a31c1a5021a03c7f037d0651a80338665058622c 100644 GIT binary patch literal 3730 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 delta 1660 zcmV-?27~#M9gGc-BYy@#NkloH8<+L(sfEFYin)%zEP%@rp~o~md?*kLUsN>@Tt!P=0HBi!>^>ntij%K$ zBw*J6rRkx;KrGZ&Gtlv1Ibc;OO8$8GB~1_iNEV($fW3h5FzXkxQWXL=0AlnW+cpAv z_=H%Sb&5_!0e_TEH9d4z5%eO!3MlW9fouj#4KIm>R~6gEtN^um`!06jFaka?vr__? zB%prg`)#y$+F);H_iiJiy+G8<+?c6@0F^$V7iQMyD;EUFE{Pz~QC6;GN+$vu0=ID`Rb94uD&40E*2G+yM*O(-k7N|bS6hkVX zkbvX15K}sdMNGmb2DK&`>^=pZLuR@$PsUgm`5_sM?6I$#npl}Ed*yg@*FYZetm>Qq z#jPyq0mtROsmZ?|DW!APNhf3Dq2I*HsrB7INu~cp>mn^4emS6r^gt{;!gE{?#6vGi zTP9@zlz#=mZathS#O~~2D{T4Wxp$_#^`)2mvG7w`JoJgGT5uT&J^;WbK&VCGgr919 z_#6M=_Vkp>0?4bZ7kDBwIf(#HvOD)Ug)(2-K*v%|4|N3e@Q6YfLc(nTP{ov$5MVu+ z)opHr2cTbX+r$FtZA9iAP5k<-D_jyEY^d(?^nN*>R!Y^(bh z@&H6oosjX^NV|<4z3%GEXepfapAOe)X8lD)_&H0qFjX*l5_@Kn4RF-7X(dmeg+y@N z6+nPRHTJ6erL5#7;&R;o0XK>kzvs@aV?_f?le%_QD8Wv_I$sOIQv zHO4VG{Gh#P6p$TT+tMH@yH{y(ycZA=w;RZUm!mr5X>6xedi~2jJo_ zUajI$%a4CrkIs}c_u%@ye(s=>$w@rW_kWD$$hS_R%$EbO>b`}`GWB`>oXad1okx`h zCpri;C44UA03-{lGdm$0Jrg#w?RMuKfc#PK$Q4a;-CdDffF3Y5g0sXum3OFc6Cf$C z#ccAp{0?DrKC9&Iv+0U(mk=@EFUb|TZQKEPX?~?dzPDB!;p*FlV3rR#0AWoh2Y;S4 z?8+j-3T@!^rEd97@|yq|0g>uwmQG~P+nz4WnkiqPrax30&_nNX4>`Y=26){xkFgM2 zlHZ&VuvMa7&i*e+f)kDr2k-IW2mtN`fJKnwNdvs{^uY;2lJLk8Lsr151szV|KYj%g z?HiQ^XHd?}v-F(?C~}sfDDw;}LVxR$M0+FG6_phFJip9*N@S9p6btUPHvk+Q9)RO( zyMJaYO33f_UE#CnxR!Y1A-5unbL1?C9dQ=`rh`r>@bDs(pdzmX2d@_<8V@*Ip9i35 z(A8`Efa5pG3n9B2EOTf{BKtNVz^)41s80bOcCZL{Nq<5NK(;l><{}Pip??*opDcjJ zmYzwog5>0%4)yut)jkX2TC9E7v>wRm4=n2AFwGmBx&j3_Dd>b84<7*x8?YraM9Tsw zdgE)O=UH$w=QBV;B_bX5$HT91J)cBzH}it?2y7T-nXF_qMLy>94jX~a@D<4@@y(b8 zv^DkpFbB3>o$c!bVhMqFSjt4G>wfVl8HWZHmRuQWye z%+p?UbwPmAi<~2Pg!SaJ>cj=5O zU*WT&7O}03u>mcE!p$x9;i;_+{+yNu|5xkly+v%-^L}S*y}!Ms-hZ>D-dnc5-v8Np z@~o@(FIO3rUDSlgU%@qeVt^M-K!^^H+|b~CE$;gF^-AU$WP=qjvLJ1oo4Z2(WgX$z zgni+nVY{Nmb)@>XNYP1${OG58Lf%zb@;C;Msf@}F$a-^CS8J_5>~X;Tq`-e7fEDO~ z&Hkfw`1b+K55?f>4lgpcrL-o#qJHG{CUvH`DF4#cwZT6w*^7O#}o;pK{Y zyj0mBzpHA(qVj=QQ&bs07z&RKjPnhv%f)ji*82~ujZXsf#|FG(Afj(I_#;@7KO)d& zX~((juooVnntE+>R;H-v<7kz`@@IxZ59D>`=A_0ZvZ zvLjrCH;SwAOl1=mR5W01tUPkS3pZpPGt)76gG*q3Yn^w}3c≶GK^uD1gy2>vp_5 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..202a7bcd04fd22501cd270d86c996435e89ad04b GIT binary patch literal 3076 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 SHR;^|0000 #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