【问题标题】:How to manage MediaPlayer Properly in jetpack compose?如何在 jetpack compose 中正确管理 MediaPlayer?
【发布时间】:2023-01-18 07:00:13
【问题描述】:

每当我想导航到其他屏幕时,我希望我的 MediaPlayer 应该停止在使用 stop() 函数的最佳位置。

@Composable
 fun MenuScreen(navController: NavController) {

val context = LocalContext.current
val menuMusic : MediaPlayer = MediaPlayer.create(context , R.raw.menu_music)
menuMusic.isLooping = true
menuMusic.start()

Box(
    modifier = Modifier
        .fillMaxSize()
        .background(color = darkBackground)
) {...}

【问题讨论】:

    标签: kotlin android-jetpack-compose


    【解决方案1】:

    如果您希望 MediaPlayer 在可组合项进入合成时启动并在离开合成时停止,您可以这样做:

    val context = LocalContext.current
    val menuMusic: MediaPlayer = remember { 
        MediaPlayer.create(context, R.raw.menu_music) 
    }
    
    DisposableEffect(Unit) {
        menuMusic.isLooping = true
        menuMusic.start()
    
        onDispose {
            menuMusic.stop()
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-08-03
      • 2022-08-18
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-22
      相关资源
      最近更新 更多