diff --git a/just_audio_web/lib/just_audio_web.dart b/just_audio_web/lib/just_audio_web.dart index a60001758..415a3e7af 100644 --- a/just_audio_web/lib/just_audio_web.dart +++ b/just_audio_web/lib/just_audio_web.dart @@ -44,6 +44,7 @@ abstract class JustAudioPlayer extends AudioPlayerPlatform { ProcessingStateMessage _processingState = ProcessingStateMessage.idle; bool _playing = false; int? _index; + double _speed = 1.0; /// Creates a platform player with the given [id]. JustAudioPlayer({required String id}) : super(id); @@ -121,6 +122,7 @@ class Html5AudioPlayer extends JustAudioPlayer { transition(ProcessingStateMessage.buffering); }); _audioElement.addEventListener('canplaythrough', (event) { + _audioElement.playbackRate = _speed; transition(ProcessingStateMessage.ready); }); _audioElement.addEventListener('progress', (event) { @@ -226,6 +228,7 @@ class Html5AudioPlayer extends JustAudioPlayer { if (src != _audioElement.src) { _durationCompleter = Completer<dynamic>(); _audioElement.src = src; + _audioElement.playbackRate = _speed; _audioElement.preload = 'auto'; _audioElement.load(); if (initialPosition != null) { @@ -275,7 +278,7 @@ class Html5AudioPlayer extends JustAudioPlayer { @override Future<SetSpeedResponse> setSpeed(SetSpeedRequest request) async { - _audioElement.playbackRate = request.speed; + _audioElement.playbackRate = _speed = request.speed; return SetSpeedResponse(); }