【问题标题】:Send Video as Attachment with Quickblox SDK 2.17使用 Quickblox SDK 2.17 将视频作为附件发送
【发布时间】:2018-07-24 11:24:50
【问题描述】:

我尝试了来自各种链接的代码,但不知何故,最新的 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

}

【问题讨论】:

    标签: swift video attachment quickblox


    【解决方案1】:

    我想出了一个解决办法:

    首先编写从图片库中获取本地视频文件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)
        })
    }
    

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

    【讨论】:

      猜你喜欢
      • 2017-10-20
      • 2015-10-29
      • 2014-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多