import 'package:audioplayers/audioplayers.dart'; class AudioManager { static final AudioPlayer _backgroundMusic = AudioPlayer(); static final AudioPlayer _effectPlayer = AudioPlayer(); static bool _isMusicEnabled = true; static bool _isSoundEnabled = true; static final AudioManager _instance = AudioManager._internal(); static AudioManager get instance => _instance; AudioManager._internal(); static Future initAudio() async { await _backgroundMusic.setReleaseMode(ReleaseMode.loop); // Musik akan diulang await instance.startBackgroundMusic(); } Future startBackgroundMusic() async { await _backgroundMusic.play(AssetSource('music/music.mp3')); await _backgroundMusic.setReleaseMode(ReleaseMode.loop); } static Future stopBackgroundMusic() async { await _backgroundMusic.stop(); } static Future playClickSound() async { if (_isSoundEnabled) { await _effectPlayer.play(AssetSource('music/game.mp3')); } } static Future successsound() async { if (_isSoundEnabled) { await _effectPlayer.play(AssetSource('music/success.mp3')); } } static Future winsound() async { if (_isSoundEnabled) { await _effectPlayer.play(AssetSource('music/win.mp3')); } } static Future losesound() async { if (_isSoundEnabled) { await _effectPlayer.play(AssetSource('music/lose.mp3')); } } void setSoundEnabled(bool enabled) { _isSoundEnabled = enabled; } static void toggleMusic() { _isMusicEnabled = !_isMusicEnabled; if (_isMusicEnabled) { instance.startBackgroundMusic(); } else { stopBackgroundMusic(); } } static void toggleSound() { _isSoundEnabled = !_isSoundEnabled; } static bool get isMusicEnabled => _isMusicEnabled; static bool get isSoundEnabled => _isSoundEnabled; Future init() async { // Initialize audio settings here } }