diff --git a/app/src/main/java/io/legado/app/receiver/MediaButtonReceiver.kt b/app/src/main/java/io/legado/app/receiver/MediaButtonReceiver.kt
index 00c9d0522..fb1f5df59 100644
--- a/app/src/main/java/io/legado/app/receiver/MediaButtonReceiver.kt
+++ b/app/src/main/java/io/legado/app/receiver/MediaButtonReceiver.kt
@@ -8,9 +8,14 @@ import io.legado.app.App
import io.legado.app.constant.EventBus
import io.legado.app.data.entities.Book
import io.legado.app.help.ActivityHelp
+import io.legado.app.service.AudioPlayService
+import io.legado.app.service.BaseReadAloudService
+import io.legado.app.service.help.AudioPlay
+import io.legado.app.service.help.ReadAloud
import io.legado.app.ui.audio.AudioPlayActivity
import io.legado.app.ui.book.read.ReadBookActivity
import io.legado.app.ui.main.MainActivity
+import io.legado.app.utils.getPrefBoolean
import io.legado.app.utils.postEvent
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.Dispatchers.Main
@@ -50,11 +55,23 @@ class MediaButtonReceiver : BroadcastReceiver() {
private fun readAloud(context: Context) {
when {
+ BaseReadAloudService.isRun -> if (BaseReadAloudService.isPlay()) {
+ ReadAloud.pause(context)
+ AudioPlay.pause(context)
+ } else {
+ ReadAloud.resume(context)
+ AudioPlay.resume(context)
+ }
+ AudioPlayService.isRun -> if (AudioPlayService.pause) {
+ AudioPlay.resume(context)
+ } else {
+ AudioPlay.pause(context)
+ }
ActivityHelp.isExist(AudioPlayActivity::class.java) ->
postEvent(EventBus.MEDIA_BUTTON, true)
ActivityHelp.isExist(ReadBookActivity::class.java) ->
postEvent(EventBus.MEDIA_BUTTON, true)
- else -> {
+ else -> if (context.getPrefBoolean("mediaButtonOnExit", true)) {
GlobalScope.launch(Main) {
val lastBook: Book? = withContext(IO) {
App.db.bookDao().lastReadBook
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 674cebb98..84e0f7824 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -648,4 +648,6 @@
全文朗读中不能朗读选中文字
扩展到刘海
更新目录中
+ 全程响应耳机按键
+ 即使退出软件也响应耳机按键
diff --git a/app/src/main/res/xml/pref_config_other.xml b/app/src/main/res/xml/pref_config_other.xml
index d3422ec95..66f5bfd9f 100644
--- a/app/src/main/res/xml/pref_config_other.xml
+++ b/app/src/main/res/xml/pref_config_other.xml
@@ -45,6 +45,13 @@
android:title="@string/threads_num_title"
app:iconSpaceReserved="false" />
+
+