3

iMessage アプリで、リモート ビデオ ファイルを送信しようとしています。ドキュメントから、オブジェクトのプロパティmediaFileURLMSMessageTemplateLayoutURL を設定する適切なポイントであることがわかります

メディア ファイル 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