package com.suno.android.common_ui.components import androidx.annotation.OptIn import androidx.compose.foundation.background import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.graphics.Color import androidx.compose.ui.layout.ContentScale import androidx.media3.common.Player import androidx.media3.common.util.UnstableApi import androidx.media3.ui.compose.PlayerSurface import androidx.media3.ui.compose.SURFACE_TYPE_TEXTURE_VIEW import androidx.media3.ui.compose.modifiers.resizeWithContentScale import androidx.media3.ui.compose.state.rememberPresentationState @OptIn(UnstableApi::class) @Composable fun SongVideoCoverPlayer( player: Player?, ) { if (player != null) { val presentationState = rememberPresentationState(player) // Avoids initial black screen while video is loading val playerAlpha = if (presentationState.coverSurface) 0f else 1f PlayerSurface( player = player, surfaceType = SURFACE_TYPE_TEXTURE_VIEW, modifier = Modifier .alpha(playerAlpha) .resizeWithContentScale( ContentScale.Crop, sourceSizeDp = presentationState.videoSizeDp, ) .background(Color.Transparent), ) } }