在我的iMessage应用程序中,我尝试发送远程视频文件。从文档中我可以读到mediaFileURL
对象中的属性MSMessageTemplateLayout
应该是设置URL的正确位置
媒体文件网址必须是文件网址
这就是我创建MSMessage
实例
let message = MSMessage()
message.shouldExpire = false
let layout = MSMessageTemplateLayout()
layout.mediaFileURL = self.videoURL
message.layout = layout
但是,当我调用insertMessage
方法时,我无法获得正确的消息实体(不包含视频)
conversation.insertMessage(message, completionHandler: nil)
我在某处(不是官方来源)读到网址应该是本地网址,是真的吗?
提前感谢您提供任何帮助
添加
我甚至尝试下载内容并设置本地网址,但我的行为相同
这是我尝试的快速实施
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
的{{1}}方法代替。