我正在将图像和视频上传到QuickBlox。我的上传成功,但是当我下载以下场景时出现:1)如果是图片,我可以下载图片并显示(此中没有问题)2)我的问题是关于以下几点的视频a)我可以成功上传视频b)我将如何识别来自服务器的视频扩展名?我需要用于从QuickBlox上传和下载视频的示例代码。就像我上载.mov文件一样,那么文件类型应该是什么,在.mp4情况下应该是什么,依此类推。当我下载文件时,我将如何知道文件的正确扩展名,然后如何从服务器获取正确的文件并将其保存。
[上传视频时,在附件中将类型设置为“视频”,并设置相应的内容类型,例如“视频/ mp4”:
QBRequest.uploadFile(with: localVideoUrl, fileName: nameVideo, contentType: "video/mp4", isPublic: true,
successBlock: { (response: QBResponse, uploadedBlob: QBCBlob) -> Void in
let attachment = QBChatAttachment()
attachment.id = uploadedBlob.uid
attachment.name = uploadedBlob.name
attachment.type = "video"
attachment["size"] = "\(uploadedBlob.size)"
// send message with attachment
}, statusBlock: { (request : QBRequest?, status : QBRequestStatus?) -> Void in
let progress = CGFloat(Float(status.percentOfCompletion))
// show progress
}
}) { (response : QBResponse) -> Void in
//error handler
}
[当您收到带有附件且附件类型为“视频”的消息时,请参考此示例:
let attachment = message.attachments?.first
if attachment.type == "video" {
QBRequest.downloadFile(withUID: attachment.id, successBlock: { (response: QBResponse, fileData: Data) in
let fileData = fileData as NSData
let fileName = ID + "_" + attachment.name
let filePath = NSTemporaryDirectory() + fileName
let fileURL = URL(fileURLWithPath: filePath)
if fileData.write(to: fileURL, atomically: true) == true {
//do what you need with the video - cache, save, play, etc.
} else {
print("failure write")
}
}, statusBlock: { (request: QBRequest, status: QBRequestStatus?) in
let progress = CGFloat(status.percentOfCompletion)
//show progress
}, errorBlock: { (response: QBResponse) in
//error handler
})
}