From edd2fd5ff9fedcf396905cb1c04c15e7f567e0f5 Mon Sep 17 00:00:00 2001 From: Ryan Heise Date: Tue, 22 Dec 2020 16:11:53 +1100 Subject: [PATCH] Fix bug with play before load. --- just_audio_web/lib/just_audio_web.dart | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/just_audio_web/lib/just_audio_web.dart b/just_audio_web/lib/just_audio_web.dart index 4ad8d64..99ffa22 100644 --- a/just_audio_web/lib/just_audio_web.dart +++ b/just_audio_web/lib/just_audio_web.dart @@ -114,19 +114,13 @@ class Html5AudioPlayer extends JustAudioPlayer { List get order { final sequence = _audioSourcePlayer.sequence; - List order = List(sequence.length); - if (_shuffleModeEnabled) { - order = _audioSourcePlayer.shuffleIndices; - } else { - for (var i = 0; i < order.length; i++) { - order[i] = i; - } - } - return order; + return _shuffleModeEnabled + ? _audioSourcePlayer.shuffleIndices + : List.generate(sequence.length, (i) => i); } List getInv(List order) { - List orderInv = List(order.length); + final orderInv = List.filled(order.length, 0); for (var i = 0; i < order.length; i++) { orderInv[order[i]] = i; } @@ -222,19 +216,21 @@ class Html5AudioPlayer extends JustAudioPlayer { @override Future play(PlayRequest request) async { + if (_playing) return PlayResponse(); + _playing = true; await _play(); return PlayResponse(); } Future _play() async { - _playing = true; - await _currentAudioSourcePlayer.play(); + await _currentAudioSourcePlayer?.play(); } @override Future pause(PauseRequest request) async { + if (!_playing) return PauseResponse(); _playing = false; - _currentAudioSourcePlayer.pause(); + _currentAudioSourcePlayer?.pause(); return PauseResponse(); }