修复点击悬浮框的进入崩溃,原因是加载中的时候进入了进度条修改的代码。

This commit is contained in:
ocean 2024-07-04 17:33:30 +08:00
parent ec6350c733
commit f763279f89
2 changed files with 21 additions and 19 deletions

View File

@ -496,15 +496,13 @@ class MoPlayDetailsActivity : MoBaseActivity(), Player.Listener {
binding.progressDurationTv.text = currentString binding.progressDurationTv.text = currentString
if (MediaControllerManager.getDuration() > 0) { if (MediaControllerManager.getDuration() > 0) {
binding.totalDurationTv.visibility = View.VISIBLE binding.totalDurationTv.visibility = View.VISIBLE
} else {
binding.totalDurationTv.visibility = View.GONE
}
binding.totalDurationTv.text = binding.totalDurationTv.text =
convertMillisToMinutesAndSecondsString(MediaControllerManager.getDuration()) convertMillisToMinutesAndSecondsString(MediaControllerManager.getDuration())
binding.sbProgress.valueTo = MediaControllerManager.getDuration().toFloat() val valueTo = MediaControllerManager.getDuration().toFloat()
binding.sbProgress.valueTo = valueTo
val value = MediaControllerManager.getCurrentPosition().toFloat() val value = MediaControllerManager.getCurrentPosition().toFloat()
if (binding.sbProgress.valueTo > value) { if (valueTo > value) {
binding.sbProgress.value = value binding.sbProgress.value = value
} }
updateProgressState() updateProgressState()
@ -513,6 +511,9 @@ class MoPlayDetailsActivity : MoBaseActivity(), Player.Listener {
binding.progressBar.max = MediaControllerManager.getDuration().toInt() binding.progressBar.max = MediaControllerManager.getDuration().toInt()
updateProgressBufferingState() updateProgressBufferingState()
updatePlayListDataAndAdapter() updatePlayListDataAndAdapter()
} else {
binding.totalDurationTv.visibility = View.GONE
}
} }
} }
@ -637,7 +638,9 @@ class MoPlayDetailsActivity : MoBaseActivity(), Player.Listener {
toggleBottomLayout() toggleBottomLayout()
} }
binding.progressBar.progress = 0 binding.progressBar.progress = 0
if (binding.sbProgress.valueTo > 0f) {
binding.sbProgress.value = 0f binding.sbProgress.value = 0f
}
binding.sbProgress.addOnChangeListener { slider, value, fromUser -> binding.sbProgress.addOnChangeListener { slider, value, fromUser ->
if (fromUser) { if (fromUser) {
if (meController != null) { if (meController != null) {
@ -822,7 +825,9 @@ class MoPlayDetailsActivity : MoBaseActivity(), Player.Listener {
} }
private fun updateProgressUi() { private fun updateProgressUi() {
if (binding.sbProgress.valueTo > 0f) {
binding.sbProgress.value = 0f binding.sbProgress.value = 0f
}
binding.progressBar.progress = 0 binding.progressBar.progress = 0
binding.progressDurationTv.text = convertMillisToMinutesAndSecondsString(0L) binding.progressDurationTv.text = convertMillisToMinutesAndSecondsString(0L)
binding.totalDurationTv.visibility = View.GONE binding.totalDurationTv.visibility = View.GONE
@ -890,7 +895,6 @@ class MoPlayDetailsActivity : MoBaseActivity(), Player.Listener {
val currentBufferedPosition = MediaControllerManager.getBufferedPosition() val currentBufferedPosition = MediaControllerManager.getBufferedPosition()
binding.progressBar.progress = currentBufferedPosition.toInt() binding.progressBar.progress = currentBufferedPosition.toInt()
val value = currentPosition.toFloat() val value = currentPosition.toFloat()
if (binding.sbProgress.valueTo > value) { if (binding.sbProgress.valueTo > value) {
binding.sbProgress.value = value binding.sbProgress.value = value

View File

@ -292,8 +292,6 @@
android:id="@+id/sbProgress" android:id="@+id/sbProgress"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:value="10"
android:valueTo="100"
app:labelBehavior="gone" app:labelBehavior="gone"
app:thumbColor="@color/white" app:thumbColor="@color/white"
app:thumbRadius="6dp" app:thumbRadius="6dp"