diff --git a/app/src/main/java/com/termux/api/MediaPlayerAPI.java b/app/src/main/java/com/termux/api/MediaPlayerAPI.java index 9d3e36ca0..f0176a68c 100644 --- a/app/src/main/java/com/termux/api/MediaPlayerAPI.java +++ b/app/src/main/java/com/termux/api/MediaPlayerAPI.java @@ -40,8 +40,8 @@ static void onReceive(final Context context, final Intent intent) { /** * All media functionality exists in this background service */ - public static class PlayerService extends Service implements MediaPlayer.OnPreparedListener, - MediaPlayer.OnErrorListener, MediaPlayer.OnCompletionListener { + public static class PlayerService extends Service implements MediaPlayer.OnErrorListener, + MediaPlayer.OnCompletionListener { protected static MediaPlayer mediaPlayer; @@ -56,7 +56,6 @@ public static class PlayerService extends Service implements MediaPlayer.OnPrepa protected MediaPlayer getMediaPlayer() { if (mediaPlayer == null) { mediaPlayer = new MediaPlayer(); - mediaPlayer.setOnPreparedListener(this); mediaPlayer.setOnCompletionListener(this); mediaPlayer.setOnErrorListener(this); mediaPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK); @@ -116,12 +115,7 @@ public boolean onError(MediaPlayer mediaPlayer, int what, int extra) { @Override public void onCompletion(MediaPlayer mediaPlayer) { hasTrack = false; - } - - @Override - public void onPrepared(MediaPlayer mediaPlayer) { - hasTrack = true; - mediaPlayer.start(); + mediaPlayer.reset(); } protected static MediaCommandHandler getMediaCommandHandler(final String command) { @@ -205,6 +199,9 @@ public MediaCommandResult handle(MediaPlayer player, Context context, Intent int try { player.setDataSource(context, Uri.fromFile(mediaFile)); player.prepare(); + player.start(); + hasTrack = true; + if (player.isPlaying()) { result.message = "Now Playing: " + mediaFile.getName(); } else {