Как отправить аудиофайл с изображением и надписью в приложении iMessage для iOS 10?

Я создаю приложение iMessage и пытаюсь отправить аудио или видео файл другому пользователю.

Видеофайл работает и выглядит отлично, но он не работает, как ожидалось, с аудиофайлом.

Мой текущий код:

let destinationFilename = mp3FileNames[i]
let destinationURL =  docDirectoryURL.appendingPathComponent(destinationFilename)

if let conversation = activeConversation {

    let layout = MSMessageTemplateLayout()
    layout.image = UIImage.init(named: "audio-x-generic-icon")
    layout.mediaFileURL = destinationURL
    layout.caption = selectedSongObj.name

    let message = MSMessage()
    message.layout = layout
    message.url = URL(string: "emptyURL")

    conversation.insert(message, completionHandler: nil)


    return
}

Похоже, что layout.mediaFileURL = destinationURL не добавляет никакого файла в сообщение.

И когда я пытаюсь отправить файл с указанным выше кодом. Это выглядит как показано ниже:

введите описание изображения здесь

Он выглядит отлично, но нет звука для воспроизведения, но если я пробую так:

let destinationFilename = mp3FileNames[i]
let destinationURL =  docDirectoryURL.appendingPathComponent(destinationFilename)

if let conversation = activeConversation {

    conversation.insertAttachment(destinationURL!, withAlternateFilename: nil, completionHandler: nil)
    return
}

И результат с приведенным выше кодом:

введите описание изображения здесь

Я могу воспроизводить аудио для этого сообщения, потому что оно есть. Но проблема с этим сообщением заключается в том, что я не могу прикреплять к нему какое-либо изображение или подпись.

Как подключить изображение и аудиофайл к одному сообщению.

И если возможно, вместо изображения можно добавить GIF?

Любая помощь будет очень признательна, спасибо.

Ответ 1

Не нужно использовать GIF, iMessage расширения поддерживает также форматы PNG и JPEG. Рекомендуемый размер изображения составляет 300x300 точек при шкале @3x.

Если свойство MSMessageTemplateLayout image имеет значение, отличное от нуля, тогда mediaFileURL свойство игнорируется. Таким образом, вы не можете одновременно отправить изображение и аудиофайл. Документы