【问题标题】:How to send video file as attachment in quickblox iOS?如何在 quickblox iOS 中将视频文件作为附件发送?
【发布时间】:2017-10-20 09:09:19
【问题描述】:

Quickblox iOS 视频附件

我已将 Quickblox iOS (Objc) 库集成到我的聊天模块应用程序中。

图像作为 QBRequest TUploadFile 方法下的附件是可能的。但我找不到任何可行的解决方案来根据同一请求制作视频附件。

我已通过阅读 Quickblog 的文档确认 - Quickblox 聊天 SDK 下可能有视频附件。

有人有任何可行的解决方案来制作视频文件附件吗?

以下代码用于在QBRequest TUploadFile下上传视频。

提前致谢!

- (void)uploadAndSendAttachmentMessage:(QBChatMessage*)message toDialog:(QBChatDialog*)dialog withChatService:(QMChatService*)chatService withAttachedVideo:(NSData*)videoData completion:(QBChatCompletionBlock)completion {
    [self changeMessageAttachmentStatus:QMMessageAttachmentStatusLoading forMessage:message];

    [QBRequest TUploadFile:videoData fileName:@"attachment video" contentType:@"video/mp4" isPublic:YES successBlock:^(QBResponse* response, QBCBlob* blob) {
        QBChatAttachment* attachment = [QBChatAttachment new];
        attachment.type = @"video";
        attachment.ID = blob.UID;
        attachment.url = [blob publicUrl];

        message.attachments = @[attachment];
        message.text = @"Attachment video";

        [self saveData:videoData chatAttachment:attachment error:nil];
        [self.attachmentsStorage setObject:videoData forKey:attachment.ID];

        [self changeMessageAttachmentStatus:QMMessageAttachmentStatusLoaded forMessage:message];

        [chatService sendMessage:message type:QMMessageTypeText toDialog:dialog saveToHistory:YES saveToStorage:YES completion:completion];
    } statusBlock:^(QBRequest* request, QBRequestStatus* status) {
        if ([self.delegate respondsToSelector:@selector(chatAttachmentService:didChangeUploadingProgress:forMessage:)]) {
            [self.delegate chatAttachmentService:self didChangeUploadingProgress:status.percentOfCompletion forMessage:message];
        }
    } errorBlock:^(QBResponse* response) {
        [self changeMessageAttachmentStatus:QMMessageAttachmentStatusNotLoaded forMessage:message];

        if (completion) {
            completion(response.error.error);
        }
    }];
}

【问题讨论】:

    标签: ios objective-c video attachment quickblox


    【解决方案1】:

    您可以使用以下方法发送视频。

    - (void)sendAttachmentMessage:(QBChatMessage *)attachmentMessage
                         toDialog:(QBChatDialog *)dialog
                   withAttachment:(QBChatAttachment *)attachment
                       completion:(nullable QBChatCompletionBlock)completion
    

    完整的代码如下所示

    - (void)didPickAttachmentVideo:(NSURL *)video {
    
        QBChatMessage *message = [QBChatMessage new];
        message.senderID = self.senderID;
        message.dialogID = self.dialog.ID;
        message.dateSent = [NSDate date];
    
    
    
        __weak typeof(self)weakSelf = self;
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            __typeof(weakSelf)strongSelf = weakSelf;
    
            QBChatAttachment *attachment = [QBChatAttachment videoAttachmentWithFileURL:video];
    
            // Sending attachment to the dialog.
    
            dispatch_async(dispatch_get_main_queue(), ^{
    
                [self.chatDataSource addMessage:message];
    
                [[ServicesManager instance].chatService sendAttachmentMessage:message
                                                                     toDialog:strongSelf.dialog
                                                               withAttachment:attachment
                                                                   completion:^(NSError *error) {
    
                                                                       [strongSelf.attachmentCells removeObjectForKey:message.ID];
                                                                       NSString * myurl = attachment.remoteURL.absoluteString;
                                                                       if (error != nil) {
                                                                           [strongSelf.chatDataSource deleteMessage:message];
                                                                        //Show error alert
    
                                                                       }
                                                                   }];
            });
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-29
      • 1970-01-01
      • 1970-01-01
      • 2013-01-03
      • 1970-01-01
      • 2021-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多