Android用Coil 3检查媒体资源是否有效,Kotlin

Android用Coil 3检查媒体资源是否有效,Kotlin

Kotlin 复制代码
    @WorkerThread
    fun checkImage(ctx: Context, uri: Uri): Boolean {
        val t = System.currentTimeMillis()
        val request = ImageRequest.Builder(ctx)
            .data(uri)
            .memoryCacheKey(uri.toString())
            .precision(Precision.INEXACT)
            .bitmapConfig(Bitmap.Config.ALPHA_8)
            .size(1, 1)
            .build()
        val result = coil3.executeBlocking(request)
        val bmp = result.image?.toBitmap()

        var valid = false

        if (bmp != null && bmp.byteCount > 0) {
            valid = true
        }

        Log.d("fly", "image valid=$valid  time=${System.currentTimeMillis() - t}ms")

        return valid
    }

返回true,表明这个uri指向的媒体是有效的资源。

Android Coil 3拦截器Interceptor计算单次请求耗时,Kotlin-CSDN博客文章浏览阅读537次,点赞5次,收藏6次。【Android Coil3技术分享】文章包含两部分内容:1) 通过自定义Interceptor拦截器实现图片请求耗时统计功能,记录从请求发起至完成的时间差;2) 优化视频封面帧缓存方案,将PNG格式改为JPEG压缩(质量80%),使文件体积减少90%,同时采用FFmpeg快速抽取首帧和缓冲流技术提升磁盘I/O性能。该方案在保持画质的同时显著提升了缓存效率。https://blog.csdn.net/zhangphil/article/details/150523801