From 4589722c3b2050970a155abb1485ebe75e52b984 Mon Sep 17 00:00:00 2001 From: LittleSheep <littlesheep.code@hotmail.com> Date: Thu, 27 Mar 2025 00:22:41 +0800 Subject: [PATCH] :sparkles: Weird boot sound effects --- assets/audio/sfx/launch-intro.mp3 | Bin 0 -> 23823 bytes assets/translations/en-US.json | 4 +++- assets/translations/zh-CN.json | 4 +++- lib/main.dart | 13 +++++++++++++ lib/providers/config.dart | 10 ++++++++++ lib/screens/settings.dart | 11 +++++++++++ pubspec.yaml | 1 + 7 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 assets/audio/sfx/launch-intro.mp3 diff --git a/assets/audio/sfx/launch-intro.mp3 b/assets/audio/sfx/launch-intro.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..94d863b23532bc8139c5f18241c9aa0e7fe8ddcb GIT binary patch literal 23823 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 UP>Vm73;1_U{{Qp*8&=>y0MJ9XSO5S3 literal 0 HcmV?d00001 diff --git a/assets/translations/en-US.json b/assets/translations/en-US.json index e5b9440..d0fb69c 100644 --- a/assets/translations/en-US.json +++ b/assets/translations/en-US.json @@ -935,5 +935,7 @@ "punishmentModerator": "Moderator who made this punishment", "punishmentMadeBySystem": "Made by auto-mod system", "settingsAprilFoolFeatures": "April Fool Features", - "settingsAprilFoolFeaturesDescription": "Enable April Fool features during April Fool, this option will only be visible during April Fool." + "settingsAprilFoolFeaturesDescription": "Enable April Fool features during April Fool, this option will only be visible during April Fool.", + "settingsSoundEffects": "Sound Effects", + "settingsSoundEffectsDescription": "Enable the sound effects around the app." } diff --git a/assets/translations/zh-CN.json b/assets/translations/zh-CN.json index cfb9009..598744f 100644 --- a/assets/translations/zh-CN.json +++ b/assets/translations/zh-CN.json @@ -932,5 +932,7 @@ "punishmentModerator": "责任管理员", "punishmentMadeBySystem": "由系统自动裁决", "settingsAprilFoolFeatures": "愚人节特性", - "settingsAprilFoolFeaturesDescription": "在愚人节期间启用愚人节特性,该选项只会在愚人节期间显示。" + "settingsAprilFoolFeaturesDescription": "在愚人节期间启用愚人节特性,该选项只会在愚人节期间显示。", + "settingsSoundEffects": "声音效果", + "settingsSoundEffectsDescription": "在一些场合下启用声音特效。" } diff --git a/lib/main.dart b/lib/main.dart index 7daf734..1eb066a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -3,6 +3,7 @@ import 'dart:developer'; import 'dart:io'; import 'dart:ui'; +import 'package:audioplayers/audioplayers.dart'; import 'package:bitsdojo_window/bitsdojo_window.dart'; import 'package:croppy/croppy.dart'; import 'package:dio/dio.dart'; @@ -345,6 +346,7 @@ class _AppSplashScreenState extends State<_AppSplashScreen> with TrayListener { final ct = context.read<ChatChannelProvider>(); await ct.refreshAvailableChannels(); _setPhaseText('done'); + _playIntro(); } } catch (err) { if (!mounted) return; @@ -361,6 +363,17 @@ class _AppSplashScreenState extends State<_AppSplashScreen> with TrayListener { // The quit key has been removed, and the logic of the quit key is moved to system menu bar activator. } + void _playIntro() async { + final cfg = context.read<ConfigProvider>(); + if (!cfg.soundEffects) return; + + final player = AudioPlayer(playerId: 'launch-intro-player'); + await player.play(AssetSource('audio/sfx/launch-intro.mp3'), volume: 0.5); + player.onPlayerComplete.listen((_) { + player.dispose(); + }); + } + final Menu _appTrayMenu = Menu( items: [ MenuItem(key: 'version_label', label: 'Solian', disabled: true), diff --git a/lib/providers/config.dart b/lib/providers/config.dart index df950e4..85fd88e 100644 --- a/lib/providers/config.dart +++ b/lib/providers/config.dart @@ -22,6 +22,7 @@ const kAppCustomFonts = 'app_custom_fonts'; const kAppMixedFeed = 'app_mixed_feed'; const kAppAutoTranslate = 'app_auto_translate'; const kAppHideBottomNav = 'app_hide_bottom_nav'; +const kAppSoundEffects = 'app_sound_effects'; const kAppAprilFoolFeatures = 'app_april_fool_features'; const Map<String, FilterQuality> kImageQualityLevel = { @@ -101,6 +102,15 @@ class ConfigProvider extends ChangeNotifier { return prefs.getBool(kAppAprilFoolFeatures) ?? true; } + bool get soundEffects { + return prefs.getBool(kAppSoundEffects) ?? true; + } + + set soundEffects(bool value) { + prefs.setBool(kAppSoundEffects, value); + notifyListeners(); + } + set aprilFoolFeatures(bool value) { prefs.setBool(kAppAprilFoolFeatures, value); notifyListeners(); diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart index cce8912..e790800 100644 --- a/lib/screens/settings.dart +++ b/lib/screens/settings.dart @@ -352,6 +352,17 @@ class _SettingsScreenState extends State<SettingsScreen> { setState(() {}); }, ), + CheckboxListTile( + value: cfg.soundEffects, + onChanged: (value) { + cfg.soundEffects = value ?? false; + setState(() {}); + }, + contentPadding: const EdgeInsets.only(left: 24, right: 17), + title: Text('settingsSoundEffects').tr(), + subtitle: Text('settingsSoundEffectsDescription').tr(), + secondary: const Icon(Symbols.sound_sampler), + ), ListTile( leading: const Icon(Symbols.font_download), title: Text('settingsCustomFonts').tr(), diff --git a/pubspec.yaml b/pubspec.yaml index af087d3..c01dd53 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -181,6 +181,7 @@ flutter: - assets/icon/tray-icon.ico - assets/icon/tray-icon.png - assets/icon/kanban-1st.jpg + - assets/audio/sfx/ - assets/audio/notify/ - assets/translations/