Merge pull request #3029 from pangeachat/3027-cant-play-audio-again-in-an-audio-message

chore: reset audio when playing ends
This commit is contained in:
ggurdin 2025-06-12 09:41:26 -04:00 committed by GitHub
commit cea4888290
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

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