下载媒体消息文件
IMLib SDK 提供了对媒体消息中的多媒体文件进行下载的功能。
媒体消息中的媒体文件
消息 RCMessage 对象的 content
属性如果是 RCMediaMessageContent
类型的,其中可能携带了媒体文件的远端存储地址。IMLib SDK 内置的媒体消息类型如下:
- RCFileMessage:文件消息内容
- RCImageMessage:图片消息内容
- RCGIFMessage:GIF 消息内容
- RCHQVoiceMessage:高清语音消息
- RCSightMessage:小视频消息内容
在收到此类消息时,您可以使用 downloadMediaMessage
下载其中的媒体文件。
下载媒体消息中的媒体文件
提示
- SDK 版本 从 5.6.6 开始,提供传入 RCMessage 下载媒体文件的方法,同时废弃传入消息 messageId 下载媒体文件的方法。
- 下载媒体文件至本地后,消息内容体
RCMediaMessageContent
中的媒体文 件本地路径localPath
会被更新。
接口参数
Objective C
/// - Since: 5.6.4
- (void)downloadMediaMessage:(RCMessage *)message
progressBlock:(nullable void (^)(int progress))progressBlock
successBlock:(nullable void (^)(NSString *mediaPath))successBlock
errorBlock:(nullable void (^)(RCErrorCode errorCode))errorBlock
cancelBlock:(nullable void (^)(void))cancelBlock;
参数说明
参数 | 类型 | 说 明 |
---|---|---|
message | RCMessage | 消息对象。 |
progressBlock | Block | 当前的下载进度的回调,返回 int 类型的下载进度,范围 [0, 100]。 |
successBlock | Block | 下载消息成功的回调,返回 NSString 类型的本地路径,同时消息内容体中的 localPath 会被更新为返回的 mediaPath 。 |
errorBlock | Block | 下载消息失败的回调,返回错误码 RCErrorCode。 |
cancelBlock | Block | 取消下载的回调。 |
示例代码
(SDK 版本 ≧ 5.6.6)下载消息中的媒体文件请传入 RCMessage 对象:
Objective C
[[RCCoreClient sharedCoreClient] downloadMediaMessage:message
progressBlock:^(int progress) {
// Update UI with download progress
}
successBlock:^(NSString *mediaPath) {
// Handle successful download
}
errorBlock:^(RCErrorCode errorCode) {
// Handle download error
}
cancelBlock:^{
// Handle download cancellation
}];
(SDK 版本 < 5.6.6)下载消息中的媒体文件请传入 RCMessage 对象中的 messageId 属性的值:
Objective C
[[RCCoreClient sharedCoreClient] downloadMediaMessage:messageId
progress:^(int progress) { }
success:^(NSString *mediaPath) { }
error:^(RCErrorCode errorCode) { }
cancel:^{ }];