Как отобразить миниатюру видео в Jetpack Compose?

#android #android-jetpack-compose #coil

Вопрос:

Я создаю простой экран галереи с помощью Jetpack Compose, который отображает все миниатюры видео и изображений на экране

Я успешно отобразил изображение из пути к файлу. Однако у меня возникли проблемы с отображением миниатюр видео. Как я могу это сделать с помощью катушки?

Вот мой код для отображения миниатюр изображений:

 @Composable
fun ImageLoaderFromLocal(
    url: String,
    placeHolderResId: Int,
    modifier: Modifier,
    transformation: Transformation
) {
    val painter = rememberImagePainter(data = File(url),
        builder = {
            placeholder(placeHolderResId)
            crossfade(true)
            transformations(transformation)
        })

    Image(
        painter = painter,
        contentDescription = null,
        modifier = modifier,
        contentScale = ContentScale.Inside
    )
}
 

Ответ №1:

Согласно документации катушки, вам необходимо добавить следующую зависимость:

 implementation("io.coil-kt:coil-video:$coil_version")
 

и укажите fetcher в конструкторе:

 val context = LocalContext.current
val painter = rememberImagePainter(
    data = url,
    builder = {
        fetcher(VideoFrameUriFetcher(context))
        // optionally set frame location
        videoFrameMillis(1000)

        placeholder(placeHolderResId)
        crossfade(true)
        transformations(transformation)
    }
)
 

Комментарии:

1. Спасибо @Филипп Духов, вы сэкономили мне время.