From bee2d6cacc7ff3af682897eee1eac4720f5e1b8d Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期六, 08 二月 2025 18:15:37 +0800
Subject: [PATCH] 新增功能开发完成

---
 app/src/main/java/com/sinata/xqmuse/ui/home/VoiceDetailActivity.kt |   40 ++++++++++++++++++++++++++++++++--------
 1 files changed, 32 insertions(+), 8 deletions(-)

diff --git a/app/src/main/java/com/sinata/xqmuse/ui/home/VoiceDetailActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/home/VoiceDetailActivity.kt
index 437ba5d..1b55c56 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/home/VoiceDetailActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/home/VoiceDetailActivity.kt
@@ -2,6 +2,7 @@
 
 import android.os.CountDownTimer
 import android.util.Log
+import android.widget.SeekBar
 import androidx.core.os.bundleOf
 import cn.sinata.xldutils.gone
 import cn.sinata.xldutils.utils.SPUtils
@@ -22,12 +23,12 @@
 import com.sinata.xqmuse.ui.TransparentStatusBarActivity
 import com.sinata.xqmuse.utils.Const
 import com.sinata.xqmuse.utils.event.EmptyEvent
+import com.sinata.xqmuse.utils.event.IntEvent
 import com.sinata.xqmuse.utils.interfaces.StringCallback
 import com.umeng.socialize.bean.SHARE_MEDIA
 import kotlinx.android.synthetic.main.activity_voice_detail.*
 import org.greenrobot.eventbus.EventBus
 import org.greenrobot.eventbus.Subscribe
-import org.jetbrains.anko.toast
 
 class VoiceDetailActivity:TransparentStatusBarActivity() {
     override fun setContentView() = R.layout.activity_voice_detail
@@ -104,6 +105,25 @@
             val volumeDialog = VolumeDialog()
             volumeDialog.showAllowingStateLoss(supportFragmentManager,"vol")
         }
+
+        sb_voice.setOnSeekBarChangeListener(object :SeekBar.OnSeekBarChangeListener{
+            override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
+            }
+
+            override fun onStartTrackingTouch(seekBar: SeekBar?) {
+                if (MainActivity.playing){ //播放中,让其暂停,并让按钮无法点击
+                    iv_play.isEnabled = false
+                    EventBus.getDefault().post(EmptyEvent(Const.EventCode.PAUSE_OR_RESUME_THINK))
+                }
+            }
+
+            override fun onStopTrackingTouch(seekBar: SeekBar?) {
+                if (!MainActivity.playing){//暂停时,让其播放并让按钮恢复可点击
+                    EventBus.getDefault().post(IntEvent(Const.EventCode.THINK_SEEK_PROGRESS,seekBar?.progress?:0))
+                    iv_play.isEnabled = true
+                }
+            }
+        })
     }
 
     override fun initView() {
@@ -116,14 +136,18 @@
             tv_name.text = meditationTitle
             tv_subtitle.text = detailDescription
             tv_comment.text = questionCount
-            if (MainActivity.voice?.id == id&&MainActivity.playing) //是本音频并且播放中
-                iv_play.setImageResource(R.mipmap.player_pause)
-            else
-                iv_play.setImageResource(R.mipmap.play_detail)
             val seconds = (if (MainActivity.voice?.id == id) meditationSecondList?.getOrNull(MainActivity.index) else meditationSecondList?.firstOrNull() )?: 0
             tv_total.text = "%02d:%02d".format(seconds/60,seconds%60)
-            if (MainActivity.voice?.id == id&&MainActivity.finishTime!=0L)//有倒计时存在
-                startTimer()
+            sb_voice.max = seconds
+            if (MainActivity.voice?.id == id){  //主页播放的正是本音频
+                if (MainActivity.finishTime!=0L)//有倒计时存在
+                    startTimer()
+                if (MainActivity.playing) //如果在播放中,按钮变为暂停
+                    iv_play.setImageResource(R.mipmap.player_pause)
+                //恢复进度
+                tv_progress.text = "%02d:%02d".format(MainActivity.currentPosition/1000/60,MainActivity.currentPosition/1000%60)
+                sb_voice.progress = (MainActivity.currentPosition/1000).toInt()
+            }
         }
         EventBus.getDefault().register(this)
     }
@@ -165,7 +189,7 @@
             sb_voice.max = MainActivity.currentDuration
         }else if (e.code == Const.EventCode.GOT_THINK_POSITION&&MainActivity.voice?.id == voiceDetail?.id){
             tv_progress.text = "%02d:%02d".format(MainActivity.currentPosition/1000/60,MainActivity.currentPosition/1000%60)
-            sb_voice.progress = MainActivity.currentPosition/1000
+            sb_voice.progress = (MainActivity.currentPosition/1000).toInt()
         }
     }
 

--
Gitblit v1.7.1