我试图加载一个图像谁(mimeType是视频/mp4)使用**线圈 * 在我的Android应用程序从内容URI.
下面是我使用的代码片段:
val mediaPath = "content://media/external/file/252819" // its mimeType is video/mp4
AsyncImage(
model = mediaPath,
contentDescription = stringResource(id = R.string.thumbnail),
placeholder = painterResource(id = R.drawable.ic_default_thumbnail),
error = painterResource(id = R.drawable.ic_default_thumbnail),
modifier = Modifier
.fillMaxWidth()
.aspectRatio(1f),
contentScale = ContentScale.Crop
)
甚至我也尝试使用rememberAsyncImagePainter加载:
val imagePainter =
rememberAsyncImagePainter(
ImageRequest.Builder(LocalContext.current).data(data = media.mediaPath).apply(block = fun ImageRequest.Builder.() {
placeholder(R.drawable.ic_default_thumbnail)
error(R.drawable.ic_default_thumbnail)
}).build()
)
Image(
painter = imagePainter,
contentDescription = stringResource(id = R.string.thumbnail),
modifier = Modifier
.fillMaxWidth()
.aspectRatio(1f),
contentScale = ContentScale.Crop
)
尽管使用了正确的内容URI并提供了必要的占位符和错误资源,但我还是无法成功加载缩略图。我已经验证了内容URI是有效的,并且引用了现有的视频文件。
**注意:**我有访问内容URI所需的权限,并已确保内容URI正确。
1条答案
按热度按时间z4iuyo4d1#
使用此LoadThumbnail方法,通过coil加载图像/视频缩略图: