diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/player/AudioContentPlayerFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/player/AudioContentPlayerFragment.kt index 2e24868..617a145 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/player/AudioContentPlayerFragment.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/player/AudioContentPlayerFragment.kt @@ -353,6 +353,26 @@ class AudioContentPlayerFragment( } } + binding.ivSeekForward10.setOnClickListener { + mediaController?.let { + val sessionCommand = SessionCommand( + "SEEK_FORWARD", + Bundle.EMPTY + ) + it.sendCustomCommand(sessionCommand, Bundle.EMPTY) + } + } + + binding.ivSeekBackward10.setOnClickListener { + mediaController?.let { + val sessionCommand = SessionCommand( + "SEEK_BACKWARD", + Bundle.EMPTY + ) + it.sendCustomCommand(sessionCommand, Bundle.EMPTY) + } + } + binding.sbProgress.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { override fun onProgressChanged( seekBar: SeekBar?, diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/player/AudioContentPlayerService.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/player/AudioContentPlayerService.kt index d5b3299..bf5b259 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/player/AudioContentPlayerService.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/player/AudioContentPlayerService.kt @@ -130,6 +130,8 @@ class AudioContentPlayerService : MediaSessionService() { .add(SessionCommand("PLAY_PREVIOUS_CONTENT", Bundle.EMPTY)) .add(SessionCommand("PLAY_SELECTED_CONTENT", Bundle.EMPTY)) .add(SessionCommand("GET_PLAYLIST", Bundle.EMPTY)) + .add(SessionCommand("SEEK_FORWARD", Bundle.EMPTY)) + .add(SessionCommand("SEEK_BACKWARD", Bundle.EMPTY)) .build() return MediaSession.ConnectionResult.AcceptedResultBuilder(session) @@ -176,6 +178,16 @@ class AudioContentPlayerService : MediaSessionService() { Futures.immediateFuture(SessionResult(SessionResult.RESULT_SUCCESS)) } + "SEEK_FORWARD" -> { + playSeekForward() + Futures.immediateFuture(SessionResult(SessionResult.RESULT_SUCCESS)) + } + + "SEEK_BACKWARD" -> { + playSeekBackward() + Futures.immediateFuture(SessionResult(SessionResult.RESULT_SUCCESS)) + } + "GET_PLAYLIST" -> { val extras = Bundle().apply { putParcelableArrayList( @@ -227,6 +239,25 @@ class AudioContentPlayerService : MediaSessionService() { } } + private fun playSeekForward() { + val currentPosition = player!!.currentPosition + val duration = player!!.duration + var newPosition = currentPosition + SEEK_INTERVAL_MS + if (newPosition > duration) { + newPosition = duration + } + player!!.seekTo(newPosition) + } + + private fun playSeekBackward() { + val currentPosition = player!!.currentPosition + var newPosition = currentPosition - SEEK_INTERVAL_MS + if (newPosition < 0) { + newPosition = 0 + } + player!!.seekTo(newPosition) + } + private fun urlGenerateSuccess( content: AudioContentPlaylistContent, contentUrl: String @@ -318,4 +349,8 @@ class AudioContentPlayerService : MediaSessionService() { ) ) } + + companion object { + private const val SEEK_INTERVAL_MS = 10 * 1000 + } } diff --git a/app/src/main/res/drawable-xxhdpi/ic_player_next_10.png b/app/src/main/res/drawable-xxhdpi/ic_player_next_10.png new file mode 100755 index 0000000..c5ae6d1 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_player_next_10.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_player_next_15.png b/app/src/main/res/drawable-xxhdpi/ic_player_next_15.png deleted file mode 100755 index 69e92ed..0000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_player_next_15.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_player_prev_10.png b/app/src/main/res/drawable-xxhdpi/ic_player_prev_10.png new file mode 100755 index 0000000..90d7a57 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_player_prev_10.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_player_prev_15.png b/app/src/main/res/drawable-xxhdpi/ic_player_prev_15.png deleted file mode 100755 index 9800457..0000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_player_prev_15.png and /dev/null differ diff --git a/app/src/main/res/layout/fragment_audio_content_player.xml b/app/src/main/res/layout/fragment_audio_content_player.xml index a4162c2..3ed11f9 100644 --- a/app/src/main/res/layout/fragment_audio_content_player.xml +++ b/app/src/main/res/layout/fragment_audio_content_player.xml @@ -24,9 +24,9 @@ android:ellipsize="end" android:fontFamily="@font/gmarket_sans_medium" android:maxLines="2" + android:padding="5dp" android:textColor="@color/color_eeeeee" android:textSize="16sp" - android:padding="5dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/iv_close" @@ -142,6 +142,29 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@+id/iv_play_or_pause" /> + + + +