logo
当前页

取消媒体消息发送


功能简介

ZIM SDK 支持取消用户正在发送包含本地媒体文件的消息,取消成功后消息状态变更为“发送失败”。

注意
  • 2.22.0 版本开始支持。
  • 仅支持取消发送的消息类型为包含本地媒体文件的 Multiple(10)、Image(11)、File(12)、Audio(13)、Video(14) 类型。

取消正在发送的媒体消息

当用户发送包含本地媒体文件的消息时,由于文件上传需要一定的耗时,在这段时间内调用 cancelSendingMessage 取消发送此条消息终止文件上传。

注意

当包含普通文本和媒体文件的组合消息被取消时,整个消息(包含普通文本)都会被取消发送。


void onMessageSentStatusChanged(zim::ZIM *zim, const std::vector<ZIMMessageSentStatusChangeInfo> &messageSentStatusChangeInfoList) {
    // 消息发送状态变更
}

// 用户 A 发送一条消息,以单聊文件消息为例

zim::ZIMMediaMessage *message = nullptr;
auto fileMessage = zim::ZIMFileMessage();
// 需填入 UTF-8 格式的本地路径
fileMessage.fileLocalPath = "D:\\file\\files.zip";
// 如果此处填入了网络 URL,SDK 则会透传该路径,而不会经过 ZIM 后台服务处理。同时填入网络 URL 与本地路径,SDK 会优先认为用户想要使用网络 URL
fileMessage.fileDownloadUrl = "";

zim::ZIMMessageSendConfig sendConfig;
sendConfig.priority = zim::ZIM_MESSAGE_PRIORITY_MEDIUM;

message = &fileMessage;

auto notification = std::make_shared<zim::ZIMMessageSendNotification>(
            [=](const std::shared_ptr<zim::ZIMMessage> &message) { 
                // 开发者可监听此回调,执行消息发送前的逻辑
            },
            [=](const std::shared_ptr<zim::ZIMMediaMessage> &message,
                unsigned long long currentFileSize,
                unsigned long long totalFileSize) { 
                // 处于文件上传中时,取消发送
                zim::ZIMSendingMessageCancelConfig cancelConfig;
                zim_->cancelSendingMessage(message, cancelConfig, [=](const zim::ZIMError &errorInfo) {

                });
            });

zim_->sendMessage(message, receiver_id, zim::ZIMConversationType::ZIM_CONVERSATION_TYPE_PEER, sendConfig, notification,
    [=](const std::shared_ptr<zim::ZIMMessage> &message, const zim::ZIMError &errorInfo) {

    });

Previous

群定向消息

Next

获取会话列表

当前页

返回到顶部