跳到主要内容

下载媒体消息文件

SDK 提供多媒体文件的下载功能,支持通过媒体消息中的地址下载文件。

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

如果消息 Message 对象中包含媒体消息内容(指 Message#getContent() 返回媒体消息内容(FileMessageSightMessageImageMessage, GIFMessage, HQVoiceMessage 等),其中携带了媒体文件地址),可以使用 downloadMediaMessage 下载媒体文件。

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 字符串。

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 对象。

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

}

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

}
});

暂停下载多媒体文件

暂停多媒体消息下载。

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

}

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

}
});