pull/2300/head
Horis 3 years ago
parent 9ac00b6bbc
commit d696e10281
  1. 11
      app/src/main/java/io/legado/app/service/AudioPlayService.kt
  2. 11
      app/src/main/java/io/legado/app/service/BaseReadAloudService.kt
  3. 3
      app/src/main/java/io/legado/app/ui/book/read/page/entities/TextPage.kt

@ -121,6 +121,7 @@ class AudioPlayService : BaseService(),
override fun onDestroy() {
super.onDestroy()
isRun = false
abandonFocus()
exoPlayer.release()
mediaSessionCompat?.release()
unregisterReceiver(broadcastReceiver)
@ -169,6 +170,7 @@ class AudioPlayService : BaseService(),
private fun pause() {
try {
pause = true
abandonFocus()
upPlayProgressJob?.cancel()
position = exoPlayer.currentPosition.toInt()
if (exoPlayer.isPlaying) exoPlayer.pause()
@ -549,6 +551,7 @@ class AudioPlayService : BaseService(),
}
/**
* 请求音频焦点
* @return 音频焦点
*/
private fun requestFocus(): Boolean {
@ -558,4 +561,12 @@ class AudioPlayService : BaseService(),
return MediaHelp.requestFocus(audioManager, mFocusRequest)
}
/**
* 放弃音频焦点
*/
private fun abandonFocus() {
@Suppress("DEPRECATION")
audioManager.abandonAudioFocus(this)
}
}

@ -92,6 +92,7 @@ abstract class BaseReadAloudService : BaseService(),
super.onDestroy()
isRun = false
pause = true
abandonFocus()
unregisterReceiver(broadcastReceiver)
postEvent(EventBus.ALOUD_STATE, Status.STOP)
upMediaSessionPlaybackState(PlaybackStateCompat.STATE_STOPPED)
@ -149,6 +150,7 @@ abstract class BaseReadAloudService : BaseService(),
@CallSuper
open fun pauseReadAloud() {
pause = true
abandonFocus()
upNotification()
upMediaSessionPlaybackState(PlaybackStateCompat.STATE_PAUSED)
postEvent(EventBus.ALOUD_STATE, Status.PAUSE)
@ -228,6 +230,7 @@ abstract class BaseReadAloudService : BaseService(),
}
/**
* 请求音频焦点
* @return 音频焦点
*/
fun requestFocus(): Boolean {
@ -241,6 +244,14 @@ abstract class BaseReadAloudService : BaseService(),
return requestFocus
}
/**
* 放弃音频焦点
*/
private fun abandonFocus() {
@Suppress("DEPRECATION")
audioManager.abandonAudioFocus(this)
}
/**
* 更新媒体状态
*/

@ -201,6 +201,9 @@ data class TextPage(
val maxIndex = min(lineIndex, lineSize)
for (index in 0 until maxIndex) {
length += textLines[index].charSize
if (textLines[index].isParagraphEnd) {
length++
}
}
return length + columnIndex
}

Loading…
Cancel
Save