♻️ New notification overlay basis
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:just_audio/just_audio.dart';
|
||||
import 'package:island/pods/config.dart';
|
||||
import 'package:audio_session/audio_session.dart';
|
||||
|
||||
final sfxPlayerProvider = Provider<AudioPlayer>((ref) {
|
||||
final player = AudioPlayer();
|
||||
@@ -10,6 +11,22 @@ final sfxPlayerProvider = Provider<AudioPlayer>((ref) {
|
||||
return player;
|
||||
});
|
||||
|
||||
Future<void> _configureAudioSession() async {
|
||||
final session = await AudioSession.instance;
|
||||
await session.configure(
|
||||
const AudioSessionConfiguration(
|
||||
avAudioSessionCategory: AVAudioSessionCategory.playback,
|
||||
avAudioSessionCategoryOptions:
|
||||
AVAudioSessionCategoryOptions.mixWithOthers,
|
||||
),
|
||||
);
|
||||
await session.setActive(true);
|
||||
}
|
||||
|
||||
final audioSessionProvider = FutureProvider<void>((ref) async {
|
||||
await _configureAudioSession();
|
||||
});
|
||||
|
||||
final notificationSfxProvider = FutureProvider<void>((ref) async {
|
||||
final player = ref.watch(sfxPlayerProvider);
|
||||
await player.setVolume(0.75);
|
||||
@@ -31,6 +48,7 @@ void playNotificationSfx(WidgetRef ref) {
|
||||
final settings = ref.read(appSettingsProvider);
|
||||
if (!settings.soundEffects) return;
|
||||
final player = ref.read(sfxPlayerProvider);
|
||||
player.seek(Duration.zero);
|
||||
player.play();
|
||||
}
|
||||
|
||||
@@ -38,5 +56,6 @@ void playMessageSfx(WidgetRef ref) {
|
||||
final settings = ref.read(appSettingsProvider);
|
||||
if (!settings.soundEffects) return;
|
||||
final player = ref.read(sfxPlayerProvider);
|
||||
player.seek(Duration.zero);
|
||||
player.play();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user