From 8272523b5b5b6de243e1a50ccc88f0ed860b250a Mon Sep 17 00:00:00 2001 From: hayaksi1 <193020925+hayaksi1@users.noreply.github.com> Date: Sun, 9 Aug 2026 15:09:33 +0300 Subject: [PATCH] Keep playing a voice message when the screen turns off The ExoPlayer backing voice messages was built without a wake mode, so it defaulted to C.WAKE_MODE_NONE and held no wake lock. The CPU was free to suspend once the screen turned off, cutting playback short. Build it with C.WAKE_MODE_LOCAL instead. The media is a local file, so no WifiLock is needed, and android.permission.WAKE_LOCK is already in the merged manifest. The media viewer players are left alone: they already pause on ON_PAUSE, so a wake lock there would keep the CPU awake for a player the user has intentionally backgrounded. --- .../element/android/libraries/mediaplayer/impl/SimplePlayer.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libraries/mediaplayer/impl/src/main/kotlin/io/element/android/libraries/mediaplayer/impl/SimplePlayer.kt b/libraries/mediaplayer/impl/src/main/kotlin/io/element/android/libraries/mediaplayer/impl/SimplePlayer.kt index 17bfe682e3..98ebc5ce50 100644 --- a/libraries/mediaplayer/impl/src/main/kotlin/io/element/android/libraries/mediaplayer/impl/SimplePlayer.kt +++ b/libraries/mediaplayer/impl/src/main/kotlin/io/element/android/libraries/mediaplayer/impl/SimplePlayer.kt @@ -9,6 +9,7 @@ package io.element.android.libraries.mediaplayer.impl import android.content.Context +import androidx.media3.common.C import androidx.media3.common.MediaItem import androidx.media3.common.Player import androidx.media3.exoplayer.ExoPlayer @@ -49,7 +50,7 @@ object SimplePlayerModule { @Provides fun simplePlayerProvider( @ApplicationContext context: Context, - ): SimplePlayer = DefaultSimplePlayer(ExoPlayer.Builder(context).build()) + ): SimplePlayer = DefaultSimplePlayer(ExoPlayer.Builder(context).setWakeMode(C.WAKE_MODE_LOCAL).build()) } /**