From c8bf158985bd2ebe90691d3d2a2cd726bf8dc9d1 Mon Sep 17 00:00:00 2001 From: Elias Projahn Date: Wed, 22 Apr 2020 10:02:18 +0200 Subject: [PATCH] player: Keep playback state after URI change --- .../de/johrpan/musicus_player/MusicusPlayerPlugin.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/musicus_player/android/src/main/kotlin/de/johrpan/musicus_player/MusicusPlayerPlugin.kt b/musicus_player/android/src/main/kotlin/de/johrpan/musicus_player/MusicusPlayerPlugin.kt index 897045f..a2d0747 100644 --- a/musicus_player/android/src/main/kotlin/de/johrpan/musicus_player/MusicusPlayerPlugin.kt +++ b/musicus_player/android/src/main/kotlin/de/johrpan/musicus_player/MusicusPlayerPlugin.kt @@ -17,6 +17,7 @@ public class MusicusPlayerPlugin: FlutterPlugin, MethodCallHandler { private lateinit var channel: MethodChannel private lateinit var context: Context + private var playing = false private var uri: Uri? = null private var mediaPlayer: MediaPlayer? = null @@ -40,8 +41,13 @@ public class MusicusPlayerPlugin: FlutterPlugin, MethodCallHandler { channel.invokeMethod("onComplete", null) } + if (playing) { + mediaPlayer?.start() + } + result.success(mediaPlayer?.getDuration()) } else if (call.method == "play") { + playing = true mediaPlayer?.start() result.success(null) } else if (call.method == "getPosition") { @@ -52,9 +58,11 @@ public class MusicusPlayerPlugin: FlutterPlugin, MethodCallHandler { mediaPlayer?.seekTo(call.argument("positionMs")!!) result.success(null) } else if (call.method == "pause") { + playing = false mediaPlayer?.pause() result.success(null) } else if (call.method == "stop") { + playing = false uri = null mediaPlayer?.release() mediaPlayer = null