fix(audio): 웹 환경 에셋 경로 수정

- setAsset 경로에서 'assets/' 접두사 제거
- Flutter Web에서 경로 중복(assets/assets/...) 오류 해결
- BGM, Player SFX, Monster SFX 모든 경로 수정
This commit is contained in:
JiWoong Sul
2025-12-31 15:41:04 +09:00
parent 925048ee4d
commit d76dde0974

View File

@@ -97,8 +97,8 @@ class AudioService {
/// BGM 재생 /// BGM 재생
/// ///
/// [name]은 assets/audio/bgm/ 폴더 내 파일명 (확장자 제외) /// [name]은 audio/bgm/ 폴더 내 파일명 (확장자 제외)
/// 예: playBgm('battle') → assets/audio/bgm/battle.mp3 /// 예: playBgm('battle') → audio/bgm/battle.mp3
/// ///
/// 웹에서 사용자 상호작용 없이 호출되면 대기 상태로 저장되고, /// 웹에서 사용자 상호작용 없이 호출되면 대기 상태로 저장되고,
/// 다음 SFX 재생 시 함께 시작됩니다. /// 다음 SFX 재생 시 함께 시작됩니다.
@@ -110,7 +110,7 @@ class AudioService {
if (_currentBgm == name) return; // 이미 재생 중 if (_currentBgm == name) return; // 이미 재생 중
try { try {
await _bgmPlayer!.setAsset('assets/audio/bgm/$name.mp3'); await _bgmPlayer!.setAsset('audio/bgm/$name.mp3');
await _bgmPlayer!.play(); await _bgmPlayer!.play();
_currentBgm = name; _currentBgm = name;
_pendingBgm = null; _pendingBgm = null;
@@ -177,8 +177,8 @@ class AudioService {
/// 플레이어 이펙트 SFX 재생 /// 플레이어 이펙트 SFX 재생
/// ///
/// [name]은 assets/audio/sfx/ 폴더 내 파일명 (확장자 제외) /// [name]은 audio/sfx/ 폴더 내 파일명 (확장자 제외)
/// 예: playPlayerSfx('attack') → assets/audio/sfx/attack.mp3 /// 예: playPlayerSfx('attack') → audio/sfx/attack.mp3
/// ///
/// 대기열 기반으로 모든 사운드의 완전 재생을 보장합니다. /// 대기열 기반으로 모든 사운드의 완전 재생을 보장합니다.
Future<void> playPlayerSfx(String name) async { Future<void> playPlayerSfx(String name) async {
@@ -190,13 +190,13 @@ class AudioService {
// 웹에서 대기 중인 BGM 재생 시도 // 웹에서 대기 중인 BGM 재생 시도
_tryPlayPendingBgm(); _tryPlayPendingBgm();
await _playerSfxPool?.play('assets/audio/sfx/$name.mp3'); await _playerSfxPool?.play('audio/sfx/$name.mp3');
} }
/// 몬스터 이펙트 SFX 재생 /// 몬스터 이펙트 SFX 재생
/// ///
/// [name]은 assets/audio/sfx/ 폴더 내 파일명 (확장자 제외) /// [name]은 audio/sfx/ 폴더 내 파일명 (확장자 제외)
/// 예: playMonsterSfx('hit') → assets/audio/sfx/hit.mp3 /// 예: playMonsterSfx('hit') → audio/sfx/hit.mp3
/// ///
/// 대기열 기반으로 모든 사운드의 완전 재생을 보장합니다. /// 대기열 기반으로 모든 사운드의 완전 재생을 보장합니다.
Future<void> playMonsterSfx(String name) async { Future<void> playMonsterSfx(String name) async {
@@ -208,7 +208,7 @@ class AudioService {
// 웹에서 대기 중인 BGM 재생 시도 // 웹에서 대기 중인 BGM 재생 시도
_tryPlayPendingBgm(); _tryPlayPendingBgm();
await _monsterSfxPool?.play('assets/audio/sfx/$name.mp3'); await _monsterSfxPool?.play('audio/sfx/$name.mp3');
} }
/// 웹에서 대기 중인 BGM 재생 시도 (사용자 상호작용 발생 시) /// 웹에서 대기 중인 BGM 재생 시도 (사용자 상호작용 발생 시)
@@ -223,8 +223,8 @@ class AudioService {
/// SFX 재생 (레거시 호환) /// SFX 재생 (레거시 호환)
/// ///
/// [name]은 assets/audio/sfx/ 폴더 내 파일명 (확장자 제외) /// [name]은 audio/sfx/ 폴더 내 파일명 (확장자 제외)
/// 예: playSfx('attack') → assets/audio/sfx/attack.mp3 /// 예: playSfx('attack') → audio/sfx/attack.mp3
/// ///
/// @deprecated playPlayerSfx 또는 playMonsterSfx를 사용하세요. /// @deprecated playPlayerSfx 또는 playMonsterSfx를 사용하세요.
Future<void> playSfx(String name) => playPlayerSfx(name); Future<void> playSfx(String name) => playPlayerSfx(name);