From bbe90f1c551c3d9e45ab5033105ae7eed8e585da Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Mon, 8 Apr 2024 12:48:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/legado/app/model/AudioPlay.kt | 4 ++-- .../io/legado/app/service/AudioPlayService.kt | 20 ++++++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/io/legado/app/model/AudioPlay.kt b/app/src/main/java/io/legado/app/model/AudioPlay.kt index c06fcf3a5..922bebf08 100644 --- a/app/src/main/java/io/legado/app/model/AudioPlay.kt +++ b/app/src/main/java/io/legado/app/model/AudioPlay.kt @@ -116,7 +116,7 @@ object AudioPlay { Coroutine.async { book?.let { book -> if (book.durChapterIndex > 0) { - book.durChapterIndex = book.durChapterIndex - 1 + book.durChapterIndex -= 1 book.durChapterPos = 0 durChapter = null saveRead() @@ -131,7 +131,7 @@ object AudioPlay { fun next(context: Context) { book?.let { book -> if (book.durChapterIndex + 1 < book.totalChapterNum) { - book.durChapterIndex = book.durChapterIndex + 1 + book.durChapterIndex += 1 book.durChapterPos = 0 durChapter = null saveRead() diff --git a/app/src/main/java/io/legado/app/service/AudioPlayService.kt b/app/src/main/java/io/legado/app/service/AudioPlayService.kt index b9f9c6185..5bed235bc 100644 --- a/app/src/main/java/io/legado/app/service/AudioPlayService.kt +++ b/app/src/main/java/io/legado/app/service/AudioPlayService.kt @@ -20,7 +20,6 @@ import androidx.lifecycle.lifecycleScope import androidx.media.AudioFocusRequestCompat import androidx.media3.common.PlaybackException import androidx.media3.common.Player -import androidx.media3.common.util.UnstableApi import androidx.media3.exoplayer.ExoPlayer import io.legado.app.R import io.legado.app.base.BaseService @@ -59,7 +58,6 @@ import splitties.systemservices.notificationManager import splitties.systemservices.powerManager import splitties.systemservices.wifiManager -@UnstableApi /** * 音频播放服务 */ @@ -136,6 +134,7 @@ class AudioPlayService : BaseService(), .get() }.onSuccess { cover = it + upMediaMetadata() upAudioPlayNotification() } } @@ -321,11 +320,7 @@ class AudioPlayService : BaseService(), postEvent(EventBus.AUDIO_STATE, Status.PAUSE) } postEvent(EventBus.AUDIO_SIZE, exoPlayer.duration) - mediaSessionCompat?.setMetadata( - MediaMetadataCompat.Builder() - .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, exoPlayer.duration) - .build() - ) + upMediaMetadata() upPlayProgress() AudioPlay.saveDurChapter(exoPlayer.duration) } @@ -339,6 +334,17 @@ class AudioPlayService : BaseService(), upAudioPlayNotification() } + private fun upMediaMetadata() { + val metadata = MediaMetadataCompat.Builder() + .putBitmap(MediaMetadataCompat.METADATA_KEY_ART, cover) + .putText(MediaMetadataCompat.METADATA_KEY_TITLE, AudioPlay.durChapter?.title ?: "null") + .putText(MediaMetadataCompat.METADATA_KEY_ARTIST, AudioPlay.book?.name ?: "null") + .putText(MediaMetadataCompat.METADATA_KEY_ALBUM, AudioPlay.book?.author ?: "null") + .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, exoPlayer.duration) + .build() + mediaSessionCompat?.setMetadata(metadata) + } + /** * 播放错误事件 */