import 'package:audioplayers/audioplayers.dart'; import 'package:flutter/foundation.dart'; import 'package:shared_preferences/shared_preferences.dart'; /// 时间: 2026-03-30 /// 功能: 音频管理类 /// 介绍: 管理应用中的音效播放,包括点击音效、点赞音效等 /// 最新变化: 使用最简单的音频播放方式 class AudioManager { static AudioManager? _instance; bool _isInitialized = false; bool _isMuted = false; AudioManager._internal(); factory AudioManager() { _instance ??= AudioManager._internal(); return _instance!; } Future init() async { if (_isInitialized) return; try { await _loadSoundSetting(); _isInitialized = true; } catch (e) { // 初始化失败 } } /// 加载保存的声音设置 Future _loadSoundSetting() async { try { final prefs = await SharedPreferences.getInstance(); bool soundEnabled = prefs.getBool('sound_enabled') ?? false; _isMuted = !soundEnabled; } catch (e) { // 加载设置失败 } } /// 播放点击音效 void playClickSound() { _playSound('audios/deep.mp3'); } /// 播放点赞音效 void playLikeSound() { _playSound('audios/deep.mp3'); } /// 播放下一条音效 void playNextSound() { _playSound('audios/deep.mp3'); } /// 播放音频 void _playSound(String assetPath) { if (_isMuted) return; _playSoundAsync(assetPath); } /// 异步播放音频 void _playSoundAsync(String assetPath) async { try { final player = AudioPlayer(); await player.play(AssetSource(assetPath)); player.onPlayerComplete.listen((_) { player.dispose(); }); } catch (e) { // 播放失败 } } /// 设置静音状态 void setMuted(bool muted) { _isMuted = muted; } /// 获取静音状态 bool get isMuted => _isMuted; }