Commit b81332cac9a883de284377a729048504a8c873c2

Authored by 吴启风
1 parent c623c7b2

feat:喇叭组件替换

lib/pages/practice/topic_picture_page.dart
... ... @@ -295,17 +295,16 @@ class _TopicPicturePage extends StatelessWidget {
295 295 Row(
296 296 mainAxisAlignment: MainAxisAlignment.center,
297 297 children: [
298   - GestureDetector(
  298 + SpeakerWidget(
  299 + isPlaying: bloc.voicePlayState == VoicePlayState.playing,
  300 + // 控制动画播放
  301 + isClickable: true,
  302 + // 控制是否可点击
  303 + width: 32.w,
  304 + height: 32.w,
299 305 onTap: () {
300 306 bloc.add(VoicePlayEvent());
301 307 },
302   - child: Image.asset(
303   - bloc.voicePlayState == VoicePlayState.playing
304   - ? 'reade_answer'.assetGif
305   - : 'voice'.assetPng,
306   - height: 33.h,
307   - width: 30.w,
308   - ),
309 308 ),
310 309 10.horizontalSpace,
311 310 Text(topics?.word ?? '',
... ... @@ -376,16 +375,17 @@ class _TopicPicturePage extends StatelessWidget {
376 375 return SafeArea(
377 376 child: Column(
378 377 children: [
379   - GestureDetector(
380   - onTap: () {
381   - bloc.add(VoicePlayEvent());
382   - },
383   - child: Image.asset(
384   - bloc.voicePlayState == VoicePlayState.playing
385   - ? 'reade_answer'.assetGif
386   - : 'voice'.assetPng,
387   - height: 33.h,
388   - width: 30.w)),
  378 + SpeakerWidget(
  379 + isPlaying: bloc.voicePlayState == VoicePlayState.playing,
  380 + // 控制动画播放
  381 + isClickable: true,
  382 + // 控制是否可点击
  383 + width: 32.w,
  384 + height: 32.w,
  385 + onTap: () {
  386 + bloc.add(VoicePlayEvent());
  387 + },
  388 + ),
389 389 26.verticalSpace,
390 390 SizedBox(
391 391 width: 163.w * (topics?.topicAnswerList?.length ?? 0),
... ...
lib/pages/reading/reading_page.dart
... ... @@ -9,6 +9,7 @@ import 'package:wow_english/route/route.dart';
9 9 import '../../common/core/app_consts.dart';
10 10 import '../../common/core/user_util.dart';
11 11 import '../../common/widgets/recorder_widget.dart';
  12 +import '../../common/widgets/speaker_widget.dart';
12 13 import '../../models/course_process_entity.dart';
13 14 import '../../utils/log_util.dart';
14 15 import 'bloc/reading_bloc.dart';
... ... @@ -156,21 +157,18 @@ class _ReadingPage extends StatelessWidget {
156 157 child: Row(
157 158 children: [
158 159 5.horizontalSpace,
159   - GestureDetector(
  160 + SpeakerWidget(
  161 + isPlaying:
  162 + bloc.voicePlayState == VoicePlayState.playing &&
  163 + bloc.isOriginAudioPlaying,
  164 + // 控制动画播放
  165 + isClickable: !bloc.isRecording,
  166 + // 控制是否可点击
  167 + width: 42.w,
  168 + height: 42.w,
160 169 onTap: () {
161   - if (bloc.isRecording) {
162   - return;
163   - }
164 170 bloc.add(PlayOriginalAudioEvent(null));
165 171 },
166   - child: Image.asset(
167   - bloc.voicePlayState == VoicePlayState.playing &&
168   - bloc.isOriginAudioPlaying
169   - ? 'reade_answer'.assetGif
170   - : 'voice'.assetPng,
171   - height: 40.h,
172   - width: 45.w,
173   - ),
174 172 ),
175 173 SizedBox(
176 174 width: 10.w,
... ... @@ -188,17 +186,16 @@ class _ReadingPage extends StatelessWidget {
188 186 ),
189 187 RecorderWidget(
190 188 isPlaying: bloc.isRecording,
191   - isClickable: bloc.voicePlayState != VoicePlayState.playing,
  189 + isClickable:
  190 + bloc.voicePlayState != VoicePlayState.playing,
192 191 width: 60.w,
193 192 height: 60.w,
194 193 onTap: () {
195 194 if (bloc.isRecording) {
196 195 bloc.add(XSVoiceStopEvent());
197 196 } else {
198   - bloc.add(XSVoiceStartEvent(
199   - bloc.readingContent(),
200   - '0',
201   - UserUtil.getUser()?.id.toString()));
  197 + bloc.add(XSVoiceStartEvent(bloc.readingContent(),
  198 + '0', UserUtil.getUser()?.id.toString()));
202 199 }
203 200 },
204 201 ),
... ...