开始多人协作
This commit is contained in:
@@ -90,10 +90,10 @@ fun NavigationController(navController: NavHostController){
|
||||
navController = navController,
|
||||
startDestination = NavigationItem.Home.route,
|
||||
enterTransition = {
|
||||
fadeIn(animationSpec = tween(300))
|
||||
fadeIn(animationSpec = tween(0))
|
||||
},
|
||||
exitTransition = {
|
||||
fadeOut(animationSpec = tween(300))
|
||||
fadeOut(animationSpec = tween(0))
|
||||
}){
|
||||
composable(route = NavigationItem.Home.route){
|
||||
Home()
|
||||
|
||||
@@ -35,6 +35,7 @@ import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.Shape
|
||||
import androidx.compose.ui.graphics.toArgb
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.LocalLifecycleOwner
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.text.TextStyle
|
||||
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.sp
|
||||
import androidx.compose.ui.viewinterop.AndroidView
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.LifecycleEventObserver
|
||||
import androidx.media3.common.C
|
||||
import androidx.media3.common.MediaItem
|
||||
import androidx.media3.common.Player
|
||||
@@ -131,6 +134,7 @@ fun VideoPlayer(
|
||||
) {
|
||||
val context = LocalContext.current
|
||||
val scope= rememberCoroutineScope()
|
||||
val lifecycleOwner = LocalLifecycleOwner.current
|
||||
|
||||
val exoPlayer = remember {
|
||||
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(),
|
||||
|
||||
Reference in New Issue
Block a user