From dfb2c903a4844450bbb1f2f416964f46c5fa6557 Mon Sep 17 00:00:00 2001 From: klaus Date: Tue, 8 Apr 2025 13:19:52 +0900 Subject: [PATCH] =?UTF-8?q?=EC=BD=98=ED=85=90=EC=B8=A0=20=EC=83=81?= =?UTF-8?q?=EC=84=B8=20-=2010=EC=B4=88=20=EC=A0=84/=ED=9B=84=EB=A1=9C=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../audio_content/AudioContentPlayService.kt | 27 ++++++++++++- .../detail/AudioContentDetailActivity.kt | 39 ++++++++++++++++++- .../layout/activity_audio_content_detail.xml | 22 +++++++++++ 3 files changed, 85 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/AudioContentPlayService.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/AudioContentPlayService.kt index c0d12a9..fb9693e 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/AudioContentPlayService.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/AudioContentPlayService.kt @@ -203,6 +203,14 @@ class AudioContentPlayService : } } + MusicAction.SEEK_BACKWARD.name -> { + seekBackward10Seconds() + } + + MusicAction.SEEK_FORWARD.name -> { + seekForward10Seconds() + } + else -> { val contentId = intent?.getLongExtra(Constants.EXTRA_AUDIO_CONTENT_ID, 0) if (contentId != null && this.contentId == contentId) { @@ -314,6 +322,23 @@ class AudioContentPlayService : } } + private fun seekForward10Seconds() { + if (this::mediaPlayer.isInitialized && mediaPlayer.isPlaying) { + val currentPosition = mediaPlayer.currentPosition + val duration = mediaPlayer.duration + val newPosition = (currentPosition + 10_000).coerceAtMost(duration) + mediaPlayer.seekTo(newPosition) + } + } + + private fun seekBackward10Seconds() { + if (this::mediaPlayer.isInitialized && mediaPlayer.isPlaying) { + val currentPosition = mediaPlayer.currentPosition + val newPosition = (currentPosition - 10_000).coerceAtLeast(0) + mediaPlayer.seekTo(newPosition) + } + } + private fun toggleIsPlaying(isPlaying: Boolean? = null) { this.isPlaying = isPlaying ?: !this.isPlaying if (this.isPlaying) { @@ -578,6 +603,6 @@ class AudioContentPlayService : } enum class MusicAction { - PLAY, PAUSE, STOP, PROGRESS, INIT, CONDITIONAL_STOP + PLAY, PAUSE, STOP, PROGRESS, INIT, CONDITIONAL_STOP, SEEK_FORWARD, SEEK_BACKWARD } } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/detail/AudioContentDetailActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/detail/AudioContentDetailActivity.kt index 13c6905..b954d57 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/detail/AudioContentDetailActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/detail/AudioContentDetailActivity.kt @@ -719,6 +719,8 @@ class AudioContentDetailActivity : BaseActivity + + + +