From 025d8543543d869fbb48a824f0321dcb7b3199fd Mon Sep 17 00:00:00 2001 From: biao <> Date: Fri, 12 Jul 2024 16:02:57 +0800 Subject: [PATCH] 首页gametime播放修改 --- lib/pages/games/bloc.dart | 2 +- lib/pages/home/bloc.dart | 2 +- lib/pages/home/view.dart | 18 +++++++++++------- lib/pages/home/widgets/BaseHomeHeaderWidget.dart | 2 +- lib/pages/section/bloc/section_bloc.dart | 2 +- lib/pages/section/section_page.dart | 2 +- lib/pages/unit/bloc.dart | 2 +- lib/pages/unit/view.dart | 2 +- lib/utils/audio_player_util.dart | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/utils/audioplayer_util.dart | 81 --------------------------------------------------------------------------------- 10 files changed, 99 insertions(+), 95 deletions(-) create mode 100644 lib/utils/audio_player_util.dart delete mode 100644 lib/utils/audioplayer_util.dart diff --git a/lib/pages/games/bloc.dart b/lib/pages/games/bloc.dart index 3570c72..0efc369 100644 --- a/lib/pages/games/bloc.dart +++ b/lib/pages/games/bloc.dart @@ -2,7 +2,7 @@ import 'package:bloc/bloc.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/services.dart'; import 'package:wow_english/common/extension/string_extension.dart'; -import 'package:wow_english/utils/audioplayer_util.dart'; +import 'package:wow_english/utils/audio_player_util.dart'; import 'event.dart'; import 'game_entity.dart'; diff --git a/lib/pages/home/bloc.dart b/lib/pages/home/bloc.dart index 38141ae..0358ecd 100644 --- a/lib/pages/home/bloc.dart +++ b/lib/pages/home/bloc.dart @@ -2,7 +2,7 @@ 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 'package:wow_english/utils/audioplayer_util.dart'; +import 'package:wow_english/utils/audio_player_util.dart'; import '../../common/core/app_config_helper.dart'; import '../../common/request/dao/system_dao.dart'; diff --git a/lib/pages/home/view.dart b/lib/pages/home/view.dart index 318d533..51b4298 100644 --- a/lib/pages/home/view.dart +++ b/lib/pages/home/view.dart @@ -12,7 +12,7 @@ import 'package:wow_english/pages/home/state.dart'; import 'package:wow_english/pages/home/widgets/BaseHomeHeaderWidget.dart'; import 'package:wow_english/pages/shop/exchane/bloc/exchange_lesson_bloc.dart'; import 'package:wow_english/pages/user/bloc/user_bloc.dart'; -import 'package:wow_english/utils/audioplayer_util.dart'; +import 'package:wow_english/utils/audio_player_util.dart'; import '../../common/core/user_util.dart'; import '../../common/dialogs/show_dialog.dart'; @@ -143,12 +143,16 @@ class _HomePageView extends StatelessWidget { _checkPermission(() { AudioPlayerUtil.getInstance().playAudio( AudioPlayerUtilType.gameTime); - pushNamed(AppRouteName.games) - .then((value) => { - AudioPlayerUtil.getInstance() - .playAudio(AudioPlayerUtilType - .touch), - }); + Future.delayed(const Duration(seconds: 1), + () { + pushNamed(AppRouteName.games) + .then((value) => { + AudioPlayerUtil.getInstance() + .playAudio( + AudioPlayerUtilType + .touch), + }); + }); }, bloc); }, child: Column( diff --git a/lib/pages/home/widgets/BaseHomeHeaderWidget.dart b/lib/pages/home/widgets/BaseHomeHeaderWidget.dart index 8c2711a..14efa1d 100644 --- a/lib/pages/home/widgets/BaseHomeHeaderWidget.dart +++ b/lib/pages/home/widgets/BaseHomeHeaderWidget.dart @@ -3,7 +3,7 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:wow_english/common/core/app_config_helper.dart'; import 'package:wow_english/common/extension/string_extension.dart'; -import 'package:wow_english/utils/audioplayer_util.dart'; +import 'package:wow_english/utils/audio_player_util.dart'; import '../../../common/core/user_util.dart'; import '../../../models/course_entity.dart'; diff --git a/lib/pages/section/bloc/section_bloc.dart b/lib/pages/section/bloc/section_bloc.dart index 64b4862..02ee67c 100644 --- a/lib/pages/section/bloc/section_bloc.dart +++ b/lib/pages/section/bloc/section_bloc.dart @@ -9,7 +9,7 @@ import 'package:wow_english/common/request/dao/lesson_dao.dart'; import 'package:wow_english/common/request/exception.dart'; import 'package:wow_english/common/request/dao/listen_dao.dart'; import 'package:wow_english/models/course_process_entity.dart'; -import 'package:wow_english/utils/audioplayer_util.dart'; +import 'package:wow_english/utils/audio_player_util.dart'; import 'package:wow_english/utils/loading.dart'; import 'package:wow_english/utils/toast_util.dart'; diff --git a/lib/pages/section/section_page.dart b/lib/pages/section/section_page.dart index 86dc993..38c69a2 100644 --- a/lib/pages/section/section_page.dart +++ b/lib/pages/section/section_page.dart @@ -12,7 +12,7 @@ import 'package:wow_english/pages/section/widgets/section_item.dart'; import 'package:wow_english/pages/section/widgets/section_bouns_item.dart'; import 'package:wow_english/pages/section/widgets/section_header_widget.dart'; import 'package:wow_english/route/route.dart'; -import 'package:wow_english/utils/audioplayer_util.dart'; +import 'package:wow_english/utils/audio_player_util.dart'; import 'package:wow_english/utils/log_util.dart'; import 'package:wow_english/utils/toast_util.dart'; diff --git a/lib/pages/unit/bloc.dart b/lib/pages/unit/bloc.dart index 27b4271..8a77215 100644 --- a/lib/pages/unit/bloc.dart +++ b/lib/pages/unit/bloc.dart @@ -1,6 +1,6 @@ import 'package:bloc/bloc.dart'; import 'package:wow_english/pages/unit/widget/home_tab_header_widget.dart'; -import 'package:wow_english/utils/audioplayer_util.dart'; +import 'package:wow_english/utils/audio_player_util.dart'; import '../../common/request/dao/lesson_dao.dart'; import '../../common/request/exception.dart'; diff --git a/lib/pages/unit/view.dart b/lib/pages/unit/view.dart index c37ecdf..285e693 100644 --- a/lib/pages/unit/view.dart +++ b/lib/pages/unit/view.dart @@ -5,7 +5,7 @@ import 'package:wow_english/pages/unit/state.dart'; import 'package:wow_english/pages/unit/widget/course_unit_item.dart'; import 'package:wow_english/pages/unit/widget/home_tab_header_widget.dart'; import 'package:wow_english/route/route.dart'; -import 'package:wow_english/utils/audioplayer_util.dart'; +import 'package:wow_english/utils/audio_player_util.dart'; import '../../models/course_module_entity.dart'; import '../../models/course_unit_entity.dart'; diff --git a/lib/utils/audio_player_util.dart b/lib/utils/audio_player_util.dart new file mode 100644 index 0000000..db913cf --- /dev/null +++ b/lib/utils/audio_player_util.dart @@ -0,0 +1,81 @@ +import 'package:audioplayers/audioplayers.dart'; +import 'package:wow_english/common/extension/string_extension.dart'; + +enum AudioPlayerUtilType { + welcomeToWow('welcome_to_wow'), + classTime('class_time'), + gameTime('game_time'), + musicTime('music_time'), + readingTime('reading_time'), + videoTime('video_time'), + quizTime('quiz_time'), + countWithMe('count_with_me_instrumental'), + inMyTummy('in_my_tummy_instrumental'), + touch('touch_instrumental'); + + const AudioPlayerUtilType(this.path); + + final String path; +} + +class AudioPlayerUtil { + static AudioPlayerUtil? _instance; + late AudioPlayer audioPlayer; + late AudioPlayerUtilType currentType; + + // 私有构造函数 + AudioPlayerUtil._internal() { + audioPlayer = AudioPlayer(); + audioPlayer.onPlayerStateChanged.listen((event) async { + if (event == PlayerState.completed) { + // 播放结束再次播放 + if (currentType == AudioPlayerUtilType.inMyTummy) { + AudioPlayerUtil.getInstance() + .playAudio(AudioPlayerUtilType.inMyTummy); + } + if (currentType == AudioPlayerUtilType.countWithMe) { + AudioPlayerUtil.getInstance() + .playAudio(AudioPlayerUtilType.countWithMe); + } + if (currentType == AudioPlayerUtilType.welcomeToWow) { + AudioPlayerUtil.getInstance().playAudio(AudioPlayerUtilType.touch); + } + if (currentType == AudioPlayerUtilType.touch) { + AudioPlayerUtil.getInstance().playAudio(AudioPlayerUtilType.touch); + } + } + }); + } + + static AudioPlayerUtil getInstance() { + _instance ??= AudioPlayerUtil._internal(); + return _instance!; + } + +// 播放音频 + Future playAudio(AudioPlayerUtilType type) async { + currentType = type; + String path = type.path; + await audioPlayer.play(AssetSource(path.assetMp3), volume: 0.5); + await audioPlayer.onPlayerComplete.first; + } + + // stop + void stop() { + audioPlayer.stop(); + } + + // pause + void pause() { + if (audioPlayer.state == PlayerState.playing) { + audioPlayer.pause(); + } + } + + // resume + void resume() { + if (audioPlayer.state == PlayerState.paused) { + audioPlayer.resume(); + } + } +} diff --git a/lib/utils/audioplayer_util.dart b/lib/utils/audioplayer_util.dart deleted file mode 100644 index db913cf..0000000 --- a/lib/utils/audioplayer_util.dart +++ /dev/null @@ -1,81 +0,0 @@ -import 'package:audioplayers/audioplayers.dart'; -import 'package:wow_english/common/extension/string_extension.dart'; - -enum AudioPlayerUtilType { - welcomeToWow('welcome_to_wow'), - classTime('class_time'), - gameTime('game_time'), - musicTime('music_time'), - readingTime('reading_time'), - videoTime('video_time'), - quizTime('quiz_time'), - countWithMe('count_with_me_instrumental'), - inMyTummy('in_my_tummy_instrumental'), - touch('touch_instrumental'); - - const AudioPlayerUtilType(this.path); - - final String path; -} - -class AudioPlayerUtil { - static AudioPlayerUtil? _instance; - late AudioPlayer audioPlayer; - late AudioPlayerUtilType currentType; - - // 私有构造函数 - AudioPlayerUtil._internal() { - audioPlayer = AudioPlayer(); - audioPlayer.onPlayerStateChanged.listen((event) async { - if (event == PlayerState.completed) { - // 播放结束再次播放 - if (currentType == AudioPlayerUtilType.inMyTummy) { - AudioPlayerUtil.getInstance() - .playAudio(AudioPlayerUtilType.inMyTummy); - } - if (currentType == AudioPlayerUtilType.countWithMe) { - AudioPlayerUtil.getInstance() - .playAudio(AudioPlayerUtilType.countWithMe); - } - if (currentType == AudioPlayerUtilType.welcomeToWow) { - AudioPlayerUtil.getInstance().playAudio(AudioPlayerUtilType.touch); - } - if (currentType == AudioPlayerUtilType.touch) { - AudioPlayerUtil.getInstance().playAudio(AudioPlayerUtilType.touch); - } - } - }); - } - - static AudioPlayerUtil getInstance() { - _instance ??= AudioPlayerUtil._internal(); - return _instance!; - } - -// 播放音频 - Future playAudio(AudioPlayerUtilType type) async { - currentType = type; - String path = type.path; - await audioPlayer.play(AssetSource(path.assetMp3), volume: 0.5); - await audioPlayer.onPlayerComplete.first; - } - - // stop - void stop() { - audioPlayer.stop(); - } - - // pause - void pause() { - if (audioPlayer.state == PlayerState.playing) { - audioPlayer.pause(); - } - } - - // resume - void resume() { - if (audioPlayer.state == PlayerState.paused) { - audioPlayer.resume(); - } - } -} -- libgit2 0.22.2