From 9ceb44a5a6028fb13d84fd0fd49c217e0df7dbdc Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 24 Mar 2025 17:09:02 +0800 Subject: [PATCH] optimize video player --- app/build.gradle.kts | 4 ++-- .../activity/video/player/PlayerView.kt | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c227553..474ec4e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -15,8 +15,8 @@ android { applicationId = "com.donut.mixfile" minSdk = 24 targetSdk = 35 - versionCode = 85 - versionName = "1.12.2" + versionCode = 86 + versionName = "1.12.3" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { diff --git a/app/src/main/java/com/donut/mixfile/activity/video/player/PlayerView.kt b/app/src/main/java/com/donut/mixfile/activity/video/player/PlayerView.kt index 67c7b86..8c67749 100644 --- a/app/src/main/java/com/donut/mixfile/activity/video/player/PlayerView.kt +++ b/app/src/main/java/com/donut/mixfile/activity/video/player/PlayerView.kt @@ -15,6 +15,7 @@ import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.mutableLongStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue @@ -124,13 +125,28 @@ fun VideoPlayerScreen( } } + var lastClick by remember { mutableLongStateOf(0L) } + Box( modifier = modifier .fillMaxSize() .background(Color.Black) .clickable( - onClick = { controlsVisible = !controlsVisible }, + onClick = { + if (System.currentTimeMillis() - lastClick < 300L) { + if (player.isPlaying) { + player.pause() + controlsVisible = true + } else { + player.play() + controlsVisible = false + } + return@clickable + } + lastClick = System.currentTimeMillis() + controlsVisible = !controlsVisible + }, indication = null, interactionSource = remember { MutableInteractionSource() } )