如何在 iOS 10 的 iMessage 应用程序中发送带有图像和标题的音频文件?

Posted

技术标签:

【中文标题】如何在 iOS 10 的 iMessage 应用程序中发送带有图像和标题的音频文件?【英文标题】:How to send audio file with image and caption in iMessage app for iOS 10? 【发布时间】:2016-12-28 15:52:29 【问题描述】:

我正在创建 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】:

不必使用GIFiMessage 扩展也支持PNGJPEG 图像格式。推荐的图像尺寸为 300x300 点 @3x 比例。

如果MSMessageTemplateLayoutimage 属性具有非零值,则 mediaFileURL 属性被忽略。因此,您不能同时发送图像和音频文件。 Docs

【讨论】:

如果我不能,那么音频看起来会很丑。 你可以希望这是一个暂时的限制。由于 ios 10 仍处于测试阶段,因此情况可能会发生变化。 如果您认为能力不足,可以提交错误报告/功能请求。 能否请您参考 iMessage 应用名称“chatterbird”?他做同样的事情。 @SohilR.Memon 我看过这个 Chatterbird 应用程序并且非常沮丧,因为它看起来好像他们弄明白了。然而!如果您仔细点击“播放”按钮之外的绿色消息,它将全屏打开,您将在顶部看到系统生成的文件名,它实际上是一个 .mp4 文件。所以我的猜测是,他们也无法让它工作,他们的解决方案/黑客是创建一个视频文件只是为了发送一个 m4a 音频文件。视频部分仅显示第一帧的播放按钮和其余的空白绿屏。

以上是关于如何在 iOS 10 的 iMessage 应用程序中发送带有图像和标题的音频文件?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 10 iMessage 贴纸应用中 MSSticker Peels 的回调

如何在 iMessage iOS 11(或 iOS10、Macos Sierra)中禁用 URL 链接预览

Admob 不会为 iOS 10 iMessage 应用扩展加载广告

iOS 10 创建iMessage App

[iOS] 在 ios10 中使用 imessage

如何像在 iOS 中为 iMessage 一样为 Android 创建贴纸包?