diff --git a/android/app/src/main/java/com/fabledsword/minstrel/player/PlayerController.kt b/android/app/src/main/java/com/fabledsword/minstrel/player/PlayerController.kt index f571f6a9..b84b55b0 100644 --- a/android/app/src/main/java/com/fabledsword/minstrel/player/PlayerController.kt +++ b/android/app/src/main/java/com/fabledsword/minstrel/player/PlayerController.kt @@ -417,6 +417,16 @@ class PlayerController @Inject constructor( detail = error.message, ), ) + // A failed load leaves the player IDLE; advance past the bad + // track and re-prepare so one unplayable item doesn't strand + // playback (mirrors the zero_duration skip). Forward-only — + // stop at the end — bounds a fully-unplayable queue. + if (controller.hasNextMediaItem()) { + controller.seekToNextMediaItem() + controller.prepare() + } else { + controller.stop() + } } override fun onMediaItemTransition(