Skip to content
v1
文档/Android SDK/消息

媒体下载

公开媒体入口是 BimMediaManager,不需要宿主直接访问 SDK 内部 HTTP 或媒体仓库。

kotlin
fun getMediaUrl(mediaIdOrUrl: String): String?
suspend fun downloadToPath(
    mediaIdOrUrl: String,
    destinationPath: String,
    onProgress: ((BimMediaDownloadProgress) -> Unit)? = null,
): BimMediaDownloadResult
suspend fun downloadToPath(
    message: BimMessage,
    destinationPath: String,
    variant: BimMediaVariant = BimMediaVariant.DEFAULT,
    onProgress: ((BimMediaDownloadProgress) -> Unit)? = null,
): BimMediaDownloadResult
fun cancelDownload(mediaIdOrUrl: String, variant: BimMediaVariant = BimMediaVariant.DEFAULT): Boolean
fun isDownloading(mediaIdOrUrl: String, variant: BimMediaVariant = BimMediaVariant.DEFAULT): Boolean
fun cancelDownload(message: BimMessage, variant: BimMediaVariant = BimMediaVariant.DEFAULT): Boolean
fun isDownloading(message: BimMessage, variant: BimMediaVariant = BimMediaVariant.DEFAULT): Boolean
kotlin
val media = BimImManager.getInstance().getMediaManager()
val result = media.downloadToPath(
    message = imageMessage,
    destinationPath = filesDir.resolve("image.jpg").path,
    variant = BimMediaVariant.ORIGINAL,
) { progress -> println("${progress.progress}%") }
println("cached=${result.fromCache}")

BimMediaVariant 支持 DEFAULTTHUMBNAILORIGINALBimMediaDownloadResult 返回目标路径和是否命中缓存;取消、失败和过期通过状态或 BimError 表达。