Swift 4 音频与 Whatsapp 共享
Posted
技术标签:
【中文标题】Swift 4 音频与 Whatsapp 共享【英文标题】:Swift 4 Audio share with Whatsapp 【发布时间】:2017-10-24 12:36:42 【问题描述】:我想通过 WhatsApp 分享音频 (.mp3) 文件。我使用了 UIActivityViewController 但它只是共享 mp3 文件链接而不是文件。如何将文件分享到 WhatsApp? 有我的代码:
@IBAction func playTusu(_ sender: Any)
let url = URL(string: "https://freesound.org/data/previews/405/405511_2731495-lq.mp3")!
let playerItem = CachingPlayerItem(url: url)
playerItem.delegate = self
player = AVPlayer(playerItem: playerItem)
player.automaticallyWaitsToMinimizeStalling = false
player.play()
@IBAction func paylas(_ sender: Any)
let url: [Any] = ["https://freesound.org/data/previews/405/405511_2731495-lq.mp3"]
let avc = UIActivityViewController(activityItems: url, applicationActivities: nil)
self.present(avc, animated: true)
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
谢谢。
【问题讨论】:
您需要先下载您的 mp3 数据,将其保存在您的应用本地,然后使用 UIDocumentInteractionController 将其分享到 WhatsApp 嗯,如何下载mp3数据? 这里有完整的例子***.com/a/46457518/2303865 【参考方案1】:在您的paylas
函数中,您尝试共享String
,但它实际上应该是URL
。问题也在这里得到解答:How do I share an Audio File in an App using Swift 3?
@IBAction func paylas(_ sender: Any)
let url: [Any] = [audioFileURL]
let avc = UIActivityViewController(activityItems: url, applicationActivities: nil)
self.present(avc, animated: true)
更新
问题说你有一个文件,但你只有音频的 URL。
正如@Leo Dabus 在 cmets 中提到的,您必须先下载音频并创建一个文件。看看这个 SO 问题Download mp3 file。您还必须等到音频下载完毕。然后,您可以共享该文件。确保在 UI / 主线程上执行此操作。
【讨论】:
我试过但同样的问题。它再次发送链接。 您至少应该提及添加到您的答案中的此信息来自何处 直到现在我才看到你的评论。我不是故意用你的评论来回答我的,对不起。 :) 我应该提到你还是你会创建自己的答案? @Yannick 那不是真的我已经删除了我的评论与那个链接 顺便说一句,你需要告诉 OP 在异步下载数据后他需要从主线程共享它以上是关于Swift 4 音频与 Whatsapp 共享的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS Swift 中与 UIActivityViewController 共享的 WhatsApp 中设置不同的参数?
通过 UIActivityViewController 与 WhatsApp 共享时按钮中的文本颜色错误