From 4e9265ab87e8c4de6dd5c38d65df568adfe5c91d Mon Sep 17 00:00:00 2001 From: JiWoong Sul Date: Wed, 14 Jan 2026 00:17:51 +0900 Subject: [PATCH] =?UTF-8?q?refactor(audio):=20=EB=B3=BC=EB=A5=A8=200?= =?UTF-8?q?=EC=9D=BC=20=EB=95=8C=20=EC=9E=AC=EC=83=9D=20=EC=8A=A4=ED=82=B5?= =?UTF-8?q?=20=EB=B0=8F=20=ED=92=80=20=ED=81=AC=EA=B8=B0=20=EC=A1=B0?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/src/core/audio/audio_service.dart | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/src/core/audio/audio_service.dart b/lib/src/core/audio/audio_service.dart index 2b7fda0..ae1f20c 100644 --- a/lib/src/core/audio/audio_service.dart +++ b/lib/src/core/audio/audio_service.dart @@ -216,6 +216,7 @@ class AudioService { Future playBgm(String name) async { if (_isPaused) return; if (!_staticInitialized) await init(); + if (_bgmVolume == 0) return; // 볼륨 0이면 재생 안함 if (_currentBgm == name) return; if (_staticBgmPlayer == null) return; @@ -376,6 +377,7 @@ class AudioService { /// 플레이어 이펙트 SFX 재생 Future playPlayerSfx(String name) async { if (_isPaused) return; + if (_sfxVolume == 0) return; // 볼륨 0이면 재생 안함 if (!_staticInitialized) await init(); _tryPlayPendingBgm(); await _playerSfxPool?.play('assets/audio/sfx/$name.mp3'); @@ -384,6 +386,7 @@ class AudioService { /// 몬스터 이펙트 SFX 재생 Future playMonsterSfx(String name) async { if (_isPaused) return; + if (_sfxVolume == 0) return; // 볼륨 0이면 재생 안함 if (!_staticInitialized) await init(); _tryPlayPendingBgm(); await _monsterSfxPool?.play('assets/audio/sfx/$name.mp3'); @@ -412,7 +415,13 @@ class AudioService { _bgmVolume = volume.clamp(0.0, 1.0); if (_staticBgmPlayer != null) { try { - await _staticBgmPlayer!.setVolume(_bgmVolume); + // 볼륨 0이면 BGM 정지 + if (_bgmVolume == 0) { + await _staticBgmPlayer!.stop(); + _currentBgm = null; + } else { + await _staticBgmPlayer!.setVolume(_bgmVolume); + } } catch (_) {} } await _settingsRepository.saveBgmVolume(_bgmVolume);