如何在Swift中使用QuickBlox上传和下载视频

问题描述 投票:1回答:1

我正在将图像和视频上传到QuickBlox。我的上传成功,但是当我下载以下场景时出现:1)如果是图片,我可以下载图片并显示(此中没有问题)2)我的问题是关于以下几点的视频a)我可以成功上传视频b)我将如何识别来自服务器的视频扩展名?我需要用于从QuickBlox上传和下载视频的示例代码。就像我上载.mov文件一样,那么文件类型应该是什么,在.mp4情况下应该是什么,依此类推。当我下载文件时,我将如何知道文件的正确扩展名,然后如何从服务器获取正确的文件并将其保存。

quickblox
1个回答
0
投票

[上传视频时,在附件中将类型设置为“视频”,并设置相应的内容类型,例如“视频/ 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

})

}
© www.soinside.com 2019 - 2024. All rights reserved.