From 269c17d0680bef308c0b582da9e8e93d8b686378 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Thu, 15 Jan 2026 23:05:39 +0800 Subject: [PATCH] :lipstick: The sfx can be played multiple times --- lib/pods/audio.dart | 16 ++++++++++------ lib/widgets/notification_item.dart | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/pods/audio.dart b/lib/pods/audio.dart index 57b3ad4c..20830917 100644 --- a/lib/pods/audio.dart +++ b/lib/pods/audio.dart @@ -44,18 +44,22 @@ final messageSfxProvider = FutureProvider((ref) async { ); }); +Future _playSfx(String assetPath, double volume) async { + final player = AudioPlayer(); + await player.setVolume(volume); + await player.setAudioSource(AudioSource.asset(assetPath)); + await player.play(); + await player.dispose(); +} + void playNotificationSfx(WidgetRef ref) { final settings = ref.read(appSettingsProvider); if (!settings.soundEffects) return; - final player = ref.read(sfxPlayerProvider); - player.seek(Duration.zero); - player.play(); + _playSfx('assets/audio/notification.mp3', 0.75); } void playMessageSfx(WidgetRef ref) { final settings = ref.read(appSettingsProvider); if (!settings.soundEffects) return; - final player = ref.read(sfxPlayerProvider); - player.seek(Duration.zero); - player.play(); + _playSfx('assets/audio/messages.mp3', 0.75); } diff --git a/lib/widgets/notification_item.dart b/lib/widgets/notification_item.dart index bd6511a9..8fcebd77 100644 --- a/lib/widgets/notification_item.dart +++ b/lib/widgets/notification_item.dart @@ -50,7 +50,7 @@ class NotificationItemWidget extends HookConsumerWidget { child: Card( elevation: 4, margin: EdgeInsets.zero, - color: Theme.of(context).colorScheme.surfaceContainer, + color: Theme.of(context).colorScheme.surfaceContainerHigh, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(8)), ),