在我的 iMessage 应用程序中,我正在尝试发送远程视频文件。从文档中我可以读到 object 中的属性mediaFileURL
应该MSMessageTemplateLayout
是设置 URL 的正确位置
媒体文件 URL 必须是文件 URL
这就是我创建MSMessage
实例的方式
let message = MSMessage()
message.shouldExpire = false
let layout = MSMessageTemplateLayout()
layout.mediaFileURL = self.videoURL
message.layout = layout
但是,当我调用该insertMessage
方法时,我无法获得正确的消息实体(不包括视频)
conversation.insertMessage(message, completionHandler: nil)
我在某处(不是官方来源)读到该 URL 应该是本地 URL,这是真的吗?
提前感谢您的帮助
添加
我什至尝试下载内容并设置本地 URL,但我的行为相同
这是我尝试过的快速实现
let fileURL = storeDirectory.URLByAppendingPathComponent("video-file.mov")!
_ = try? NSFileManager.defaultManager().removeItemAtPath(fileURL.path!)
Alamofire.download(.GET, self.videoURL) { _, _ -> NSURL in
return fileURL
}.response { _, _, _, error in
print("Error: \(error)")
layout.mediaFileURL = fileURL
print("File URL: \(fileURL)")
message.layout = layout
completion(.success(message))
}
当然,错误是nil
并且文件路径是引用有效视频文件的有效本地路径(我可以通过该路径重现它)
已解决:
对于遇到此问题的任何人,请确保首先下载媒体文件。文档中没有提到它,但它是强制性的。然后,即使在文档中提到了音频文件,普通的 mp3 文件也根本不起作用。仍然不知道有关音频文件的规范是什么。
在那之后,确保你的结果是好的:发送媒体文件MSMessageLayout
意味着它是静音的,当它被点击时你必须处理细节视图。考虑使用代替的insertAttachment
方法。MSConversation