diff --git a/lib/pages/home/bloc.dart b/lib/pages/home/bloc.dart index 7fc475b..6c6333f 100644 --- a/lib/pages/home/bloc.dart +++ b/lib/pages/home/bloc.dart @@ -1,5 +1,6 @@ import 'package:audioplayers/audioplayers.dart'; import 'package:bloc/bloc.dart'; +import 'package:wow_english/common/core/user_util.dart'; import 'package:wow_english/common/extension/string_extension.dart'; import '../../common/core/app_config_helper.dart'; @@ -19,22 +20,14 @@ class HomeBloc extends Bloc { late AudioPlayer audioPlayer; late AudioPlayer studyPlayer; late AudioPlayer gamePlayer; - @override - Future close() { - audioPlayer.release(); - audioPlayer.dispose(); - studyPlayer.release(); - studyPlayer.dispose(); - gamePlayer.release(); - gamePlayer.dispose(); - return super.close(); - } void _init(InitEvent event, Emitter emit) async { - audioPlayer = AudioPlayer(playerId: 'audio'); - gamePlayer = AudioPlayer(playerId: 'game'); - studyPlayer = AudioPlayer(playerId: 'study'); - audioPlayer.play(AssetSource('welcome_to_wow'.assetMp3)); + if (UserUtil.isLogined()) { + audioPlayer = AudioPlayer(playerId: 'audio'); + gamePlayer = AudioPlayer(playerId: 'game'); + studyPlayer = AudioPlayer(playerId: 'study'); + audioPlayer.play(AssetSource('welcome_to_wow'.assetMp3)); + } await _checkUpdate(emit); } diff --git a/lib/pages/home/view.dart b/lib/pages/home/view.dart index 5dfa35b..6f54e3f 100644 --- a/lib/pages/home/view.dart +++ b/lib/pages/home/view.dart @@ -73,15 +73,17 @@ class _HomePageView extends StatelessWidget { _checkPermission(() { bloc.studyPlayer .play(AssetSource('class_time'.assetMp3)); - pushNamed(AppRouteName.courseUnit) - .then((value) => { - if (value != null) - { - bloc.exchangeResult = - value['exchange'], - bloc.add(ExchangeSuccessEvent()) - } - }); + Future.delayed(const Duration(seconds: 1), () { + pushNamed(AppRouteName.courseUnit) + .then((value) => { + if (value != null) + { + bloc.exchangeResult = + value['exchange'], + bloc.add(ExchangeSuccessEvent()) + } + }); + }); }, bloc); }, child: Column( diff --git a/lib/pages/section/bloc/section_bloc.dart b/lib/pages/section/bloc/section_bloc.dart index 77ed636..86e069e 100644 --- a/lib/pages/section/bloc/section_bloc.dart +++ b/lib/pages/section/bloc/section_bloc.dart @@ -65,22 +65,18 @@ class SectionBloc extends Bloc { on(_requestEnterClass); on(_requestVideoLesson); on(_pageControllerChange); - on(_init); - on((event, emit) { - // audioPlayer = AudioPlayer(playerId: 'section'); - // backgroundPlayer = AudioPlayer(playerId: 'back'); - // backgroundPlayer.onPlayerStateChanged.listen((event) async { - // if (event == PlayerState.completed) { - // debugPrint('播放结束'); - // backgroundPlayer - // .play(AssetSource('count_with_me_instrumental'.assetMp3)); - // } - // }); - // audioPlayer.onPlayerStateChanged.listen((event) async { - // if (event == PlayerState.completed) { - // debugPrint('播放结束'); - // } - // }); + on((event, emit) { + audioPlayer = AudioPlayer(playerId: 'section'); + backgroundPlayer = AudioPlayer(playerId: 'back'); + backgroundPlayer.play(AssetSource('count_with_me_instrumental'.assetMp3)); + + backgroundPlayer.onPlayerStateChanged.listen((event) async { + if (event == PlayerState.completed) { + // 播放结束再次播放 + backgroundPlayer + .play(AssetSource('count_with_me_instrumental'.assetMp3)); + } + }); }); } @override @@ -92,12 +88,6 @@ class SectionBloc extends Bloc { return super.close(); } - void _init(InitEvent event, Emitter emit) async { - audioPlayer = AudioPlayer(playerId: 'section'); - // backgroundPlayer = AudioPlayer(playerId: 'back'); - // backgroundPlayer.play(AssetSource('count_with_me_instrumental'.assetMp3)); - } - void _requestSectionsData( RequestDataEvent event, Emitter emitter) async { try { diff --git a/lib/pages/section/bloc/section_event.dart b/lib/pages/section/bloc/section_event.dart index 0aecf86..06eb1fb 100644 --- a/lib/pages/section/bloc/section_event.dart +++ b/lib/pages/section/bloc/section_event.dart @@ -55,5 +55,3 @@ class CurrentUnitIndexChangeEvent extends SectionEvent { CurrentUnitIndexChangeEvent(this.unitIndex); } - -class InitBlocEvent extends SectionEvent {} diff --git a/lib/pages/user/setting/setting_page.dart b/lib/pages/user/setting/setting_page.dart index b5b62b1..e28a265 100644 --- a/lib/pages/user/setting/setting_page.dart +++ b/lib/pages/user/setting/setting_page.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:package_info_plus/package_info_plus.dart'; import 'package:wow_english/common/widgets/we_app_bar.dart'; import '../../../route/route.dart'; @@ -9,14 +10,30 @@ class SettingPage extends StatefulWidget { @override State createState() { - return SettingPageState(); + return SettingPageState(); } } class SettingPageState extends State { + String? _version; + String? _buildNum; + @override + void initState() { + super.initState(); + _retrieveVersionInfo(); + } + + Future _retrieveVersionInfo() async { + PackageInfo packageInfo = await PackageInfo.fromPlatform(); + setState(() { + _version = packageInfo.version; + _buildNum = packageInfo.buildNumber; + }); + } + @override Widget build(BuildContext context) { - return Scaffold( + return Scaffold( appBar: const WEAppBar( titleText: '设置', ), @@ -28,17 +45,18 @@ class SettingPageState extends State { child: ListView( children: [ 34.verticalSpace, - _buildItemWidget('注销账号', onPress: (){ + _buildItemWidget('注销账号', onPress: () { pushNamed(AppRouteName.deleteAccount); }), 12.verticalSpace, - _buildItemWidget('清除缓存', onPress: (){ - - }), + _buildItemWidget('清除缓存', onPress: () {}), 12.verticalSpace, - _buildItemWidget('帮助与反馈', onPress: (){ + _buildItemWidget('帮助与反馈', onPress: () { pushNamed(AppRouteName.reBack); }), + 12.verticalSpace, + _buildItemWidget('Version: $_version Build:$_buildNum', + onPress: () {}), ], ), ), @@ -46,13 +64,15 @@ class SettingPageState extends State { ), ); } - - Widget _buildItemWidget(String text,{VoidCallback? onPress}) { + + Widget _buildItemWidget(String text, {VoidCallback? onPress}) { return OutlinedButton( onPressed: () => onPress?.call(), style: ButtonStyle( - side: MaterialStateProperty.all(BorderSide(color: const Color(0xFF140C10), width: 1.5.w)), - shape: MaterialStateProperty.all(RoundedRectangleBorder(borderRadius: BorderRadius.circular(15.r))), + side: MaterialStateProperty.all( + BorderSide(color: const Color(0xFF140C10), width: 1.5.w)), + shape: MaterialStateProperty.all( + RoundedRectangleBorder(borderRadius: BorderRadius.circular(15.r))), minimumSize: MaterialStateProperty.all(Size(double.infinity, 58.h)), backgroundColor: MaterialStateProperty.all(Colors.white), ), @@ -66,4 +86,4 @@ class SettingPageState extends State { ), ); } -} \ No newline at end of file +}