|
|
|
@ -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) |
|
|
|
@ -147,8 +148,11 @@ abstract class BaseReadAloudService : BaseService(), |
|
|
|
|
abstract fun playStop() |
|
|
|
|
|
|
|
|
|
@CallSuper |
|
|
|
|
open fun pauseReadAloud() { |
|
|
|
|
open fun pauseReadAloud(abandonFocus: Boolean = true) { |
|
|
|
|
pause = true |
|
|
|
|
if (abandonFocus) { |
|
|
|
|
abandonFocus() |
|
|
|
|
} |
|
|
|
|
upNotification() |
|
|
|
|
upMediaSessionPlaybackState(PlaybackStateCompat.STATE_PAUSED) |
|
|
|
|
postEvent(EventBus.ALOUD_STATE, Status.PAUSE) |
|
|
|
@ -228,6 +232,7 @@ abstract class BaseReadAloudService : BaseService(), |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 请求音频焦点 |
|
|
|
|
* @return 音频焦点 |
|
|
|
|
*/ |
|
|
|
|
fun requestFocus(): Boolean { |
|
|
|
@ -241,6 +246,14 @@ abstract class BaseReadAloudService : BaseService(), |
|
|
|
|
return requestFocus |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 放弃音频焦点 |
|
|
|
|
*/ |
|
|
|
|
private fun abandonFocus() { |
|
|
|
|
@Suppress("DEPRECATION") |
|
|
|
|
audioManager.abandonAudioFocus(this) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 更新媒体状态 |
|
|
|
|
*/ |
|
|
|
@ -302,7 +315,7 @@ abstract class BaseReadAloudService : BaseService(), |
|
|
|
|
AppLog.put("音频焦点暂时丢失并会很快再次获得,暂停朗读") |
|
|
|
|
if (!pause) { |
|
|
|
|
needResumeOnAudioFocusGain = true |
|
|
|
|
pauseReadAloud() |
|
|
|
|
pauseReadAloud(false) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK -> { |
|
|
|
|