Skip to main content

Download Media Message Files

The IMLib SDK provides functionality to download multimedia files from media messages.

Download Media Files from Messages

If a Message object contains media message content (where Message#getContent() returns media message content MediaMessageContent), it may include media file URLs. The built-in media message types in IMLib SDK include:

For such messages, you can use downloadMediaMessage to download the media files.

Sample Code

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) {

}
});

Retrieve Current Download File Information

During the downloadMediaMessage process, call getDownloadInfo to obtain details like total file size and storage path. This method only returns valid information during active downloads. It returns null after completion.

tag serves as a unique file identifier, where you can use the messageId string.

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) {

}
});

Cancel Media File Download

Use cancelDownloadMediaMessage to cancel an ongoing download by passing the current Message object.

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

}

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

}
});

Pause Media File Download

You may pause downloads during the process. To resume, call the download method again as it supports resumable transfers.

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

}

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

}
});