From f175b9e17a76904e70c5822eea425b128b256cef Mon Sep 17 00:00:00 2001 From: ggurdin Date: Thu, 12 Jun 2025 09:40:54 -0400 Subject: [PATCH] chore: reset audio when playing ends --- lib/pages/chat/events/audio_player.dart | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/pages/chat/events/audio_player.dart b/lib/pages/chat/events/audio_player.dart index 9a82dce86..ff0afc53a 100644 --- a/lib/pages/chat/events/audio_player.dart +++ b/lib/pages/chat/events/audio_player.dart @@ -79,6 +79,7 @@ class AudioPlayerState extends State { // #Pangea StreamSubscription? _onAudioPositionChanged; + StreamSubscription? _onAudioStateChanged; // Pangea# @override @@ -164,6 +165,7 @@ class AudioPlayerState extends State { matrix.voiceMessageEventId.value = matrix.audioPlayer = null; // #Pangea _onAudioPositionChanged?.cancel(); + _onAudioStateChanged?.cancel(); // Pangea# } } @@ -251,7 +253,6 @@ class AudioPlayerState extends State { // #Pangea // if (matrix.voiceMessageEventId.value != widget.event.eventId) return; if (matrix.voiceMessageEventId.value != widget.eventId) return; - matrix.audioPlayer?.dispose(); // Pangea# @@ -269,6 +270,15 @@ class AudioPlayerState extends State { ); } }); + + _onAudioStateChanged?.cancel(); + _onAudioStateChanged = + matrix.audioPlayer!.playerStateStream.listen((state) { + if (state.processingState == ProcessingState.completed) { + matrix.audioPlayer!.stop(); + matrix.audioPlayer!.seek(Duration.zero); + } + }); // Pangea# // #Pangea