This commit is contained in:
Eric85710 2026-06-22 18:19:50 +08:00
parent 78c3c7f218
commit ae89ad03fd
2 changed files with 15 additions and 1 deletions

View file

@ -104,4 +104,7 @@ dependencies {
val media3Version = "1.5.1" // 建議統一宣告版本,避免版本衝突
implementation("androidx.media3:media3-exoplayer:$media3Version")
implementation("androidx.media3:media3-ui:$media3Version")
//video decode
implementation("io.coil-kt:coil-video:2.6.0")
}

View file

@ -77,6 +77,8 @@ import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material.icons.filled.Call
import androidx.compose.material.icons.filled.MoreVert
import androidx.compose.material.icons.filled.PlayArrow
import coil.ImageLoader
import coil.decode.VideoFrameDecoder
import com.example.login_v3.data.api.api_class.CallLogInfo
import com.example.login_v3.home.Message.UI.Detail.Message_Component.CallLogBubble
import com.example.login_v3.home.Message.UI.Detail.Message_Component.ImageLightbox
@ -739,9 +741,18 @@ fun MessageRow(
AsyncImage(
model = finalMediaUrl,
contentDescription = "影片預覽",
// 🌟 注入一個支援影片解碼的 ImageLoader
imageLoader = ImageLoader.Builder(LocalContext.current)
.components {
add(VideoFrameDecoder.Factory())
}
.build(),
contentScale = ContentScale.Crop,
modifier = Modifier.fillMaxSize(),
alpha = 0.8f // 稍微壓暗,讓播放按鈕更明顯
alpha = 0.8f,
onError = { errorState ->
android.util.Log.e("ChatVideoThumbError", "原因: ${errorState.result.throwable}")
}
)
// 播放圖示容器