媒体下载
公开媒体入口是 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): Boolean1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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}")1
2
3
4
5
6
7
2
3
4
5
6
7
BimMediaVariant 支持 DEFAULT、THUMBNAIL 和 ORIGINAL。BimMediaDownloadResult 返回目标路径和是否命中缓存;取消、失败和过期通过状态或 BimError 表达。
