Commit a434ef7b2e9406f23089ad20eebd3fa7d2f8408c
1 parent
d5e7df44
feat:修复绘本页闪退问题
Showing
3 changed files
with
9 additions
and
12 deletions
assets/images/photo_pause.png
lib/pages/reading/bloc/reading_bloc.dart
@@ -90,20 +90,16 @@ class ReadingPageBloc extends Bloc<ReadingPageEvent, ReadingPageState> { | @@ -90,20 +90,16 @@ class ReadingPageBloc extends Bloc<ReadingPageEvent, ReadingPageState> { | ||
90 | //音频播放器 | 90 | //音频播放器 |
91 | audioPlayer = AudioPlayer(); | 91 | audioPlayer = AudioPlayer(); |
92 | audioPlayer.onPlayerStateChanged.listen((event) async { | 92 | audioPlayer.onPlayerStateChanged.listen((event) async { |
93 | - debugPrint('播放状态变化'); | ||
94 | if (event == PlayerState.completed) { | 93 | if (event == PlayerState.completed) { |
95 | - debugPrint('播放完成'); | ||
96 | _voicePlayState = VoicePlayState.completed; | 94 | _voicePlayState = VoicePlayState.completed; |
97 | _onAudioPlayComplete(); | 95 | _onAudioPlayComplete(); |
98 | } | 96 | } |
99 | if (event == PlayerState.stopped) { | 97 | if (event == PlayerState.stopped) { |
100 | - debugPrint('播放结束'); | ||
101 | _voicePlayState = VoicePlayState.stop; | 98 | _voicePlayState = VoicePlayState.stop; |
102 | _onAudioPlayComplete(); | 99 | _onAudioPlayComplete(); |
103 | } | 100 | } |
104 | 101 | ||
105 | if (event == PlayerState.playing) { | 102 | if (event == PlayerState.playing) { |
106 | - debugPrint('正在播放中'); | ||
107 | _voicePlayState = VoicePlayState.playing; | 103 | _voicePlayState = VoicePlayState.playing; |
108 | } | 104 | } |
109 | if (isClosed) { | 105 | if (isClosed) { |
@@ -261,6 +257,9 @@ class ReadingPageBloc extends Bloc<ReadingPageEvent, ReadingPageState> { | @@ -261,6 +257,9 @@ class ReadingPageBloc extends Bloc<ReadingPageEvent, ReadingPageState> { | ||
261 | } | 257 | } |
262 | 258 | ||
263 | CourseProcessReadings? currentPageData() { | 259 | CourseProcessReadings? currentPageData() { |
260 | + if ((_entity?.readings?.length??0) - 1 < _currentPage) { | ||
261 | + return null; | ||
262 | + } | ||
264 | return _entity?.readings?[_currentPage]; | 263 | return _entity?.readings?[_currentPage]; |
265 | } | 264 | } |
266 | 265 | ||
@@ -338,7 +337,7 @@ class ReadingPageBloc extends Bloc<ReadingPageEvent, ReadingPageState> { | @@ -338,7 +337,7 @@ class ReadingPageBloc extends Bloc<ReadingPageEvent, ReadingPageState> { | ||
338 | nextPage(); | 337 | nextPage(); |
339 | } | 338 | } |
340 | 339 | ||
341 | - Log.d("_onAudioPlayComplete _isOriginAudioPlaying=${_isOriginAudioPlaying} _voicePlayState=$_voicePlayState recordUrl=${currentPageData()?.recordUrl?.isNotEmpty}"); | 340 | + Log.d("_onAudioPlayComplete _isOriginAudioPlaying=$_isOriginAudioPlaying _voicePlayState=$_voicePlayState recordUrl=${currentPageData()?.recordUrl?.isNotEmpty}"); |
342 | if (_isOriginAudioPlaying && _voicePlayState == VoicePlayState.completed && currentPageData()?.recordUrl?.isNotEmpty != true) { | 341 | if (_isOriginAudioPlaying && _voicePlayState == VoicePlayState.completed && currentPageData()?.recordUrl?.isNotEmpty != true) { |
343 | ///如果刚刚完成原音播放&&录音为空,则开始录音 | 342 | ///如果刚刚完成原音播放&&录音为空,则开始录音 |
344 | startRecord(currentPageData()?.word ?? ''); | 343 | startRecord(currentPageData()?.word ?? ''); |
@@ -358,7 +357,7 @@ class ReadingPageBloc extends Bloc<ReadingPageEvent, ReadingPageState> { | @@ -358,7 +357,7 @@ class ReadingPageBloc extends Bloc<ReadingPageEvent, ReadingPageState> { | ||
358 | OnXSVoiceStateChangeEvent event, | 357 | OnXSVoiceStateChangeEvent event, |
359 | Emitter<ReadingPageState> emitter | 358 | Emitter<ReadingPageState> emitter |
360 | ) async { | 359 | ) async { |
361 | - emit(XSVoiceTestState()); | 360 | + emitter(XSVoiceTestState()); |
362 | } | 361 | } |
363 | } | 362 | } |
364 | 363 |
lib/pages/reading/reading_page.dart
@@ -118,8 +118,7 @@ class _ReadingPage extends StatelessWidget { | @@ -118,8 +118,7 @@ class _ReadingPage extends StatelessWidget { | ||
118 | ), | 118 | ), |
119 | 119 | ||
120 | Padding( | 120 | Padding( |
121 | - padding: EdgeInsets.only( | ||
122 | - right: 15.w + ScreenUtil().bottomBarHeight), | 121 | + padding: EdgeInsets.only(right: 15.w + ScreenUtil().bottomBarHeight), |
123 | child: GestureDetector( | 122 | child: GestureDetector( |
124 | onTap: () { | 123 | onTap: () { |
125 | bloc.add(CurrentModeChangeEvent()); | 124 | bloc.add(CurrentModeChangeEvent()); |
@@ -233,13 +232,12 @@ class _ReadingPage extends StatelessWidget { | @@ -233,13 +232,12 @@ class _ReadingPage extends StatelessWidget { | ||
233 | ); | 232 | ); |
234 | }); | 233 | }); |
235 | 234 | ||
236 | - Widget _readingPagerItem(CourseProcessReadings readings) => | ||
237 | - BlocBuilder<ReadingPageBloc, ReadingPageState>(builder: (context, state) { | 235 | + Widget _readingPagerItem(CourseProcessReadings readings) => BlocBuilder<ReadingPageBloc, ReadingPageState>( |
236 | + builder: (context, state) { | ||
238 | return Stack( | 237 | return Stack( |
239 | children: [ | 238 | children: [ |
240 | Positioned.fill( | 239 | Positioned.fill( |
241 | - child: | ||
242 | - Image.network(readings.picUrl ?? '', fit: BoxFit.cover), | 240 | + child: Image.network(readings.picUrl ?? '', fit: BoxFit.cover), |
243 | ), | 241 | ), |
244 | ], | 242 | ], |
245 | ); | 243 | ); |