Quickblox iOS Video Attachments
I have integrated Quickblox iOS (Objc) Library into my app for chat module.
Images as an attachment under QBRequest TUploadFile method is possible. But I can't find any working solution to make a video attachment file under the same request.
I have confirmed by reading a document from Quickblog which says - Video attachment possible under Quickblox chat SDK.
Do anyone has any working solution to make video file attachment with this?
Below code is written to upload a video under QBRequest TUploadFile.
Thanks in advance!
- (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);
}
}];
}