开始多人协作

This commit is contained in:
2024-07-12 15:54:09 +08:00
parent 77ad6dfe16
commit f521346c07
2 changed files with 27 additions and 2 deletions

View File

@@ -90,10 +90,10 @@ fun NavigationController(navController: NavHostController){
navController = navController, navController = navController,
startDestination = NavigationItem.Home.route, startDestination = NavigationItem.Home.route,
enterTransition = { enterTransition = {
fadeIn(animationSpec = tween(300)) fadeIn(animationSpec = tween(0))
}, },
exitTransition = { exitTransition = {
fadeOut(animationSpec = tween(300)) fadeOut(animationSpec = tween(0))
}){ }){
composable(route = NavigationItem.Home.route){ composable(route = NavigationItem.Home.route){
Home() Home()

View File

@@ -35,6 +35,7 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.Shape import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
@@ -42,6 +43,8 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.compose.ui.viewinterop.AndroidView import androidx.compose.ui.viewinterop.AndroidView
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleEventObserver
import androidx.media3.common.C import androidx.media3.common.C
import androidx.media3.common.MediaItem import androidx.media3.common.MediaItem
import androidx.media3.common.Player import androidx.media3.common.Player
@@ -131,6 +134,7 @@ fun VideoPlayer(
) { ) {
val context = LocalContext.current val context = LocalContext.current
val scope= rememberCoroutineScope() val scope= rememberCoroutineScope()
val lifecycleOwner = LocalLifecycleOwner.current
val exoPlayer = remember { val exoPlayer = remember {
ExoPlayer.Builder(context) ExoPlayer.Builder(context)
@@ -214,6 +218,27 @@ fun VideoPlayer(
} }
} }
DisposableEffect(lifecycleOwner) {
val observer = LifecycleEventObserver { _, event ->
when (event) {
Lifecycle.Event.ON_PAUSE -> {
exoPlayer.pause() // 应用进入后台时暂停
}
Lifecycle.Event.ON_RESUME -> {
if (pager == pagerState.currentPage) {
exoPlayer.play() // 返回前台且为当前页面时恢复播放
}
}
else -> {}
}
}
lifecycleOwner.lifecycle.addObserver(observer)
onDispose {
lifecycleOwner.lifecycle.removeObserver(observer)
}
}
} }
Box(modifier = Modifier.fillMaxSize(), Box(modifier = Modifier.fillMaxSize(),