@@ -3,11 +3,14 @@ package com.example.floclone
33import android.content.Intent
44import android.graphics.PorterDuff
55import android.os.Bundle
6+ import android.os.Handler
7+ import android.os.Looper
68import android.view.View
7- import android.widget.TextView
9+ import android.widget.SeekBar
810import androidx.appcompat.app.AppCompatActivity
911import androidx.core.content.ContextCompat
1012import com.example.floclone.databinding.ActivitySongBinding
13+ import java.util.concurrent.TimeUnit
1114
1215class SongActivity : AppCompatActivity () {
1316
@@ -66,6 +69,20 @@ class SongActivity : AppCompatActivity() {
6669 binding.songMusicTitleTv.text = intent.getStringExtra(" title" )
6770 binding.songSingerNameTv.text = intent.getStringExtra(" singer" )
6871 }
72+
73+ // SeekBar 설정
74+ binding.songProgressSb.max = 60000 // 1분
75+ updateSeekBar()
76+
77+ binding.songProgressSb.setOnSeekBarChangeListener(object : SeekBar .OnSeekBarChangeListener {
78+ override fun onProgressChanged (seekBar : SeekBar ? , progress : Int , fromUser : Boolean ) {
79+ binding.songStartTimeTv.text = String .format(" %02d:%02d" ,
80+ TimeUnit .MILLISECONDS .toMinutes(progress.toLong()),
81+ TimeUnit .MILLISECONDS .toSeconds(progress.toLong()) % 60 )
82+ }
83+ override fun onStartTrackingTouch (seekBar : SeekBar ? ) {}
84+ override fun onStopTrackingTouch (seekBar : SeekBar ? ) {}
85+ })
6986 }
7087
7188 // 재생 버튼의 상태를 바꿔주는 메서드
@@ -87,6 +104,20 @@ class SongActivity : AppCompatActivity() {
87104 setResult(RESULT_OK , returnIntent)
88105 }
89106
107+
108+ private fun updateSeekBar () {
109+ val handler = Handler (Looper .getMainLooper())
110+ handler.postDelayed(object : Runnable {
111+ override fun run () {
112+ if (binding.songMiniplayerIv.visibility == View .GONE ) { // 음악이 재생 중일 때
113+ val currentPosition = binding.songProgressSb.progress + 1000 // 1초씩 증가
114+ binding.songProgressSb.progress = currentPosition
115+ }
116+ handler.postDelayed(this , 1000 )
117+ }
118+ }, 1000 )
119+ }
120+
90121 override fun onBackPressed () {
91122 returnSongTitle() // 뒤로가기 눌렀을 때도 데이터 반환
92123 super .onBackPressed()
0 commit comments