Commit 46c68b4593dd6106ccecf0c6f7ecad1d461c4ab1
1 parent
0596f520
feat:翻页取消先声评测&增加先声取消回调
Showing
2 changed files
with
16 additions
and
7 deletions
android/app/src/main/kotlin/com/kouyuxingqiu/wow_english/methodChannels/SingSoungMethodChannel.kt
@@ -94,4 +94,10 @@ class SingSoungMethodChannel(activity: FlutterActivity, flutterEngine: FlutterEn | @@ -94,4 +94,10 @@ class SingSoungMethodChannel(activity: FlutterActivity, flutterEngine: FlutterEn | ||
94 | invokeMethod("voiceEnd", null) | 94 | invokeMethod("voiceEnd", null) |
95 | } | 95 | } |
96 | } | 96 | } |
97 | + | ||
98 | + override fun onCancel() { | ||
99 | + GlobalHandler.runOnMainThread { | ||
100 | + invokeMethod("voiceCancel", null) | ||
101 | + } | ||
102 | + } | ||
97 | } | 103 | } |
98 | \ No newline at end of file | 104 | \ No newline at end of file |
lib/pages/reading/bloc/reading_bloc.dart
@@ -139,10 +139,10 @@ class ReadingPageBloc | @@ -139,10 +139,10 @@ class ReadingPageBloc | ||
139 | return; | 139 | return; |
140 | } | 140 | } |
141 | 141 | ||
142 | - if (call.method == 'voiceEnd') { | ||
143 | - //评测结束 | 142 | + if (call.method == 'voiceEnd' || call.method == 'voiceCancel') { |
143 | + //评测结束or评测取消 | ||
144 | if (kDebugMode) { | 144 | if (kDebugMode) { |
145 | - print('评测结束'); | 145 | + print(call.method == 'voiceEnd' ? '评测结束' : '评测取消'); |
146 | } | 146 | } |
147 | _isRecording = false; | 147 | _isRecording = false; |
148 | add(OnXSVoiceStateChangeEvent()); | 148 | add(OnXSVoiceStateChangeEvent()); |
@@ -151,6 +151,7 @@ class ReadingPageBloc | @@ -151,6 +151,7 @@ class ReadingPageBloc | ||
151 | 151 | ||
152 | if (call.method == 'voiceFail') { | 152 | if (call.method == 'voiceFail') { |
153 | //评测失败 | 153 | //评测失败 |
154 | + _isRecording = false; | ||
154 | EasyLoading.showToast('评测失败'); | 155 | EasyLoading.showToast('评测失败'); |
155 | return; | 156 | return; |
156 | } | 157 | } |
@@ -179,9 +180,8 @@ class ReadingPageBloc | @@ -179,9 +180,8 @@ class ReadingPageBloc | ||
179 | void _pageControllerChange(CurrentPageIndexChangeEvent event, | 180 | void _pageControllerChange(CurrentPageIndexChangeEvent event, |
180 | Emitter<ReadingPageState> emitter) async { | 181 | Emitter<ReadingPageState> emitter) async { |
181 | _currentPage = event.pageIndex; | 182 | _currentPage = event.pageIndex; |
182 | - debugPrint("WQF _playOriginalAudioInner begin"); | 183 | + _voiceXsCancel(); |
183 | _playOriginalAudioInner(null); | 184 | _playOriginalAudioInner(null); |
184 | - debugPrint("WQF _playOriginalAudioInner end"); | ||
185 | emitter(CurrentPageIndexState()); | 185 | emitter(CurrentPageIndexState()); |
186 | } | 186 | } |
187 | 187 | ||
@@ -229,7 +229,7 @@ class ReadingPageBloc | @@ -229,7 +229,7 @@ class ReadingPageBloc | ||
229 | await audioPlayer.stop(); | 229 | await audioPlayer.stop(); |
230 | } else { | 230 | } else { |
231 | _isOriginAudioPlaying = true; | 231 | _isOriginAudioPlaying = true; |
232 | - debugPrint("WQF _playOriginalAudioInner _isOriginAudioPlaying: true"); | 232 | + Log.d("_playOriginalAudioInner _isOriginAudioPlaying: true"); |
233 | audioUrl ??= currentPageData()?.audioUrl ?? ''; | 233 | audioUrl ??= currentPageData()?.audioUrl ?? ''; |
234 | _playAudio(audioUrl); | 234 | _playAudio(audioUrl); |
235 | } | 235 | } |
@@ -355,7 +355,10 @@ class ReadingPageBloc | @@ -355,7 +355,10 @@ class ReadingPageBloc | ||
355 | 355 | ||
356 | ///取消评测(用于处理退出页面后录音未停止等异常情况的保护操作) | 356 | ///取消评测(用于处理退出页面后录音未停止等异常情况的保护操作) |
357 | void _voiceXsCancel() { | 357 | void _voiceXsCancel() { |
358 | - methodChannel.invokeMethod('cancelVoice'); | 358 | + Log.d("取消评测 _voiceXsCancel _isRecording=$_isRecording"); |
359 | + if (_isRecording) { | ||
360 | + methodChannel.invokeMethod('cancelVoice'); | ||
361 | + } | ||
359 | } | 362 | } |
360 | 363 | ||
361 | void _voicePlayStateChange(VoicePlayStateChangeEvent event, | 364 | void _voicePlayStateChange(VoicePlayStateChangeEvent event, |