diff --git a/application/resources/src/main/res/values/strings.xml b/application/resources/src/main/res/values/strings.xml
index 904d203e43f25bb88a59fb3a60fc0d83d8ca63c5..fc4cd9926416a0dab40755ac289ac090f07624d9 100644
--- a/application/resources/src/main/res/values/strings.xml
+++ b/application/resources/src/main/res/values/strings.xml
@@ -582,6 +582,8 @@
     <string name="blurred_cover_background_summary">Blurred cover in audio player background</string>
     <string name="force_shuffle_title">Force shuffle</string>
     <string name="force_shuffle_summary">Force shuffling when launching a playback</string>
+    <string name="play_and_pause_title">Play and pause</string>
+    <string name="play_and_pause_summary">Pause playback after each media</string>
     <string name="network_caching_popup">This value must be between 0 and 60000 ms</string>
     <string name="quit">Quit and restart application</string>
     <string name="restart_message">Changes will take effect once application has restarted.\n\nRestart now?</string>
diff --git a/application/tools/src/main/java/org/videolan/tools/Settings.kt b/application/tools/src/main/java/org/videolan/tools/Settings.kt
index ef529c1b480e0e51ec21b7b4d76c4103cc6885b5..941b7de7e52156941f1502d119ec86ab0e546c63 100644
--- a/application/tools/src/main/java/org/videolan/tools/Settings.kt
+++ b/application/tools/src/main/java/org/videolan/tools/Settings.kt
@@ -118,6 +118,7 @@ const val KEY_VIDEO_DOUBLE_TAP_JUMP_DELAY = "video_double_tap_jump_delay"
 const val KEY_AUDIO_JUMP_DELAY = "audio_jump_delay"
 const val KEY_AUDIO_LONG_JUMP_DELAY = "audio_long_jump_delay"
 const val KEY_AUDIO_FORCE_SHUFFLE = "audio_force_shuffle"
+const val KEY_AUDIO_PLAY_AND_PAUSE = "audio_play_and_pause"
 const val KEY_AUDIO_SHOW_TRACK_NUMBERS = "audio_show_track_numbers"
 const val KEY_AUDIO_SHOW_CHAPTER_BUTTONS = "audio_show_chapter_buttons"
 const val KEY_AUDIO_SHOW_BOOkMARK_BUTTONS = "audio_show_bookmark_buttons"
diff --git a/application/vlc-android/res/xml/preferences_audio_controls.xml b/application/vlc-android/res/xml/preferences_audio_controls.xml
index 1a98fda4fc655124d7c793e5106fd74e525d6374..8950f32592a930c08e8c462a9a8fe089c47b1c75 100644
--- a/application/vlc-android/res/xml/preferences_audio_controls.xml
+++ b/application/vlc-android/res/xml/preferences_audio_controls.xml
@@ -27,6 +27,13 @@
             android:summary="@string/force_shuffle_summary"
             android:title="@string/force_shuffle_title"/>
 
+    <CheckBoxPreference
+            app:singleLineTitle="false"
+            android:defaultValue="false"
+            android:key="audio_play_and_pause"
+            android:summary="@string/play_and_pause_summary"
+            android:title="@string/play_and_pause_title"/>
+
     </PreferenceCategory>
 
 
diff --git a/application/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt b/application/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt
index f34b15965a950c34c9e5a47cadb450d7a0c8f276..dd1f9e41754e2ee062c90caa0ca83e3bf5ff15b8 100644
--- a/application/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt
+++ b/application/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt
@@ -57,6 +57,7 @@ import org.videolan.tools.DAV1D_THREAD_NUMBER
 import org.videolan.tools.HTTP_USER_AGENT
 import org.videolan.tools.KEY_AUDIO_CONFIRM_RESUME
 import org.videolan.tools.KEY_AUDIO_FORCE_SHUFFLE
+import org.videolan.tools.KEY_AUDIO_PLAY_AND_PAUSE
 import org.videolan.tools.KEY_INCOGNITO
 import org.videolan.tools.KEY_INCOGNITO_PLAYBACK_SPEED_AUDIO_GLOBAL_VALUE
 import org.videolan.tools.KEY_INCOGNITO_PLAYBACK_SPEED_VIDEO_GLOBAL_VALUE
@@ -159,6 +160,7 @@ class PlaylistManager(val service: PlaybackService) : MediaWrapperList.EventList
     private val mediaFactory = FactoryManager.getFactory(IMediaFactory.factoryId) as IMediaFactory
     lateinit var videoResumeStatus: ResumeStatus
     lateinit var audioResumeStatus: ResumeStatus
+    var pauseAtNextMedia = false
 
     fun hasCurrentMedia() = isValidPosition(currentIndex)
 
@@ -1180,6 +1182,10 @@ class PlaylistManager(val service: PlaybackService) : MediaWrapperList.EventList
                         }
                     }
                     playingState.value = true
+                    if (pauseAtNextMedia) {
+                        pauseAtNextMedia = false
+                        pause()
+                    }
                 }
                 MediaPlayer.Event.EndReached -> {
                     clearABRepeat()
@@ -1203,6 +1209,9 @@ class PlaylistManager(val service: PlaybackService) : MediaWrapperList.EventList
                             }
                         }
                         next()
+                        if (!player.isVideoPlaying() && settings.getBoolean(KEY_AUDIO_PLAY_AND_PAUSE, false) && hasNext()) {
+                            pauseAtNextMedia = true
+                        }
                     }
                 }
                 MediaPlayer.Event.EncounteredError -> {