Blame view

lib/pages/video/lookvideo/bloc/look_video_bloc.dart 1.87 KB
119ba920   liangchengyou   feat:视频播放器
1
2
3
  import 'package:flutter/cupertino.dart';
  import 'package:flutter_bloc/flutter_bloc.dart';
  import 'package:video_player/video_player.dart';
46675a89   吴启风   feat:过渡页-视频环节
4
5
6
  import 'package:wow_english/pages/section/subsection/base_section/bloc.dart';
  import 'package:wow_english/pages/section/subsection/base_section/event.dart';
  import 'package:wow_english/pages/section/subsection/base_section/state.dart';
119ba920   liangchengyou   feat:视频播放器
7
  
1e22b7d1   吴启风   feat:儿歌/视频环节接口请求时机优化
8
9
10
11
12
13
  import '../../../../common/request/dao/listen_dao.dart';
  import '../../../../common/request/exception.dart';
  import '../../../../models/course_process_entity.dart';
  import '../../../../utils/loading.dart';
  import '../../../../utils/toast_util.dart';
  
119ba920   liangchengyou   feat:视频播放器
14
15
16
  part 'look_video_event.dart';
  part 'look_video_state.dart';
  
aa0d2360   吴启风   feat:过渡页-视频环节(再来一次)
17
  class LookVideoBloc extends BaseSectionBloc<BaseSectionEvent, BaseSectionState> {
119ba920   liangchengyou   feat:视频播放器
18
  
46675a89   吴启风   feat:过渡页-视频环节
19
    final String? _videoUrl;
6baa39bd   吴启风   feat:儿歌/视频保留url传参...
20
    String? get videoUrl => (_videoUrl?.isNotEmpty == true) ? _videoUrl : _entity?.videos?.videoUrl ?? '';
46675a89   吴启风   feat:过渡页-视频环节
21
22
23
24
25
26
27
    final String? _typeTitle;
    String? get typeTitle => _typeTitle;
    final String? _courseLessonId;
    String? get courseLessonId => _courseLessonId;
    final bool _isTopic;
    bool get isTopic => _isTopic;
  
1e22b7d1   吴启风   feat:儿歌/视频环节接口请求时机优化
28
29
30
31
    CourseProcessEntity? _entity;
  
    CourseProcessEntity? get entity => _entity;
  
46675a89   吴启风   feat:过渡页-视频环节
32
    LookVideoBloc(this._videoUrl, this._typeTitle, this._courseLessonId, this._isTopic) : super(LookVideoInitial()) {
119ba920   liangchengyou   feat:视频播放器
33
34
35
      on<LookVideoEvent>((event, emit) {
        // TODO: implement event handler
      });
1e22b7d1   吴启风   feat:儿歌/视频环节接口请求时机优化
36
      on<RequestDataEvent>(_requestData);
aa0d2360   吴启风   feat:过渡页-视频环节(再来一次)
37
38
39
      on<SectionAgainEvent>((event, emit) {
        emit(SectionAgainState());
      });
119ba920   liangchengyou   feat:视频播放器
40
    }
1e22b7d1   吴启风   feat:儿歌/视频环节接口请求时机优化
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  
    ///请求数据
    void _requestData(
        RequestDataEvent event, Emitter<BaseSectionState> emitter) async {
      try {
        await loading(() async {
          _entity = await ListenDao.process(courseLessonId);
          emitter(RequestDataState());
        });
      } catch (e) {
        if (e is ApiException) {
          showToast(e.message ?? '请求失败,请检查网络连接');
        }
      }
    }
119ba920   liangchengyou   feat:视频播放器
56
  }