From a719b898a17074944d66f2e6a99ae5b307f35948 Mon Sep 17 00:00:00 2001 From: Shafqat Bhuiyan Date: Thu, 2 Apr 2026 04:46:45 +1100 Subject: [PATCH] Fix playback not working after player enters idle state On some phones (e.g. Oppo and Oneplus) the video player enters the STATE_IDLE 10 minutes after being paused. This causes the play button to stop working. This happens because once a player has become idle, we need to call prepare() before playback can happen again. But after I added prepare(), it would just skip to the end of the video. So now I'm executing the same code that happens when ERROR_CODE_UNSPECIFIED is done. This causes playback to resume normally. --- app/src/main/java/org/schabi/newpipe/player/Player.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/java/org/schabi/newpipe/player/Player.java b/app/src/main/java/org/schabi/newpipe/player/Player.java index 159ecbd6efc..e458b707e2d 100644 --- a/app/src/main/java/org/schabi/newpipe/player/Player.java +++ b/app/src/main/java/org/schabi/newpipe/player/Player.java @@ -1752,6 +1752,13 @@ public void play() { } } + if (isStopped()) { + // Some phones suspend a paused player after 10 minutes. This causes the player to + // enter STATE_IDLE, causing playback to fail. So we try to recover from that here. + setRecovery(); + reloadPlayQueueManager(); + } + simpleExoPlayer.play(); saveStreamProgressState(); }