fix(audio): 웹 환경 에셋 경로 수정
- setAsset 경로에서 'assets/' 접두사 제거 - Flutter Web에서 경로 중복(assets/assets/...) 오류 해결 - BGM, Player SFX, Monster SFX 모든 경로 수정
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user