From 423ad947c23aeab39441577a5216fad2cd110ea0 Mon Sep 17 00:00:00 2001 From: fuenmao <980740792@qq.com> Date: Thu, 28 Nov 2024 15:04:20 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B3=E8=AF=B7/=E7=A6=81=E6=AD=A2=E5=8F=91?= =?UTF-8?q?=E8=A8=80=E4=B8=8E=E6=89=93=E5=BC=80/=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E9=BA=A6=E5=85=8B=E9=A3=8E=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../images/2.0x/meeting_main_receiver.png | Bin 0 -> 617 bytes .../assets/images/2.0x/meeting_main_sp.png | Bin 0 -> 613 bytes .../images/2.0x/meeting_main_speaker.png | Bin 0 -> 571 bytes .../assets/images/2.0x/meeting_main_sqfy.png | Bin 0 -> 756 bytes .../images/3.0x/meeting_main_receiver.png | Bin 0 -> 896 bytes .../assets/images/3.0x/meeting_main_sp.png | Bin 0 -> 951 bytes .../images/3.0x/meeting_main_speaker.png | Bin 0 -> 907 bytes .../assets/images/3.0x/meeting_main_sqfy.png | Bin 0 -> 1081 bytes .../assets/images/meeting_main_receiver.png | Bin 0 -> 361 bytes wgshare/assets/images/meeting_main_sp.png | Bin 0 -> 367 bytes .../assets/images/meeting_main_speaker.png | Bin 0 -> 335 bytes wgshare/assets/images/meeting_main_sqfy.png | Bin 0 -> 448 bytes .../lib/pages/metting/meeting_main_logic.dart | 16 ++- .../lib/pages/metting/meeting_main_state.dart | 2 + .../lib/pages/metting/meeting_main_view.dart | 92 ++++++++++-------- 15 files changed, 66 insertions(+), 44 deletions(-) create mode 100644 wgshare/assets/images/2.0x/meeting_main_receiver.png create mode 100644 wgshare/assets/images/2.0x/meeting_main_sp.png create mode 100644 wgshare/assets/images/2.0x/meeting_main_speaker.png create mode 100644 wgshare/assets/images/2.0x/meeting_main_sqfy.png create mode 100644 wgshare/assets/images/3.0x/meeting_main_receiver.png create mode 100644 wgshare/assets/images/3.0x/meeting_main_sp.png create mode 100644 wgshare/assets/images/3.0x/meeting_main_speaker.png create mode 100644 wgshare/assets/images/3.0x/meeting_main_sqfy.png create mode 100644 wgshare/assets/images/meeting_main_receiver.png create mode 100644 wgshare/assets/images/meeting_main_sp.png create mode 100644 wgshare/assets/images/meeting_main_speaker.png create mode 100644 wgshare/assets/images/meeting_main_sqfy.png diff --git a/wgshare/assets/images/2.0x/meeting_main_receiver.png b/wgshare/assets/images/2.0x/meeting_main_receiver.png new file mode 100644 index 0000000000000000000000000000000000000000..d7d8e0d7e809ea7eb602c87b9d27cdcd1f45a812 GIT binary patch literal 617 zcmV-v0+#)WP)q zf}2}z0lXng{%p-vS^j>9PRb8rQNhud_N zlPK1FAlZ@ZNh*>Mn&E#Ic3SsBDNw55Pq34rk1+Jk^--Lsy z&?})=;1Y`isl~>76uASLMZdVUC@PCh$@J5&*%vs;qqMQ;`Sz|vA7uxd%|*L*FD!Z< z#RPnTO#u%r?I%%$TjXY<*abNidx;_*kFv$N2_VW+0(zS|?NCL}nb*HE}6)?w3I3sJv>iQR1A} zDHk}|9&fwYPC3k@E>VpmdcAHBSNfE=@qTf7=P&aORV5XBU~l(C00000NkvXXu0mjf DU3UiX literal 0 HcmV?d00001 diff --git a/wgshare/assets/images/2.0x/meeting_main_sp.png b/wgshare/assets/images/2.0x/meeting_main_sp.png new file mode 100644 index 0000000000000000000000000000000000000000..cdc0846b8b22f74fd43d0d49886ae81ae1f8d080 GIT binary patch literal 613 zcmV-r0-F7aP)DR zgD?f3Ah8?0VQm9jWi)b3dkrkFwvXY@z^6) z&pV&Z4?rXmiTqCxKu~3HBuKcWLaGXm0E;SNT{TZ0_6!M@RD&Vj?@>INzEOfLn4<6R zcQ~I@*v5nEGf9#LLPO#yRbxyXu_zFS0R!-NzZVoj&cua4?0XEr$+<6mDXN~T24Co) z{3*zyQ}HxKyj*Z2rDZ>AjO}z0_(I1N&m&o!qhU_HEVsl(8hZ&Gr;A~vHC2TH<06-Y z!$>o(xHJuJknUWIz!$5u7SD5gT-HGiFjae0zbyn`oYI=t<04dlv9u6;S(IkFZXOqY z?~Y47>A#pM@MV=W!;?Lo=2Mr_wpvd5KbBg9FRP_Bwzy=O8JBj_zg=nxzIaPBx0^jK z{P{Pz>MxhtfiEvfGdx+Iusbe%MiOd|ZXePbTUcAp&S3BV6< ze5z%O%f6pNrdffi|i9{liNW_mXZRlyvr5E(^00000NkvXXu0mjfQtAQd literal 0 HcmV?d00001 diff --git a/wgshare/assets/images/2.0x/meeting_main_speaker.png b/wgshare/assets/images/2.0x/meeting_main_speaker.png new file mode 100644 index 0000000000000000000000000000000000000000..0c321a05dd06d4386ca52a019c199571d3dcc2e3 GIT binary patch literal 571 zcmV-B0>u4^P)m z!Y~Yl6((Q=b%J(-W`nXpvq9N_bOSm8Y`_Sl6Lf^Y1at${zPQ(i>)1FrKgaRi=@7B4 zJPXTlAi8tsh7pmuvX!#EvL~7vN)#*ml0Wt|C3M!5)nY+YL1}qab`m#CV`J8z52mp& z1+tMaOk?0EkZ6$*LtENiKw1iSPGFpZ-lEf88lt>U%3uH{1XZ+j%ef&Oht(!y5k+-k>c;@-Q)aWfi_EXykOQNg7G{7>+oaonIH4Ikh?f`0%%xF-AN zn<5!QWC8vWe9Ye2L43gR0pClj zy&@m-{}`1rllrh+3Y;MwS=`u~vKFB^HBSXSW9`3DHy+g9cxY=hli1VwQ_eevJi$uo z276-a4AxfvlCD7oSV+1(*_1jTOB875Gj0N;rQy)lErMs>oVY2=I zUnJpzVwwU0p-fXj+;4uG@JrQ@NOS7OZKa|qVv3I| z>o5?;*UT#*bf6AiUI*#mg${h;iaUrqz*kO$3dqoaDS(-fJ2P?t%or+Ic4OIAWGS(* zo%rByW``jB=ci8}_9_6ACQWJx5d{~FSp+zzdZfy+R<6bbj7bC(;c2a43~C8mDuPQ& zWi|Hz=3{5jL03)~0712c--lHIa7v7bSEhF-(ov$y)9QqO#U0JDA z8?ReShGR(6?IbaQ!^VUQ3FuQ;za**_Q7x&gZpks=IGE5Jn<668VM718HkL2e#^-4E z#2gV5n%#eRSZe33v@;%|Zz(rXb6FVB@&MW%5q_#fhP(a8K?BoWmgbE(pH#0@@B0Yt zb{hg*H{8Cx&26hS1n|soQnqo&+CZ`UA0K>vr!CV-spXW$lCF+{?N$94-FopzhXy^Ep6MdA)wjqwZrjJ85WbPU+c8pLR*i0dZ*qy zyzY8(G}}dwon9;=0M(mUd+ut-7vgP}w)Tl7~79n>|$U*NBA=%4^PiX2;b m9L^KWC=$P!=%h)LE}9U!hXDy z97q)8gz+rN5g)@Czk?j0hOS67jz@(fdwtYCZ49QL3O@QP$6v60_~Ob&SAp&C5)H{S z_4fu+!g#}lB!?#1q8-pe^-GkaM2G56LZGo_&-)nT_rkpnkP6h89n(PL^#TUsB7V zqdV*o70H2o$|tm=l3tR6T)_Jozxxsi^1#~OM=oRFK z>!Ytuihy3h7@W@(H3Y%S3cf1HkJw+{%g5Qv5mUUQrHjyRCNvH^FH$hq(oPcK{l=i` zS-Y>Z6!J~e%8O!L#ztE#!`$n7Gcnzr|jJ~a3 z6|%i#O@Cl4|c+Pp%Of{T$uLoYQpK#WK-cxc1 zNzjZ+1^-&(PXML|SJ(XJ%$*a^XKU W;sr2#i})!30000A*6Bu literal 0 HcmV?d00001 diff --git a/wgshare/assets/images/3.0x/meeting_main_sp.png b/wgshare/assets/images/3.0x/meeting_main_sp.png new file mode 100644 index 0000000000000000000000000000000000000000..b7dabecd83c3e0244bc389d17c72b26ed732e803 GIT binary patch literal 951 zcmV;o14#UdP)1^@s6$I7^K00009a7bBm001F4 z001F40Y#QEU;qFB0drDELIAGL9O(c600d`2O+f$vv5yPz#Iv^V;|F=c7S{5VFp{27f#AGjqf$e3g8=pjVLP*0Q` zbKIJWK|*jWyL?N0#w_S5i+bqH<>|bMQY#IkY(0=J~mF_LB9Qdf*t8 zZzaOY`fd&_PCvI?l2eeyq7U0-o;TiEkX#!*Un#v zCChl?Er8jq`TfHIczOa}U(qKb1l%Qo+J&-4twU_1Pu`NB&z}YwP@5RSe&4rk@`l{X zfbSV-KrS%^X>6Xi3o_=x{q2pE$ZC1XtWgGj&p-q6iE+Vao3B@`#>y*3VFL{)R1Bdg zy0XpA%4tq<7-&E-VhGaM$;2(lc1w|DR!$|wVW0uUig7{DHXAFS*j^zRXh5G8Ly#We zvW@g0zio0WpMv5szIMhJU9m`UCPkVQYfXIccExlG>~@IY5gpLI7=j2v_RSv!HkRdF#??#MSP_C4XhHGwx(>d@97MpPhEYa%e;DbBQi7 z|8f9~&o=lZqsY&ndI+k4ODe$(-E!bCTu>GsGV5nHODXIJW&b~J?a5k-92Fu`kL?V$$Boc{4B9Zv9 Z`~_BG{pV%)KNtW2002ovPDHLkV1jeyw=e(z literal 0 HcmV?d00001 diff --git a/wgshare/assets/images/3.0x/meeting_main_speaker.png b/wgshare/assets/images/3.0x/meeting_main_speaker.png new file mode 100644 index 0000000000000000000000000000000000000000..7844924f1c3310c3c1e0f62d91fd86e97c981a9d GIT binary patch literal 907 zcmV;619bd}P)A5!eaZP7rSpcLF&RB%Q$O1i4ONWdgSoNSUDS1SoJ~?ra#6C7F;# zoxVGsLWHFFixfyg2AG+dnVE@?1zZV4Oz5)m*{8)~QNolV!7Dsw3sZ&!KBA6;sln5k z(hloc!9cu+0r2lHPvNAY*e4i>cVG+&{z{h}Gz%USQ_&HIC_PguC~f>hz7BNrJ4%1CKbw~K$wa-vKkQ*) zhlQ8ZR&-fY{|;Jm@$~kcUBhq`HTJBF@Lu5g9hTKd^L>kkb{tsH;>Kp8{r%sZnFjln z1VX}35-)RD7mGgVOIFiX|5F=QN5DcPD>{qzecaZx=b$T8X^F$KIn$q8O$b&~y-?aK zpeq>GNws0q(3kX}T&n!v)wJoL3s}D%TCu6=$Bj~UrIgz$<o$16lNB(66JEbBs?yeJ?2oKpQ{8H;74Q^l4YX0SR#e^JWi z(lC0_UQ8m)8I5u#Y)+|OQaSkwM6nGm;n-pE-$(mw|6sJ)kSn%E(HV?~&rt2ZfAQbS zyL=D&x3UN53O&ImvL$+6U6F#mL7@j^cGLEKbgHoVDaPX?p&@+OWC0KyX zVOUeqc>0@_L!Q7Iy2%>D&^FkgHnhQUy^bb=E{sZXY7FmJ@B;Ei3002ovPDHLkV1n~+pYH$w literal 0 HcmV?d00001 diff --git a/wgshare/assets/images/3.0x/meeting_main_sqfy.png b/wgshare/assets/images/3.0x/meeting_main_sqfy.png new file mode 100644 index 0000000000000000000000000000000000000000..24bed609ec467be9a33cf458a7e2e07e14f8d8be GIT binary patch literal 1081 zcmV-91jhS`P)1^@s6CvxVPj-BUuuXM?<06xbS z%|x;+T_W7EB}az#$g)eiB)CH>9M6g_0q)2ZPDjwx;ZCGDofK+<9gI&jAl&$nKYThJ zpJUMZqO}kpT5$;K#t-U`?=&`r2q>b}<#0cm@s1<_u->>}f$8y={c&xFCPZOeXvh>t!{gdO(Qe@3y#F$veby}?& zEXIaEzL6RsCgcNDGG#GZFQ0`?q!_;~MSPC5?W*D$oi`LsO0=@d{~&|}>vfphpIvffCl?s$? z@M#PR5vohUQoA1PudG(6waR*pmI&>Cgq3TuE$83F;V>!ts9j&6DpZo-RI3=;kZ46h zIyWEgxaE!x zTyGUQa{gH*GSs`(YTVISK)uG(@wGB?QcaCw$c{G68+Ui9rB0oY#sX%0B!+T!F(ge^ z(Q+Jy(U4;7m&Qp|WR`4bY%HTf{v24!3yxc(7%wjw zzJASW#7J>}pE)-gN??A`YZasNccKzn1TG4)-$WP|IA3{>X516QV91=&)7T;Q2ly#qnfC9p#GBoH-x(P|49i z`Cg8YU5C!gvP)PVq|lTOB)WFeDpjB+L(>jXc054Kr${tq&Rw;NjzI{YI)bLmx!Q|_ z2(Pa*R9)G?=YGLvUX-$LYdDyt+F5ypQqZDI%^_H`?(q-`xR_}3Jm zoMW@ct)W+usByDH^gMpz5N00000NkvXXu0mjfuE6j6 literal 0 HcmV?d00001 diff --git a/wgshare/assets/images/meeting_main_receiver.png b/wgshare/assets/images/meeting_main_receiver.png new file mode 100644 index 0000000000000000000000000000000000000000..391fcc8ee55fa6a0b7f3b755bb1272bfd0bd8cf0 GIT binary patch literal 361 zcmV-v0ha!WP)200009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yPe~-7M#GK6aIC88PFuvlmTijf3T%!_#0yV=Nb3c}Rs$;Xxxg9=yP0o>?S>tg9Ozjh zQji9Y4CXAHHaSpPv`2qX`5e?gqojs%CEyeh+Yx=MoaI9k7;O(|O2IUj^Bi!i4^ADV zr4p$WbQoKdRoT`7=~E?OeApBvAU>6jDy8x$XB_m!QKH~OI(ap}Dwn&3c_|yqwpT!h zxeJvF_dDPr@#qKIB9u~4S9JPJ$CB1O(vDu~xbg%2pnvHJN6KbUKFrX{00000NkvXX Hu0mjfUD1s& literal 0 HcmV?d00001 diff --git a/wgshare/assets/images/meeting_main_sp.png b/wgshare/assets/images/meeting_main_sp.png new file mode 100644 index 0000000000000000000000000000000000000000..0129e3c5e31cefd04f896167f7d66b22dbcc312b GIT binary patch literal 367 zcmV-#0g(QQP)DA0v=h9>Box~66Ct=%Jjp_`oX^%H zG10CmfykvTq`;vHsY1|-I+*X1^yCskTu93M%(;i-I2qZBr#90AK>*Y>W)ys!2YeM` zyg^mv@Kp`h3IRwt1uuHwtI0*0QIFlJ`R)DkE7SGcSj>o#Wz6xjyPhq3h zCjBnFUV}+EPja)s7dV}~_oL(Wq0g?jpUkVyO@nfi<)@&LiiCFkw_aa6Qp5WFHxK{- N002ovPDHLkV1k20mzV$m literal 0 HcmV?d00001 diff --git a/wgshare/assets/images/meeting_main_speaker.png b/wgshare/assets/images/meeting_main_speaker.png new file mode 100644 index 0000000000000000000000000000000000000000..68be7490d6d2f7b8b1166efff753cabab52fce71 GIT binary patch literal 335 zcmeAS@N?(olHy`uVBq!ia0vp^qChOd!3HFgyvvM%6lZ})WHAE+w=f7ZGR&GI0Tg5` z4sv&5Sa(k5C6L3C?&#~tz_78O`%fY(kpINf#WAFU@$TeC-a`rkuIuM6P&RNfzrb5E zB`?4XNHITV+2y#~v6Sg9!~d6p!c4kT)YSexdCn0dAI{hD&+FI>sdo=dbrl<=K2PoY zxoi%@HV$jA5Xpwn51h`v4|#uj$o)|_QB~2bFsRE+Po90fC84IQU2p+^7Wad$sr*vP zx;vw}A4w}_SD)6(oVQNs_9Bgnns)QZfQES-={u&aWL&pt!6MOGEfvOln- zNnzcN@2W-L`#JBfS1sGL?AR)goy*0`>v;au1qM&u6|U*U!|C|;nTb1J#O0t#YTve5 c+F#^0pEBiu<%$CdK>sp$y85}Sb4q9e02+yS!vFvP literal 0 HcmV?d00001 diff --git a/wgshare/assets/images/meeting_main_sqfy.png b/wgshare/assets/images/meeting_main_sqfy.png new file mode 100644 index 0000000000000000000000000000000000000000..e9c38a75d4a901021d341cde18006cffddb8eb15 GIT binary patch literal 448 zcmV;x0YCnUP)AONZdRrtT6F;>`vYI=S;^U28C zEzALneyHsUUdcuZ9wh?i$SyEE&-I8EDfo(@v1E+|e;iog3RkPrz~dOPs_p~x-=?Oe zB2vsUG;l@TqHw`mi7BTl#059h_T9VI7JO}u-57aze%73EC1A7ISizR?^m<+4ZWl|; z!3V4)>x00Re0thd&2rh``OGnDh!GAA%3bgQ_7Id{4@yg|CS(hzQw@tn1e;An!SCQJ z$@JK(2F~)EyiU531Ss& signalRSocket() async { @@ -194,6 +206,7 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{ } if(UserStore.to.userInfoEntity.value!.uid == meetingRoomUser.uid){ state.isSpeak.value = true; + state.isOpenMicrophone.value = true; setEnableLocalAudio(true); } }else{ @@ -207,6 +220,7 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{ } if(UserStore.to.userInfoEntity.value!.uid == meetingRoomUser.uid){ state.isSpeak.value = false; + state.isOpenMicrophone.value = false; setEnableLocalAudio(false); } } @@ -285,7 +299,7 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{ )); // 设置默认音频路由为听筒 - state.rctEngine.value?.setDefaultAudioRouteToSpeakerphone(true); + state.rctEngine.value?.setDefaultAudioRouteToSpeakerphone(false); joinMeetingToRtc(); diff --git a/wgshare/lib/pages/metting/meeting_main_state.dart b/wgshare/lib/pages/metting/meeting_main_state.dart index fe2db6a..074ac0e 100644 --- a/wgshare/lib/pages/metting/meeting_main_state.dart +++ b/wgshare/lib/pages/metting/meeting_main_state.dart @@ -53,6 +53,8 @@ class MeetingMainState { /// 是否被允许发言 late RxBool isSpeak = false.obs; + /// 是否打开麦克风 + late RxBool isOpenMicrophone = false.obs; /// 聊天数据 late RxList meetingRoomMsgs = RxList([]); diff --git a/wgshare/lib/pages/metting/meeting_main_view.dart b/wgshare/lib/pages/metting/meeting_main_view.dart index 442129a..1be7a46 100644 --- a/wgshare/lib/pages/metting/meeting_main_view.dart +++ b/wgshare/lib/pages/metting/meeting_main_view.dart @@ -60,7 +60,7 @@ class MeetingMainPage extends StatelessWidget { SizedBox(width: 16.w), GestureDetector( child: Image.asset( - state.communicationMode.value == 1 ? 'assets/images/index_copy.png' : state.communicationMode.value == 3 ? 'assets/images/meeting_main_camera_open.png' : 'assets/images/meeting_main_audio.png', + state.communicationMode.value == 1 ? 'assets/images/meeting_main_receiver.png' : 'assets/images/meeting_main_speaker.png', width: 20.w, height: 20.h, ), @@ -118,22 +118,42 @@ class MeetingMainPage extends StatelessWidget { logic.changeMeetingInfoState(true); }, ), - GestureDetector( - child: Container( - width: 92.w, - alignment: Alignment.centerRight, - child: Image.asset( - 'assets/images/meeting_leave.png', - width: 20.w, - height: 20.h, - ), + Container( + width: 92.w, + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + /// 结束发言 + Visibility( + visible: state.isSpeak.value, + child: GestureDetector( + child: Image.asset( + 'assets/images/meeting_main_hang_up.png', + width: 22.w, + height: 22.h, + ), + onTap: () { + logic.doHttpCancelSpeak(); + }, + ), + ), + SizedBox(width: 16.w), + /// 退出会议 + GestureDetector( + child: Image.asset( + 'assets/images/meeting_leave.png', + width: 20.w, + height: 20.h, + ), + onTap: () { + Get.bottomSheet( + isScrollControlled: true, + leaveBottomSheet(context) + ); + }, + ) + ], ), - onTap: () { - Get.bottomSheet( - isScrollControlled: true, - leaveBottomSheet(context) - ); - }, ) ], ), @@ -228,16 +248,20 @@ class MeetingMainPage extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Image.asset( - state.isSpeak.value == true ? 'assets/images/meeting_main_microphone_mute.png' : 'assets/images/meeting_main_microphone_default.png', + state.isSpeak.value == false + ? 'assets/images/meeting_main_sqfy.png' + : state.isOpenMicrophone.value == true + ? 'assets/images/meeting_main_microphone_default.png' + : 'assets/images/meeting_main_sqfy.png', width: 22.w, height: 22.h, ), SizedBox(height: 4.h), Text( - ' 静音 ', + state.isSpeak.value == false ? '申请发言' : state.isOpenMicrophone.value == true ? "手动静音" : "解除静音", style: TextStyle( fontSize: 12.sp, - color: state.isSpeak.value == true ? ColorUtil.Color_85_117_242 : ColorUtil.Color_202_202_202), + color: ColorUtil.Color_202_202_202), ) ], ), @@ -249,7 +273,11 @@ class MeetingMainPage extends StatelessWidget { context) ); }else{ - logic.doHttpCancelSpeak(); + if(state.isOpenMicrophone.value == false){ + logic.setMicrophoneOpen(true); + }else{ + logic.setMicrophoneOpen(false); + } } }, ), @@ -260,7 +288,7 @@ class MeetingMainPage extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Image.asset( - 'assets/images/meeting_main_camera_default.png', + 'assets/images/meeting_main_sp.png', width: 22.w, height: 22.h, ), @@ -328,28 +356,6 @@ class MeetingMainPage extends StatelessWidget { ); }, ), - - /// 更多 - /*GestureDetector( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Image.asset( - 'assets/images/meeting_main_more_default.png', - width: 22.w, - height: 22.h, - ), - SizedBox(height: 4.h), - Text( - ' 更多 ', - style: TextStyle( - fontSize: 12.sp, - color: ColorUtil.Color_202_202_202), - ) - ], - ), - onTap: () {}, - )*/ ], ), )