Swift 4如何在Whatsapp中分享音频文件

3
我想通过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()

感谢您的选择。

{btsdaf} - Leo Dabus
{btsdaf} - melik ozbay
{btsdaf} - Leo Dabus
1个回答

2

在你的paylas函数中,你试图分享一个String,但实际上应该是一个URL。这个问题也在这里得到了解答:如何在使用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在评论中提到的那样,您需要先下载音频并创建文件。请参考此SO问题下载mp3文件。同时,您需要等待音频下载完成后才能分享文件。确保在UI / 主线程上执行此操作。


{btsdaf} - melik ozbay
{btsdaf} - Leo Dabus
{btsdaf} - Yannick
{btsdaf} - Leo Dabus
{btsdaf} - Leo Dabus
{btsdaf} - Yannick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接