下载与展示媒体消息
SDK 提供多媒体文件的下载功能,支持通过媒体消息中的地址下载文件。
下载媒体消息中的媒体文件
如果消息 Message
对象中包含媒体消息内容(指 Message.content
为 MediaMessageContent
子类(如 FileMessage
,ImageMessage
, HQVoiceMessage
等),其中携带了媒体文件地址),可以使用 downloadMediaMessage
下载媒体文件。
提示
- 首次下载媒体消息,SDK 会将媒体数据保存到
localPath
中返回。同一个媒体消息多次调用下载接口,SDK 只会下载一次。 - 该方法已废弃,用
downloadMediaMessageWithProgress
替代。
TypeScript
let messageId = 234;
IMEngine.getInstance().downloadMediaMessage(messageId).then(result => {
if (EngineError.Success === result.code) {
// 本地路径
let localPath = result.data as string;
}
});
下载媒体消息中的媒体文件(带下载进度)
1.3.0 支持该功能,包含下载进度。
提示
首次下载媒体消息,SDK 会将媒体数据保存到 localPath
中返回。同一个媒体消息多次调用下载接口,SDK 只会下载一次。
SDK 下载媒体过程中,调用了 cancelDownloadMediaMessage()
,该方法会返回 EngineError.RequestCanceled
。
TypeScript
let messageId = 123;
IMEngine.getInstance().downloadMediaMessageWithProgress(messageId, (messageId: number, progress: number) => {
// 下载进度,取值范围 [0 , 100]
}).then(result => {
if (EngineError.Success === result.code) {
// 本地路径
let localPath = result.data as string;
}
});
取消下载媒体消息
1.3.0 支持该功能
提示
取消之后,再次调用下载方法,SDK 会重新下载。
TypeScript
let messageId = 123;
IMEngine.getInstance().cancelDownloadMediaMessage(messageId).then(result => {
if (EngineError.Success === result.code) {
// 下载取消成功
} else {
// 下载取消失败
}
});
展示媒体消息
展示图片消息
在聊天页面展示图片消息的缩略图,点击图片消息进入图片预览时加载图片大图。鸿蒙的 Image 组件可以支持加载 base64 格式 ,本地路径和远端地址的图片。