swift - 使用 Quickblox SDK 2.17 将视频作为附件发送

标签 swift video attachment quickblox

我已经尝试过各种链接中的代码,但不知怎的,似乎没有任何东西适用于最新的 SDK。 我正在尝试使用以下代码:

let message = QBChatMessage()
message.senderID = (self.senderID)
message.dialogID = self.chatDialogModel.id
message.dateSent = Date()
message.readIDs = [NSNumber.init(value: (self.senderID))]
message.deliveredIDs = [NSNumber.init(value: (self.senderID))]

let aURL = Bundle.main.url(forResource: "testVideo", withExtension:"mp4")
let aData = try! Data(contentsOf: aURL!)

QBRequest.tUploadFile(aData, fileName: "Attachment Video", 
                     contentType:"video/mp4", 
                     isPublic: true, successBlock: { (qbResponse, qbBlob) in

   let attachment : QBChatAttachment = QBChatAttachment()
    attachment.type = "video"
    attachment.id = qbBlob.uid
    attachment.url = qbBlob.publicUrl()
    message.attachments = [attachment]
    message.text = "Attachment video"

    self.chatDataSource.add(message)


ServicesManager.instance().chatService.sendAttachmentMessage(message, to: (self.chatDialogModel)!, with: attachment, completion: { [weak self] (error) -> Void in


  self?.attachmentCellsMap.removeObject(forKey: message.id as AnyObject?)
  guard error != nil else { return }
  self?.chatDataSource.delete(message)

 })

}, statusBlock: nil) { (error) in

}

最佳答案

我想出了一个解决方案:

首先编写从照片库获取本地视频文件URL的代码。获得 url 后,调用此函数。

func sendVideoAsAttachment(_ url : URL){

    let message = QBChatMessage()
    message.senderID = (self.senderID)
    message.dialogID = self.chatDialogModel.id
    message.dateSent = Date()

    let attachment = QBChatAttachment.videoAttachment(withFileURL: url)
    self.chatDataSource.add(message)

    ServicesManager.instance().chatService.sendAttachmentMessage(message, to: self.chatDialogModel, with: attachment, completion: { (error) in

        self.attachmentCellsMap.removeObject(forKey: message.id as AnyObject?)
        guard error != nil else { return }
        self.chatDataSource.delete(message)
    })
}

这会将视频作为附件发送。

关于swift - 使用 Quickblox SDK 2.17 将视频作为附件发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51497372/

相关文章:

swift - 日期未获取手机 Swift 4 的当前时间

ios - UISearchController - 警告尝试加载 View Controller 的 View

python - FFMPEG 读取输入 h264 文件的 fps 错误,导致输出文件的持续时间错误

internet-explorer - HTML5 : Video file not found

email - Jenkins 附件-语法是什么?

attachment - 如何通过对话流(API.AI)获取用户从 Facebook Messenger 机器人发送的图像/附件?

ios - 如何检查核心数据中是否存在相关实体?

Swift:使用 subview 后 ScrollView 不起作用

linux - 在 Linux 上,一个进程可以呈现另一个进程的 GUI 吗?

用于搜索帖子附件的 Wordpress 插件(通常是文本文件,如 doc 或 Pdf)