From 0e314ad506eb74c15af1065bb50507524741e1ce Mon Sep 17 00:00:00 2001 From: wuqifeng <540416539@qq.com> Date: Wed, 24 Jul 2024 00:38:41 +0800 Subject: [PATCH] feat:开屏页播放背景音乐welcome wow english --- lib/app/splash_page.dart | 7 +++++-- lib/pages/home/bloc.dart | 9 ++++++--- lib/pages/home/widgets/ShakeImage.dart | 6 ++++-- lib/utils/audio_player_util.dart | 3 --- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/lib/app/splash_page.dart b/lib/app/splash_page.dart index 90f8e5f..0973226 100644 --- a/lib/app/splash_page.dart +++ b/lib/app/splash_page.dart @@ -14,6 +14,7 @@ import 'package:wow_english/common/request/config.dart'; import 'package:wow_english/common/request/dao/user_dao.dart'; import 'package:wow_english/models/user_entity.dart'; import 'package:wow_english/route/route.dart'; +import 'package:wow_english/utils/audio_player_util.dart'; import 'package:wow_english/utils/log_util.dart'; import 'package:wow_english/utils/sp_util.dart'; @@ -58,7 +59,8 @@ class _TransitionViewState extends State { await fetchNecessaryData(token); apartInMilliseconds = DateTime.now().difference(startTime).inMilliseconds; } - int duration = max(2000 - apartInMilliseconds, 0); + /// 开屏最低2.5s,保证视觉与音乐同步 + int duration = max(2500 - apartInMilliseconds, 0); Log.d('Splash getUserInfo 耗时:${apartInMilliseconds}ms, 最终duration=$duration'); Timer(Duration(milliseconds: duration), () { /*if (userEntity != null) { @@ -163,9 +165,10 @@ class _TransitionViewState extends State { } void init() async { + changeDevice(); await SpUtil.preInit(); + AudioPlayerUtil.getInstance().playAudio(AudioPlayerUtilType.welcomeToWow); startTime(); - changeDevice(); } void changeDevice() async { diff --git a/lib/pages/home/bloc.dart b/lib/pages/home/bloc.dart index 6cf5a7c..56df743 100644 --- a/lib/pages/home/bloc.dart +++ b/lib/pages/home/bloc.dart @@ -1,7 +1,7 @@ -import 'package:audioplayers/audioplayers.dart'; +import 'dart:async'; + 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/audio_player_util.dart'; import '../../common/core/app_config_helper.dart'; @@ -21,7 +21,10 @@ class HomeBloc extends Bloc { void _init(InitEvent event, Emitter emit) async { if (UserUtil.isLogined()) { - AudioPlayerUtil.getInstance().playAudio(AudioPlayerUtilType.welcomeToWow); + /// 增加1s避免与开屏音乐撞车(覆盖) + Timer(const Duration(seconds: 1), () { + AudioPlayerUtil.getInstance().playAudio(AudioPlayerUtilType.touch); + }); } await _checkUpdate(emit); } diff --git a/lib/pages/home/widgets/ShakeImage.dart b/lib/pages/home/widgets/ShakeImage.dart index c8f4541..9d49751 100644 --- a/lib/pages/home/widgets/ShakeImage.dart +++ b/lib/pages/home/widgets/ShakeImage.dart @@ -38,9 +38,11 @@ class _ShakeImageState extends State with SingleTickerProviderStateM TweenSequenceItem(tween: Tween(begin: -0.05, end: 0.0).chain(CurveTween(curve: Curves.easeInOut)), weight: 1), ]).animate(_controller); - _controller.forward(from: 0.0); - _timer = Timer.periodic(const Duration(seconds: 4), (Timer timer) { + Timer(const Duration(seconds: 1), () { _controller.forward(from: 0.0); + _timer = Timer.periodic(const Duration(seconds: 4), (Timer timer) { + _controller.forward(from: 0.0); + }); }); // _controller.addStatusListener((status) { diff --git a/lib/utils/audio_player_util.dart b/lib/utils/audio_player_util.dart index b504c70..a08ece4 100644 --- a/lib/utils/audio_player_util.dart +++ b/lib/utils/audio_player_util.dart @@ -44,9 +44,6 @@ class AudioPlayerUtil extends WidgetsBindingObserver { AudioPlayerUtil.getInstance() .playAudio(AudioPlayerUtilType.countWithMe); } - if (currentType == AudioPlayerUtilType.welcomeToWow) { - AudioPlayerUtil.getInstance().playAudio(AudioPlayerUtilType.touch); - } if (currentType == AudioPlayerUtilType.touch) { AudioPlayerUtil.getInstance().playAudio(AudioPlayerUtilType.touch); } -- libgit2 0.22.2