跳到主要内容

下载媒体消息文件

IMLib SDK 提供了对媒体消息中的多媒体文件进行下载的功能。

下载媒体消息中的媒体文件

如果消息 Message 对象中包含媒体消息内容(指 Message#getContent() 返回媒体消息内容MediaMessageContent),其中可能携带了媒体文件地址。IMLib SDK 内置的媒体消息类型如下:

在收到此类消息时,您可以使用 downloadMediaMessage 下载其中的媒体文件。

示例代码

Java
RongCoreClient.getInstance().downloadMediaMessage(message, new IRongCallback.IDownloadMediaMessageCallback() {
@Override
public void onSuccess(Message message) {

}

@Override
public void onProgress(Message message, int progress) {

}

@Override
public void onError(Message message, IRongCoreEnum.CoreErrorCode code) {

}

@Override
public void onCanceled(Message message) {

}
});

获取当前下载的文件信息

在调用 downloadMediaMessage 下载多媒体文件的过程中,可调用 getDownloadInfo 获取下载文件总大小、存储路径等信息。该接口仅在下载过程中调用时会返回正确信息。下载完成后调用该接口会返回 null

tag 是文件唯一识别标志,可以使用 messageId 字符串。

Java
String tag = message.getMessageId();

RongCoreClient.getInstance().getDownloadInfo(tag, new IRongCoreCallback.ResultCallback<DownloadInfo>() {
@Override
public void onSuccess(DownloadInfo downloadInfo) {

}

@Override
public void onError(IRongCoreEnum.CoreErrorCode code) {

}
});

取消下载多媒体文件

使用 cancelDownloadMediaMessage 取消下载多媒体文件,需要传入当前正在下载的 Message 对象。

Java
RongCoreClient.getInstance().cancelDownloadMediaMessage(message, new IRongCoreCallback.OperationCallback() {
@Override
public void onSuccess() {

}

@Override
public void onError(IRongCoreEnum.CoreErrorCode code) {

}
});

暂停下载多媒体文件

您在下载媒体文件的过程中可以暂停下载。如需恢复下载,需重新调用下载方法,下载支持断点续传。

Java
RongCoreClient.getInstance().pauseDownloadMediaMessage(message, new IRongCoreCallback.OperationCallback() {
@Override
public void onSuccess() {

}

@Override
public void onError(IRongCoreEnum.CoreErrorCode code) {

}
});