diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java
index 23dc5f9d..9ba44d28 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java
@@ -92,8 +92,11 @@ import androidx.media3.common.MediaItem;
 import androidx.media3.common.Player;
 import androidx.media3.datasource.DataSource;
 import androidx.media3.datasource.DefaultDataSource;
+import androidx.media3.exoplayer.DefaultLoadControl;
 import androidx.media3.exoplayer.ExoPlayer;
+import androidx.media3.exoplayer.LoadControl;
 import androidx.media3.exoplayer.source.ProgressiveMediaSource;
+import androidx.media3.exoplayer.upstream.DefaultAllocator;
 import androidx.media3.ui.PlayerView;
 import androidx.preference.PreferenceManager;
 import androidx.recyclerview.widget.LinearLayoutManager;
@@ -1728,7 +1731,18 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
                                         .createMediaSource(mediaItem);
                             }
                             try {
-                                ExoPlayer player = new ExoPlayer.Builder(context).build();
+                                int MIN_BUFFER_DURATION = 1000;
+                                int MIN_PLAYBACK_RESUME_BUFFER = 1024;
+                                int MIN_PLAYBACK_START_BUFFER = 1024;
+                                DefaultLoadControl defaultLoadControl = new DefaultLoadControl.Builder()
+                                        .setAllocator(new DefaultAllocator(true, 16))
+                                        .setBufferDurationsMs(MIN_BUFFER_DURATION,
+                                                MIN_BUFFER_DURATION*5,
+                                                MIN_PLAYBACK_START_BUFFER,
+                                                MIN_PLAYBACK_RESUME_BUFFER)
+                                        .setTargetBufferBytes(-1)
+                                        .setPrioritizeTimeOverSizeThresholds(true).build();
+                                ExoPlayer player = new ExoPlayer.Builder(context).setLoadControl(defaultLoadControl).build();
                                 player.setRepeatMode(Player.REPEAT_MODE_ONE);
                                 layoutMediaBinding.mediaVideo.setPlayer(player);
                                 player.setMediaSource(videoSource);
@@ -1800,7 +1814,18 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
                                         .createMediaSource(mediaItem);
                             }
                             try {
-                                ExoPlayer player = new ExoPlayer.Builder(context).build();
+                                int MIN_BUFFER_DURATION = 1000;
+                                int MIN_PLAYBACK_RESUME_BUFFER = 1024;
+                                int MIN_PLAYBACK_START_BUFFER = 1024;
+                                DefaultLoadControl defaultLoadControl = new DefaultLoadControl.Builder()
+                                        .setAllocator(new DefaultAllocator(true, 16))
+                                        .setBufferDurationsMs(MIN_BUFFER_DURATION,
+                                                MIN_BUFFER_DURATION*5,
+                                                MIN_PLAYBACK_START_BUFFER,
+                                                MIN_PLAYBACK_RESUME_BUFFER)
+                                        .setTargetBufferBytes(-1)
+                                        .setPrioritizeTimeOverSizeThresholds(true).build();
+                                ExoPlayer player = new ExoPlayer.Builder(context).setLoadControl(defaultLoadControl).build();
                                 player.setRepeatMode(Player.REPEAT_MODE_ONE);
                                 layoutMediaBinding.mediaVideo.setPlayer(player);
                                 player.setMediaSource(videoSource);