This commit is contained in:
Horis
2022-09-18 20:07:12 +08:00
parent b73f2c68fb
commit 022ea02a06
12 changed files with 39 additions and 0 deletions
@@ -112,6 +112,7 @@ object PreferKey {
const val pageTouchSlop = "pageTouchSlop"
const val showAddToShelfAlert = "showAddToShelfAlert"
const val asyncLoadImage = "asyncLoadImage"
const val ignoreAudioFocus = "ignoreAudioFocus"
const val cPrimary = "colorPrimary"
const val cAccent = "colorAccent"
@@ -322,6 +322,8 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
val asyncLoadImage get() = appCtx.getPrefBoolean(PreferKey.asyncLoadImage, false)
val ignoreAudioFocus get() = appCtx.getPrefBoolean(PreferKey.ignoreAudioFocus, false)
val doublePageHorizontal: String?
get() = appCtx.getPrefString(PreferKey.doublePageHorizontal)
@@ -24,6 +24,7 @@ import io.legado.app.data.appDb
import io.legado.app.data.entities.Book
import io.legado.app.data.entities.BookChapter
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.glide.ImageLoader
import io.legado.app.model.AudioPlay
@@ -442,6 +443,10 @@ class AudioPlayService : BaseService(),
* 音频焦点变化
*/
override fun onAudioFocusChange(focusChange: Int) {
if (AppConfig.ignoreAudioFocus) {
AppLog.put("忽略音频焦点处理(有声)")
return
}
when (focusChange) {
AudioManager.AUDIOFOCUS_GAIN -> {
// 重新获得焦点, 可做恢复播放,恢复后台音量的操作
@@ -541,6 +546,9 @@ class AudioPlayService : BaseService(),
* @return 音频焦点
*/
private fun requestFocus(): Boolean {
if (AppConfig.ignoreAudioFocus) {
return true
}
return MediaHelp.requestFocus(audioManager, mFocusRequest)
}
@@ -17,6 +17,7 @@ import io.legado.app.R
import io.legado.app.base.BaseService
import io.legado.app.constant.*
import io.legado.app.help.MediaHelp
import io.legado.app.help.config.AppConfig
import io.legado.app.help.glide.ImageLoader
import io.legado.app.model.ReadAloud
import io.legado.app.model.ReadBook
@@ -230,6 +231,9 @@ abstract class BaseReadAloudService : BaseService(),
* @return 音频焦点
*/
fun requestFocus(): Boolean {
if (AppConfig.ignoreAudioFocus) {
return true
}
val requestFocus = MediaHelp.requestFocus(audioManager, mFocusRequest)
if (!requestFocus) {
toastOnUi("未获取到音频焦点")
@@ -277,6 +281,10 @@ abstract class BaseReadAloudService : BaseService(),
* 音频焦点变化
*/
override fun onAudioFocusChange(focusChange: Int) {
if (AppConfig.ignoreAudioFocus) {
AppLog.put("忽略音频焦点处理(TTS)")
return
}
when (focusChange) {
AudioManager.AUDIOFOCUS_GAIN -> {
if (needResumeOnAudioFocusGain) {