From 1a6cce4803c8f19d930e7ae3466f33f602fbbebe Mon Sep 17 00:00:00 2001 From: Antoine Jaury Date: Tue, 16 Jun 2026 14:48:29 +0200 Subject: [PATCH] new: add PlayerViewModel to manage audio playback and session handling --- .../player/ui/viewmodel/PlayerViewModel.kt | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 shared/src/commonMain/kotlin/fr/ajaury/gwenedeg/player/ui/viewmodel/PlayerViewModel.kt diff --git a/shared/src/commonMain/kotlin/fr/ajaury/gwenedeg/player/ui/viewmodel/PlayerViewModel.kt b/shared/src/commonMain/kotlin/fr/ajaury/gwenedeg/player/ui/viewmodel/PlayerViewModel.kt new file mode 100644 index 0000000..de38052 --- /dev/null +++ b/shared/src/commonMain/kotlin/fr/ajaury/gwenedeg/player/ui/viewmodel/PlayerViewModel.kt @@ -0,0 +1,33 @@ +package fr.ajaury.gwenedeg.player.ui.viewmodel + +import androidx.lifecycle.ViewModel +import fr.ajaury.gwenedeg.player.AudioPlayer +import fr.ajaury.gwenedeg.player.AudioSessionManager + +class PlayerViewModel( + private val audioPlayer: AudioPlayer, + private val audioSessionManager: AudioSessionManager, +) : ViewModel() { + init { + audioSessionManager.activate() + } + + fun play(filePath: String) { + audioPlayer.load(filePath = filePath) + audioPlayer.play() + } + + fun pause() { + audioPlayer.pause() + } + + fun stop() { + audioPlayer.stop() + } + + override fun onCleared() { + super.onCleared() + audioSessionManager.deactivate() + audioPlayer.release() + } +}