From 602982d4269ff8039ed27137afcd9968a54b3c0d Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Fri, 27 Feb 2026 08:53:38 +0100 Subject: [PATCH] fix: remove low memory warnings during playback Closes #576 --- .../edde746/plezy/exoplayer/ExoPlayerCore.kt | 24 ------------------- lib/mpv/player/platform/player_android.dart | 6 ----- 2 files changed, 30 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 b9747590..eec524f8 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 @@ -2,9 +2,7 @@ package com.edde746.plezy.exoplayer import android.app.Activity import android.app.ActivityManager -import android.content.ComponentCallbacks2 import android.content.Context -import android.content.res.Configuration import android.graphics.Color import android.graphics.PixelFormat import android.hardware.display.DisplayManager @@ -107,9 +105,6 @@ class ExoPlayerCore(private val activity: Activity) : Player.Listener { private var hasAudioFocus: Boolean = false private var wasPlayingBeforeFocusLoss: Boolean = false - // Memory pressure detection - private var memoryCallback: ComponentCallbacks2? = null - // Track state for event emission private var lastPosition: Long = 0 private var lastDuration: Long = 0 @@ -408,22 +403,6 @@ class ExoPlayerCore(private val activity: Activity) : Player.Listener { } } - // Register memory pressure listener to detect impending OOM - memoryCallback = object : ComponentCallbacks2 { - override fun onTrimMemory(level: Int) { - if (level >= ComponentCallbacks2.TRIM_MEMORY_RUNNING_CRITICAL) { - Log.w(TAG, "TRIM_MEMORY level $level - critical memory pressure") - delegate?.onEvent("memory-pressure", mapOf("level" to "critical")) - } - } - override fun onConfigurationChanged(newConfig: Configuration) {} - override fun onLowMemory() { - Log.w(TAG, "onLowMemory - system-wide memory pressure") - delegate?.onEvent("memory-pressure", mapOf("level" to "critical")) - } - } - activity.registerComponentCallbacks(memoryCallback) - // Start position update loop startPositionUpdates() @@ -1392,9 +1371,6 @@ class ExoPlayerCore(private val activity: Activity) : Player.Listener { abandonAudioFocus() audioManager = null - memoryCallback?.let { activity.unregisterComponentCallbacks(it) } - memoryCallback = null - tunnelingDisabledForCodec = false pendingStartPositionMs = 0L exoPlayer?.clearVideoSurface() diff --git a/lib/mpv/player/platform/player_android.dart b/lib/mpv/player/platform/player_android.dart index 182e1d91..ec1f2250 100644 --- a/lib/mpv/player/platform/player_android.dart +++ b/lib/mpv/player/platform/player_android.dart @@ -36,12 +36,6 @@ class PlayerAndroid extends PlayerBase { return; } - if (name == 'memory-pressure') { - // System memory is critically low — playback may be at risk of OOM crash - errorController.add('Low memory — playback may be unstable'); - return; - } - // Delegate to base class for common events super.handlePlayerEvent(name, data); }