chore: reset audio when playing ends

This commit is contained in:
ggurdin 2025-06-12 09:40:54 -04:00
parent 097fb6d532
commit f175b9e17a
No known key found for this signature in database
GPG key ID: A01CB41737CBB478

View file

@ -79,6 +79,7 @@ class AudioPlayerState extends State<AudioPlayerWidget> {
// #Pangea
StreamSubscription? _onAudioPositionChanged;
StreamSubscription? _onAudioStateChanged;
// Pangea#
@override
@ -164,6 +165,7 @@ class AudioPlayerState extends State<AudioPlayerWidget> {
matrix.voiceMessageEventId.value = matrix.audioPlayer = null;
// #Pangea
_onAudioPositionChanged?.cancel();
_onAudioStateChanged?.cancel();
// Pangea#
}
}
@ -251,7 +253,6 @@ class AudioPlayerState extends State<AudioPlayerWidget> {
// #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<AudioPlayerWidget> {
);
}
});
_onAudioStateChanged?.cancel();
_onAudioStateChanged =
matrix.audioPlayer!.playerStateStream.listen((state) {
if (state.processingState == ProcessingState.completed) {
matrix.audioPlayer!.stop();
matrix.audioPlayer!.seek(Duration.zero);
}
});
// Pangea#
// #Pangea