From 0f4920cc186bfb03c2cedffe7ecea40615f67406 Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Wed, 25 Feb 2026 23:42:15 +0100 Subject: [PATCH] fix: reduce ExoPlayer buffer limits close #546 --- .../com/edde746/plezy/exoplayer/ExoPlayerCore.kt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/ExoPlayerCore.kt b/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/ExoPlayerCore.kt index 597e534e..d053f24a 100644 --- a/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/ExoPlayerCore.kt +++ b/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/ExoPlayerCore.kt @@ -356,16 +356,21 @@ class ExoPlayerCore(private val activity: Activity) : Player.Listener { } else { // Scale buffer to available memory to reduce hardware decoder pressure when { - availableMB < 512 -> 50 * 1024 * 1024 - availableMB < 1024 -> 75 * 1024 * 1024 - else -> 150 * 1024 * 1024 + availableMB <= 512 -> 30 * 1024 * 1024 + availableMB <= 1024 -> 50 * 1024 * 1024 + availableMB <= 2048 -> 60 * 1024 * 1024 + else -> 130 * 1024 * 1024 } } val loadControl = DefaultLoadControl.Builder().apply { setTargetBufferBytes(targetBufferBytes) setPrioritizeTimeOverSizeThresholds(false) - setBufferDurationsMs(15_000, 30_000, 2_500, 5_000) + if (availableMB <= 2048) { + setBufferDurationsMs(15_000, 50_000, 2_500, 5_000) + } else { + setBufferDurationsMs(30_000, 60_000, 2_500, 5_000) + } }.build() Log.d(TAG, "Buffer: ${targetBufferBytes / 1024 / 1024}MB limit, available=${availableMB}MB")