From 4035804b735b2ab67ff5129a4a9e6ff5f5ffa611 Mon Sep 17 00:00:00 2001 From: "Ding, Shuo" Date: Tue, 12 Aug 2025 16:47:34 +0800 Subject: [PATCH 1/2] =?UTF-8?q?1=E3=80=81=E5=A2=9E=E5=8A=A0=E6=82=AC?= =?UTF-8?q?=E6=B5=AE=E6=8C=89=E9=92=AE=E7=9A=84=E5=B0=8F=E5=A3=B0=E6=B3=A2?= =?UTF-8?q?=E6=95=88=E6=9E=9C[=E6=9C=AA=E4=BD=BF=E7=94=A8]=202=E3=80=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BA=95=E9=83=A8=E6=8C=89=E9=92=AE=E7=9A=84?= =?UTF-8?q?=E5=A4=A7=E5=A3=B0=E6=B3=A2=E6=95=88=E6=9E=9C=203=E3=80=81?= =?UTF-8?q?=E6=9B=B4=E6=8D=A2footer=E5=BA=95=E9=83=A8=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/history_mini.png | Bin 0 -> 1855 bytes assets/images/keyboard_mini.png | Bin 0 -> 813 bytes lib/widgets/chat_footer.dart | 131 ++++++++++++++++++++++-------- lib/widgets/large_audio_wave.dart | 86 ++++++++++++++++++++ lib/widgets/mini_audio_wave.dart | 58 +++++++++++++ 5 files changed, 239 insertions(+), 36 deletions(-) create mode 100644 assets/images/history_mini.png create mode 100644 assets/images/keyboard_mini.png create mode 100644 lib/widgets/large_audio_wave.dart create mode 100644 lib/widgets/mini_audio_wave.dart diff --git a/assets/images/history_mini.png b/assets/images/history_mini.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3def2d71f4d21663b5a78bf517f32d4a11db66 GIT binary patch literal 1855 zcmV-F2f+A=P)BHR1{1I+QS=b-8KBw&&`8P01Q2hORJTINi{ZP@HM9ip1Q9V^C4zkb z)dP1z%0L!{7l_Fvk#zwc;e{Z!7Aba)5M&>kBP9>9LX1R`e4(KjL&GQ}C><67?2!({ zEA@v#ZO+QwOO#Q4GQ_n;HczjSo z)FdP625LY+4IB>s-Ont?N)B1f2{r1uZ*myJ)6VGq>EoyTn>kfT0>qz(gTMEo1}a<7 zPx#;$T7QgkZex>vRkyd6McI%ii$18@X_YMKAx-&t z1Z7&Jqh}NAjU*^_+#z0T#Z&*ghK(eMAysl|lu2`Yv#|sP5)6+4ir|@Ewy^}I?hbvO zr_^?cEkKxy#$TuL0&`V17)r`pz3idp^Dj4Kv2s7Vt z2rGn(Nc$&kx+aM&SGEYLJPfo<)kB+NQUyUJgVpoY-dNPRJ1BBnxTNC_@hJAn9X`P8aJIqoTsRgg z`I2`};nDNqU>u<(&TrMhn)ArSc~a)o%OYUE>g5P>Ff7RLC{1R$_b@KvyYe&^JqO2F z7u{Rv4@%t-C|_GHag5&?d?(1_5ksTAKzn8=b(rytW{*2o2icfjYfRf{CfaZelS@#! z)3FZ;b_BK)0Fco-lf-S~Hd-#R*CKNH4kv={J${ymvvnn@h@33B#YsOa1yFGqKS#0V zd{ra)S<52JUpr$7uwAb@16PhPqXrygnT0kiou9P~*vFHlXoa@x)V9~uwh>f7tq{Bt zl1kGzo5ozOY?N204ms(4P!nan1r6tp=C;Evq3%`Pz|y6HI2}_m8&BJ=kX`LBCDRpY zV-X@JcL?G&9r=%ltlO$v748ffh?gj_M~j$lS^X?eHu9F#TNMtbt|NWj1U*EoRFabx z9_*&Cu$Z2#IH!eYdUFj8pz%0qBC1bBu{DLzE*j6SW_SrCuaLIg1iTP4gZD^#BCAIl z)gz7KlaZ#JZA`=k4W&=M(;mDNG!I^hbEqu}d{*&w6Z{&B8wKi?_J!;_Zta~yE6vro te|ZW+KjN0DmBcW0hQ+YO7F+y?_#f<=$hs`)dQkuX002ovPDHLkV1iI1Rnq_f literal 0 HcmV?d00001 diff --git a/assets/images/keyboard_mini.png b/assets/images/keyboard_mini.png new file mode 100644 index 0000000000000000000000000000000000000000..6bf863046e436ca40d32a08073f406e7c87a3741 GIT binary patch literal 813 zcmV+|1JeA7P)Vi|K~#7F?c33D z+CUHn;N26?40IrO;8b8bh)cll2?!{_p#XzO3IKOtcc4@dN>B$P@vC*4Rcy~l0<LPRRlpYAmfbz=n@(Yw}kNU^{#t=u=Y^lc=~I} z!35AM7_JuGNx9UN3r5qY+xCT%q2Tj0+56mu9>kYbkBmv6y>@8rMHu#XZv~xv?Xw31 zkMZ$*E81tpUj|)?kD-o%5tE zmd@eYhAK`yDEn~SuxyUx7ajzcNVExN$v`@XMe~Kj8SI?{Xh@#7K1Um>xLslf236H5 z{b_6^M7TOyN#$PkK5eKzy$gi6s@k&+bS+j**J3BowOGq(KmrX&paBUqAb|!X(0~Na^Pudm zG>-Wi>V_AqJc)b&N6rC}F+Tv@);sTlvYSzV#ylJUkiVtwZ#i9JpJqwcb9|^TKXvTg zP61`N>_N?S$aA_W)oqZrkX_?3)K|P*b|1lk(-`!6ZC~&}ea%tVuQ$DXflizU=?n+u z+>pA`d5}N@5@|00000NkvXXu0mjft}JU~ literal 0 HcmV?d00001 diff --git a/lib/widgets/chat_footer.dart b/lib/widgets/chat_footer.dart index a515eda..d4d67d0 100644 --- a/lib/widgets/chat_footer.dart +++ b/lib/widgets/chat_footer.dart @@ -4,34 +4,76 @@ import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; import '../services/message_service.dart'; import '../utils/common_util.dart'; -import 'voice_animation.dart'; +import 'large_audio_wave.dart'; -class ChatFooter extends StatelessWidget { +class ChatFooter extends StatefulWidget { final VoidCallback? onClear; const ChatFooter({super.key, this.onClear}); + @override + State createState() => _ChatFooterState(); +} + +class _ChatFooterState extends State + with SingleTickerProviderStateMixin { + late AnimationController _animationController; + + @override + void initState() { + super.initState(); + _animationController = AnimationController( + duration: const Duration(milliseconds: 1000), + vsync: this, + ); + } + + @override + void dispose() { + _animationController.dispose(); + super.dispose(); + } + + @override Widget build(BuildContext context) { + // 定义颜色常量 + const Color buttonColor = Color(0xFF6F72F1); // 主题紫色(应用栏和按钮边框) + return Container( color: Colors.transparent, child: Row( children: [ Padding( - padding: const EdgeInsets.only(left: 12, bottom: 12), - child: IconButton( - icon: const Icon(Icons.delete_outline, - color: CommonUtil.commonColor), - iconSize: 30, - tooltip: '清除会话', - onPressed: onClear, + padding: const EdgeInsets.only(left: 16, bottom: 12), + child: GestureDetector( + onTap: widget.onClear, + child: Image.asset( + 'assets/images/history_mini.png', + width: 24, + height: 24, + ), ), ), Expanded( child: Padding( - padding: const EdgeInsets.only(bottom: 12), + key: const Key('startBtn'), + padding: const EdgeInsets.only(bottom: 12, left: 16, right: 16), child: Consumer( builder: (context, messageService, child) { + // 立即响应录音状态变化,无延迟启动动画 + WidgetsBinding.instance.addPostFrameCallback((_) { + if (messageService.isRecording) { + if (!_animationController.isAnimating) { + _animationController.repeat(); + } + } else { + if (_animationController.isAnimating) { + _animationController.stop(); + } + } + }); + return GestureDetector( onTap: () { HapticFeedback.heavyImpact(); @@ -39,6 +81,8 @@ class ChatFooter extends StatelessWidget { }, onLongPress: () { HapticFeedback.mediumImpact(); + // 立即启动动画,无延迟 + _animationController.repeat(); Future.delayed(const Duration(milliseconds: 100), () { HapticFeedback.heavyImpact(); }); @@ -46,30 +90,42 @@ class ChatFooter extends StatelessWidget { }, onLongPressUp: () { HapticFeedback.lightImpact(); + // 立即停止动画 + _animationController.stop(); messageService.stopAndProcessVoiceInput(); }, - child: AnimatedContainer( - duration: const Duration(milliseconds: 150), - height: 48, - width: double.infinity, - alignment: Alignment.center, - decoration: BoxDecoration( - color: messageService.isRecording - ? Color(0xFF8E24AA).withValues(alpha: 0.42) - : Colors.white.withValues(alpha: 0.12), - borderRadius: BorderRadius.circular(12), - ), - child: messageService.isRecording - ? const VoiceWaveAnimation() - : Text( - Intl.getCurrentLocale().startsWith('zh') - ? '按 住 说 话' - : 'Hold to Speak', - style: TextStyle( - color: CommonUtil.commonColor, - fontSize: 18, - fontWeight: FontWeight.bold), + child: LayoutBuilder( + builder: (context, constraints) { + final containerWidth = constraints.maxWidth; + final waveWidth = containerWidth * 0.57; // 波形宽度为容器的57% + + return Container( + height: 48, // 固定高度 48px + alignment: Alignment.center, + decoration: BoxDecoration( + color: const Color(0x14FFFFFF), // 白色背景透明度8% + borderRadius: BorderRadius.circular(8), // 圆角按钮 8px + border: Border.all( + color: buttonColor, // 边框颜色 #6F72F1 + width: 0.5, // 边框粗细 0.5px ), + ), + child: messageService.isRecording + ? AudioWaveLarge( + animationController: _animationController, + totalWidth: waveWidth, + ) + : Text( + Intl.getCurrentLocale().startsWith('zh') + ? '按 住 说 话' + : 'Hold to Speak', + style: TextStyle( + color: CommonUtil.commonColor, + fontSize: 18, + fontWeight: FontWeight.bold), + ), + ); + }, ), ); }, @@ -77,11 +133,14 @@ class ChatFooter extends StatelessWidget { ), ), Padding( - padding: const EdgeInsets.only(bottom: 12, right: 12), - child: IconButton( - icon: const Icon(Icons.keyboard, color: CommonUtil.commonColor), - iconSize: 30, - onPressed: () {}, + padding: const EdgeInsets.only(bottom: 12, right: 16), + child: GestureDetector( + onTap: () {}, + child: Image.asset( + 'assets/images/keyboard_mini.png', + width: 24, + height: 24, + ), ), ), ], diff --git a/lib/widgets/large_audio_wave.dart b/lib/widgets/large_audio_wave.dart new file mode 100644 index 0000000..115d680 --- /dev/null +++ b/lib/widgets/large_audio_wave.dart @@ -0,0 +1,86 @@ +import 'package:flutter/material.dart'; +import 'dart:math' as math; + +/// 大型音频波形动画组件 +/// +/// 用于显示适合主按钮的波形动画,竖线数量根据总宽度自动计算 +class AudioWaveLarge extends StatelessWidget { + /// 动画控制器,用于驱动波形动画 + final AnimationController animationController; + + /// 波形颜色,默认为白色 + final Color waveColor; + + /// 波形条间距,默认为4.0px + final double barSpacing; + + /// 总宽度,默认为148.0px + final double totalWidth; + + /// 最大高度,默认为22.0px + final double maxHeight; + + /// 最小高度,默认为4.0px + final double minHeight; + + /// 构造函数 + const AudioWaveLarge({ + super.key, + required this.animationController, + this.waveColor = Colors.white, + this.barSpacing = 4.0, + this.totalWidth = 148.0, + this.maxHeight = 22.0, + this.minHeight = 4.0, + }); + + @override + Widget build(BuildContext context) { + return AnimatedBuilder( + key: const Key('audioWaveAnimation'), // 为音频波形添加key便于引用 + animation: animationController, + builder: (context, child) { + // 根据总宽度动态计算竖线数量 + // 每个竖线宽度2px + 间距,保持合理的密度 + final barWidthWithSpacing = 2 + barSpacing; + final dynamicBarCount = (totalWidth / barWidthWithSpacing).floor(); + final actualBarCount = dynamicBarCount > 0 ? dynamicBarCount : 1; + + return SizedBox( + width: totalWidth, // 设置动态宽度 + height: maxHeight, // 设置固定高度 + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, // 垂直居中 + children: List.generate(actualBarCount, (index) { + // 为每个竖线创建不同的相位,使动画不同步 + final phase = index * 0.3; + + // 设置不同的频率增加自然变化 + final frequency = 1.0 + (index % 3) * 0.2; + + // 计算波形高度 + final height = minHeight + (maxHeight - minHeight) * math.sin( + (animationController.value * 2 * math.pi * frequency) + phase + ).abs(); + + // 构建单个波形条 + return Padding( + padding: EdgeInsets.symmetric(horizontal: barSpacing / 2), // 左右间距 + child: Container( + width: 2, // 波形条宽度2px + height: height, // 高度随动画变化 + decoration: BoxDecoration( + color: waveColor, + borderRadius: BorderRadius.circular(2), // 圆角效果 + ), + ), + ); + }), + ), + ); + }, + ); + } +} diff --git a/lib/widgets/mini_audio_wave.dart b/lib/widgets/mini_audio_wave.dart new file mode 100644 index 0000000..d463a7c --- /dev/null +++ b/lib/widgets/mini_audio_wave.dart @@ -0,0 +1,58 @@ +import 'package:flutter/material.dart'; +import 'dart:math' as math; + +/// 小型按钮波形动画组件 +/// +/// 用于显示适合小按钮的波形动画,包含8个竖线,动画效果由外部动画控制器驱动 +class AudioWaveLargeMini extends StatelessWidget { + /// 动画控制器,用于驱动波形动画 + final AnimationController animationController; + + /// 波形颜色,默认为白色 + final Color waveColor; + + /// 构造函数 + const AudioWaveLargeMini({ + super.key, + required this.animationController, + this.waveColor = Colors.white, + }); + + @override + Widget build(BuildContext context) { + return AnimatedBuilder( + animation: animationController, // 使用传入的动画控制器 + builder: (context, child) { + return Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: List.generate(8, (index) { // 生成8个波形条 + // 为每个竖线设置不同的相位,使动画更自然 + final phase = index * 0.4; + // 设置不同的频率变化 + final frequency = 1.0 + (index % 3) * 0.2; + + // 计算波形高度(最小4.0,最大14.0) + final height = 4.0 + 10.0 * math.sin( + (animationController.value * 2 * math.pi * frequency) + phase + ).abs(); + + // 构建单个波形条 + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 2.0), // 左右间隔4px + child: Container( + width: 2, // 波形条宽度2px + height: height, // 高度随动画变化 + decoration: BoxDecoration( + color: waveColor, + borderRadius: BorderRadius.circular(2), // 圆角效果 + ), + ), + ); + }), + ); + }, + ); + } +} From 15680677fc7d0b69cebd80a6fcab6bfb70aff78e Mon Sep 17 00:00:00 2001 From: "Ding, Shuo" Date: Tue, 12 Aug 2025 17:40:39 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=82=AC=E6=B5=AE?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E7=9A=84=E5=A3=B0=E6=B3=A2=E5=8A=A8=E7=94=BB?= =?UTF-8?q?=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/ai1_hd.png | Bin 0 -> 52840 bytes assets/images/ai2_hd.png | Bin 0 -> 7211 bytes assets/images/ai_hd_clean.png | Bin 0 -> 46990 bytes lib/widgets/floating_icon.dart | 52 ++++++++++++--- lib/widgets/floating_icon_with_wave.dart | 59 +++++++++++++++++ lib/widgets/mini_audio_wave.dart | 78 +++++++++++++++-------- 6 files changed, 153 insertions(+), 36 deletions(-) create mode 100644 assets/images/ai1_hd.png create mode 100644 assets/images/ai2_hd.png create mode 100644 assets/images/ai_hd_clean.png create mode 100644 lib/widgets/floating_icon_with_wave.dart diff --git a/assets/images/ai1_hd.png b/assets/images/ai1_hd.png new file mode 100644 index 0000000000000000000000000000000000000000..b61fa621a30a846c6a80b4e18cebca2cdb710bdb GIT binary patch literal 52840 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

cMp?rljHj^hyxEt{H=1^(I$V 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 createState() => _FloatingIconState(); } -class _FloatingIconState extends State { +class _FloatingIconState extends State + with SingleTickerProviderStateMixin { Offset _position = const Offset(10, 120); final iconSize = 80.0; bool _isShowPartScreen = false; + + late AnimationController _waveAnimationController; @override void initState() { super.initState(); // VehicleStateService(); + _waveAnimationController = AnimationController( + duration: const Duration(milliseconds: 1000), + vsync: this, + ); + } + + @override + void dispose() { + _waveAnimationController.dispose(); + super.dispose(); } void _showPartScreen() { @@ -67,13 +80,30 @@ class _FloatingIconState extends State { right: _position.dx, child: Consumer( builder: (context, messageService, child) { + // 立即响应录音状态变化,控制动画 + WidgetsBinding.instance.addPostFrameCallback((_) { + if (messageService.isRecording) { + if (!_waveAnimationController.isAnimating) { + _waveAnimationController.repeat(); + } + } else { + if (_waveAnimationController.isAnimating) { + _waveAnimationController.stop(); + } + } + }); + return GestureDetector( onTap: _showFullScreen, onLongPress: () async { _showPartScreen(); + // 立即启动动画 + _waveAnimationController.repeat(); await messageService.startVoiceInput(); }, onLongPressUp: () async { + // 立即停止动画 + _waveAnimationController.stop(); await messageService.stopAndProcessVoiceInput(); final hasMessage = messageService.messages.isNotEmpty; if (!hasMessage) { @@ -81,13 +111,17 @@ class _FloatingIconState extends State { } }, onPanUpdate: (details) => _updatePosition(details.delta), - child: Image.asset( - messageService.isRecording - ? 'assets/images/ai2.png' - : 'assets/images/ai1.png', - width: iconSize, - height: iconSize, - ), + child: messageService.isRecording + ? FloatingIconWithWave( + animationController: _waveAnimationController, + iconSize: iconSize, + waveColor: Colors.white, + ) + : Image.asset( + 'assets/images/ai1_hd.png', + width: iconSize, + height: iconSize, + ), ); }, ), diff --git a/lib/widgets/floating_icon_with_wave.dart b/lib/widgets/floating_icon_with_wave.dart new file mode 100644 index 0000000..d104567 --- /dev/null +++ b/lib/widgets/floating_icon_with_wave.dart @@ -0,0 +1,59 @@ +import 'package:flutter/material.dart'; +import 'mini_audio_wave.dart'; + +/// 浮动图标与声波动画组合组件 +/// +/// 将ai_hd_clean.png图片和AudioWaveLargeMini声波效果组合成一个独立组件 +class FloatingIconWithWave extends StatelessWidget { + /// 动画控制器,用于驱动声波动画 + final AnimationController animationController; + + /// 图标大小 + final double iconSize; + + /// 声波颜色,默认为白色 + final Color waveColor; + + /// 构造函数 + const FloatingIconWithWave({ + super.key, + required this.animationController, + required this.iconSize, + this.waveColor = Colors.white, + }); + + @override + Widget build(BuildContext context) { + return SizedBox( + width: iconSize, + height: iconSize, + child: Stack( + alignment: Alignment.center, + children: [ + // 背景图片 + Image.asset( + 'assets/images/ai_hd_clean.png', + width: iconSize, + height: iconSize, + fit: BoxFit.contain, + ), + // 声波动画,距离底部13px的位置 + Positioned( + bottom: 13 * (iconSize / 198), // 按比例计算距离底部的位置 + child: SizedBox( + width: 96 * (iconSize / 144), // 最宽不超过96px(按图片原始宽度比例) + height: 27 * (iconSize / 198), // 最高不超过27px(按图片原始高度比例) + child: AudioWaveLargeMini( + animationController: animationController, + waveColor: waveColor, + barSpacing: 2.5, // 减小间距以适应更小的宽度 + minHeightRatio: 0.4, // 调整最小高度比例 + maxHeightRatio: 1.0, // 保持最大高度比例 + ), + ), + ), + ], + ), + ); + } +} diff --git a/lib/widgets/mini_audio_wave.dart b/lib/widgets/mini_audio_wave.dart index d463a7c..765dfd5 100644 --- a/lib/widgets/mini_audio_wave.dart +++ b/lib/widgets/mini_audio_wave.dart @@ -3,7 +3,7 @@ import 'dart:math' as math; /// 小型按钮波形动画组件 /// -/// 用于显示适合小按钮的波形动画,包含8个竖线,动画效果由外部动画控制器驱动 +/// 用于显示适合小按钮的波形动画,竖线数量根据容器宽度自动计算 class AudioWaveLargeMini extends StatelessWidget { /// 动画控制器,用于驱动波形动画 final AnimationController animationController; @@ -11,11 +11,23 @@ class AudioWaveLargeMini extends StatelessWidget { /// 波形颜色,默认为白色 final Color waveColor; + /// 波形条间距,默认为3.0px + final double barSpacing; + + /// 最小高度比例,默认为0.3(相对于容器高度) + final double minHeightRatio; + + /// 最大高度比例,默认为1.0(相对于容器高度) + final double maxHeightRatio; + /// 构造函数 const AudioWaveLargeMini({ super.key, required this.animationController, this.waveColor = Colors.white, + this.barSpacing = 3.0, + this.minHeightRatio = 0.3, + this.maxHeightRatio = 1.0, }); @override @@ -23,34 +35,46 @@ class AudioWaveLargeMini extends StatelessWidget { return AnimatedBuilder( animation: animationController, // 使用传入的动画控制器 builder: (context, child) { - return Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: List.generate(8, (index) { // 生成8个波形条 - // 为每个竖线设置不同的相位,使动画更自然 - final phase = index * 0.4; - // 设置不同的频率变化 - final frequency = 1.0 + (index % 3) * 0.2; + return LayoutBuilder( + builder: (context, constraints) { + // 根据容器宽度动态计算竖线数量 + final containerWidth = constraints.maxWidth; + final containerHeight = constraints.maxHeight; + final barWidthWithSpacing = 2 + barSpacing; + final barCount = (containerWidth / barWidthWithSpacing).floor().clamp(3, 15); - // 计算波形高度(最小4.0,最大14.0) - final height = 4.0 + 10.0 * math.sin( - (animationController.value * 2 * math.pi * frequency) + phase - ).abs(); - - // 构建单个波形条 - return Padding( - padding: const EdgeInsets.symmetric(horizontal: 2.0), // 左右间隔4px - child: Container( - width: 2, // 波形条宽度2px - height: height, // 高度随动画变化 - decoration: BoxDecoration( - color: waveColor, - borderRadius: BorderRadius.circular(2), // 圆角效果 - ), - ), + return Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, // 改为垂直居中,和AudioWaveLarge一致 + children: List.generate(barCount, (index) { + // 为每个竖线设置不同的相位,和AudioWaveLarge保持一致 + final phase = index * 0.3; // 改为0.3,和AudioWaveLarge一致 + // 设置不同的频率变化 + final frequency = 1.0 + (index % 3) * 0.2; + + // 根据容器高度计算波形高度,使用和AudioWaveLarge相同的算法 + final minHeight = containerHeight * minHeightRatio; + final maxHeight = containerHeight * maxHeightRatio; + final height = minHeight + (maxHeight - minHeight) * math.sin( + (animationController.value * 2 * math.pi * frequency) + phase + ).abs(); + + // 构建单个波形条 + return Padding( + padding: EdgeInsets.symmetric(horizontal: barSpacing / 2), + child: Container( + width: 2, // 波形条宽度2px + height: height, // 高度随动画变化 + decoration: BoxDecoration( + color: waveColor, + borderRadius: BorderRadius.circular(1), // 圆角效果 + ), + ), + ); + }), ); - }), + }, ); }, );