iMessage アプリで、リモート ビデオ ファイルを送信しようとしています。ドキュメントから、オブジェクトのプロパティ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