From df876cae6d71082ab75590a7234d6e818e48916c Mon Sep 17 00:00:00 2001 From: JiWoong Sul Date: Thu, 8 Jan 2026 16:19:07 +0900 Subject: [PATCH] =?UTF-8?q?fix(audio):=20=ED=83=80=EC=9D=B4=ED=8B=80=20BGM?= =?UTF-8?q?=20=EC=9E=AC=EC=83=9D=20=EC=9C=84=EC=B9=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - build() 내 반복 호출 대신 세이브 확인 완료 후 1회 재생 --- lib/src/app.dart | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/src/app.dart b/lib/src/app.dart index 854f0f3..3425cd3 100644 --- a/lib/src/app.dart +++ b/lib/src/app.dart @@ -133,6 +133,8 @@ class _AskiiNeverDieAppState extends State { _savedGamePreview = preview; _isCheckingSave = false; }); + // 세이브 확인 완료 후 타이틀 BGM 재생 + _audioService.playBgm('title'); } } @@ -455,8 +457,6 @@ class _AskiiNeverDieAppState extends State { return const _SplashScreen(); } - // 항상 프론트 화면 표시 (타이틀 BGM 재생) - _audioService.playBgm('title'); return FrontScreen( onNewCharacter: _navigateToNewCharacter, onLoadSave: _loadSave, @@ -478,7 +478,7 @@ class _AskiiNeverDieAppState extends State { ), ), ).then((_) { - // 새 게임 후 돌아오면 세이브 정보 갱신 + // 새 게임 후 돌아오면 세이브 정보 갱신 (BGM은 _checkForExistingSave에서 재생) _checkForExistingSave(); }); } @@ -554,7 +554,7 @@ class _AskiiNeverDieAppState extends State { ), ), ).then((_) { - // 게임에서 돌아오면 세이브 정보 갱신 + // 게임에서 돌아오면 세이브 정보 갱신 (BGM은 _checkForExistingSave에서 재생) _checkForExistingSave(); }); } @@ -563,7 +563,10 @@ class _AskiiNeverDieAppState extends State { void _navigateToHallOfFame(BuildContext context) { Navigator.of(context).push( MaterialPageRoute(builder: (context) => const HallOfFameScreen()), - ); + ).then((_) { + // 명예의 전당에서 돌아오면 타이틀 BGM 재생 + _audioService.playBgm('title'); + }); } /// 로컬 아레나 화면으로 이동 @@ -573,8 +576,9 @@ class _AskiiNeverDieAppState extends State { builder: (context) => const ArenaScreen(), ), ).then((_) { - // 아레나에서 돌아오면 명예의 전당 다시 로드 + // 아레나에서 돌아오면 명예의 전당 다시 로드 및 타이틀 BGM 재생 _loadHallOfFame(); + _audioService.playBgm('title'); }); } }