3

在我的 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

4

0 回答 0