Kaynağa Gözat

Merge pull request #2299 from 821938089/little-fix

添加忽略音频焦点设置
kunfei 4 yıl önce
ebeveyn
işleme
511a3c2542

+ 1 - 0
app/src/main/java/io/legado/app/constant/PreferKey.kt

@@ -112,6 +112,7 @@ object PreferKey {
     const val pageTouchSlop = "pageTouchSlop"
     const val pageTouchSlop = "pageTouchSlop"
     const val showAddToShelfAlert = "showAddToShelfAlert"
     const val showAddToShelfAlert = "showAddToShelfAlert"
     const val asyncLoadImage = "asyncLoadImage"
     const val asyncLoadImage = "asyncLoadImage"
+    const val ignoreAudioFocus = "ignoreAudioFocus"
 
 
     const val cPrimary = "colorPrimary"
     const val cPrimary = "colorPrimary"
     const val cAccent = "colorAccent"
     const val cAccent = "colorAccent"

+ 2 - 0
app/src/main/java/io/legado/app/help/config/AppConfig.kt

@@ -322,6 +322,8 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
 
 
     val asyncLoadImage get() = appCtx.getPrefBoolean(PreferKey.asyncLoadImage, false)
     val asyncLoadImage get() = appCtx.getPrefBoolean(PreferKey.asyncLoadImage, false)
 
 
+    val ignoreAudioFocus get() = appCtx.getPrefBoolean(PreferKey.ignoreAudioFocus, false)
+
     val doublePageHorizontal: String?
     val doublePageHorizontal: String?
         get() = appCtx.getPrefString(PreferKey.doublePageHorizontal)
         get() = appCtx.getPrefString(PreferKey.doublePageHorizontal)
 
 

+ 8 - 0
app/src/main/java/io/legado/app/service/AudioPlayService.kt

@@ -24,6 +24,7 @@ import io.legado.app.data.appDb
 import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.BookChapter
 import io.legado.app.data.entities.BookChapter
 import io.legado.app.help.MediaHelp
 import io.legado.app.help.MediaHelp
+import io.legado.app.help.config.AppConfig
 import io.legado.app.help.exoplayer.ExoPlayerHelper
 import io.legado.app.help.exoplayer.ExoPlayerHelper
 import io.legado.app.help.glide.ImageLoader
 import io.legado.app.help.glide.ImageLoader
 import io.legado.app.model.AudioPlay
 import io.legado.app.model.AudioPlay
@@ -442,6 +443,10 @@ class AudioPlayService : BaseService(),
      * 音频焦点变化
      * 音频焦点变化
      */
      */
     override fun onAudioFocusChange(focusChange: Int) {
     override fun onAudioFocusChange(focusChange: Int) {
+        if (AppConfig.ignoreAudioFocus) {
+            AppLog.put("忽略音频焦点处理(有声)")
+            return
+        }
         when (focusChange) {
         when (focusChange) {
             AudioManager.AUDIOFOCUS_GAIN -> {
             AudioManager.AUDIOFOCUS_GAIN -> {
                 // 重新获得焦点,  可做恢复播放,恢复后台音量的操作
                 // 重新获得焦点,  可做恢复播放,恢复后台音量的操作
@@ -541,6 +546,9 @@ class AudioPlayService : BaseService(),
      * @return 音频焦点
      * @return 音频焦点
      */
      */
     private fun requestFocus(): Boolean {
     private fun requestFocus(): Boolean {
+        if (AppConfig.ignoreAudioFocus) {
+            return true
+        }
         return MediaHelp.requestFocus(audioManager, mFocusRequest)
         return MediaHelp.requestFocus(audioManager, mFocusRequest)
     }
     }
 
 

+ 8 - 0
app/src/main/java/io/legado/app/service/BaseReadAloudService.kt

@@ -17,6 +17,7 @@ import io.legado.app.R
 import io.legado.app.base.BaseService
 import io.legado.app.base.BaseService
 import io.legado.app.constant.*
 import io.legado.app.constant.*
 import io.legado.app.help.MediaHelp
 import io.legado.app.help.MediaHelp
+import io.legado.app.help.config.AppConfig
 import io.legado.app.help.glide.ImageLoader
 import io.legado.app.help.glide.ImageLoader
 import io.legado.app.model.ReadAloud
 import io.legado.app.model.ReadAloud
 import io.legado.app.model.ReadBook
 import io.legado.app.model.ReadBook
@@ -230,6 +231,9 @@ abstract class BaseReadAloudService : BaseService(),
      * @return 音频焦点
      * @return 音频焦点
      */
      */
     fun requestFocus(): Boolean {
     fun requestFocus(): Boolean {
+        if (AppConfig.ignoreAudioFocus) {
+            return true
+        }
         val requestFocus = MediaHelp.requestFocus(audioManager, mFocusRequest)
         val requestFocus = MediaHelp.requestFocus(audioManager, mFocusRequest)
         if (!requestFocus) {
         if (!requestFocus) {
             toastOnUi("未获取到音频焦点")
             toastOnUi("未获取到音频焦点")
@@ -277,6 +281,10 @@ abstract class BaseReadAloudService : BaseService(),
      * 音频焦点变化
      * 音频焦点变化
      */
      */
     override fun onAudioFocusChange(focusChange: Int) {
     override fun onAudioFocusChange(focusChange: Int) {
+        if (AppConfig.ignoreAudioFocus) {
+            AppLog.put("忽略音频焦点处理(TTS)")
+            return
+        }
         when (focusChange) {
         when (focusChange) {
             AudioManager.AUDIOFOCUS_GAIN -> {
             AudioManager.AUDIOFOCUS_GAIN -> {
                 if (needResumeOnAudioFocusGain) {
                 if (needResumeOnAudioFocusGain) {

+ 2 - 0
app/src/main/res/values-es-rES/strings.xml

@@ -1029,4 +1029,6 @@
     <string name="like_source">赞</string>
     <string name="like_source">赞</string>
     <string name="not_like_source">踩</string>
     <string name="not_like_source">踩</string>
     <string name="async_load_image">异步加载图片</string>
     <string name="async_load_image">异步加载图片</string>
+    <string name="ignore_audio_focus_title">忽略音频焦点</string>
+    <string name="ignore_audio_focus_summary">允许与其他应用同时播放音频</string>
 </resources>
 </resources>

+ 2 - 0
app/src/main/res/values-ja-rJP/strings.xml

@@ -1032,4 +1032,6 @@
     <string name="like_source">赞</string>
     <string name="like_source">赞</string>
     <string name="not_like_source">踩</string>
     <string name="not_like_source">踩</string>
     <string name="async_load_image">异步加载图片</string>
     <string name="async_load_image">异步加载图片</string>
+    <string name="ignore_audio_focus_title">忽略音频焦点</string>
+    <string name="ignore_audio_focus_summary">允许与其他应用同时播放音频</string>
 </resources>
 </resources>

+ 2 - 0
app/src/main/res/values-pt-rBR/strings.xml

@@ -1032,4 +1032,6 @@
     <string name="like_source">赞</string>
     <string name="like_source">赞</string>
     <string name="not_like_source">踩</string>
     <string name="not_like_source">踩</string>
     <string name="async_load_image">异步加载图片</string>
     <string name="async_load_image">异步加载图片</string>
+    <string name="ignore_audio_focus_title">忽略音频焦点</string>
+    <string name="ignore_audio_focus_summary">允许与其他应用同时播放音频</string>
 </resources>
 </resources>

+ 2 - 0
app/src/main/res/values-zh-rHK/strings.xml

@@ -1029,4 +1029,6 @@
     <string name="like_source">赞</string>
     <string name="like_source">赞</string>
     <string name="not_like_source">踩</string>
     <string name="not_like_source">踩</string>
     <string name="async_load_image">异步加载图片</string>
     <string name="async_load_image">异步加载图片</string>
+    <string name="ignore_audio_focus_title">忽略音频焦点</string>
+    <string name="ignore_audio_focus_summary">允许与其他应用同时播放音频</string>
 </resources>
 </resources>

+ 2 - 0
app/src/main/res/values-zh-rTW/strings.xml

@@ -1031,4 +1031,6 @@
     <string name="like_source">赞</string>
     <string name="like_source">赞</string>
     <string name="not_like_source">踩</string>
     <string name="not_like_source">踩</string>
     <string name="async_load_image">异步加载图片</string>
     <string name="async_load_image">异步加载图片</string>
+    <string name="ignore_audio_focus_title">忽略音频焦点</string>
+    <string name="ignore_audio_focus_summary">允许与其他应用同时播放音频</string>
 </resources>
 </resources>

+ 2 - 0
app/src/main/res/values-zh/strings.xml

@@ -1031,4 +1031,6 @@
     <string name="like_source">赞</string>
     <string name="like_source">赞</string>
     <string name="not_like_source">踩</string>
     <string name="not_like_source">踩</string>
     <string name="async_load_image">异步加载图片</string>
     <string name="async_load_image">异步加载图片</string>
+    <string name="ignore_audio_focus_title">忽略音频焦点</string>
+    <string name="ignore_audio_focus_summary">允许与其他应用同时播放音频</string>
 </resources>
 </resources>

+ 2 - 0
app/src/main/res/values/strings.xml

@@ -1032,4 +1032,6 @@
     <string name="like_source">赞</string>
     <string name="like_source">赞</string>
     <string name="not_like_source">踩</string>
     <string name="not_like_source">踩</string>
     <string name="async_load_image">异步加载图片</string>
     <string name="async_load_image">异步加载图片</string>
+    <string name="ignore_audio_focus_title">忽略音频焦点</string>
+    <string name="ignore_audio_focus_summary">允许与其他应用同时播放音频</string>
 </resources>
 </resources>

+ 6 - 0
app/src/main/res/xml/pref_config_other.xml

@@ -118,6 +118,12 @@
             android:summary="@string/show_add_to_shelf_alert_summary"
             android:summary="@string/show_add_to_shelf_alert_summary"
             android:title="@string/show_add_to_shelf_alert_title" />
             android:title="@string/show_add_to_shelf_alert_title" />
 
 
+        <io.legado.app.lib.prefs.SwitchPreference
+            android:defaultValue="false"
+            android:key="ignoreAudioFocus"
+            android:summary="@string/ignore_audio_focus_summary"
+            android:title="@string/ignore_audio_focus_title" />
+
         <io.legado.app.lib.prefs.Preference
         <io.legado.app.lib.prefs.Preference
             android:key="webPort"
             android:key="webPort"
             android:title="@string/web_port_title"
             android:title="@string/web_port_title"