aritroper
aritroper

Reputation: 1709

Sharing an AVPlayerAsset with UIActivityViewController

I'd like to share an Audio file that I have loaded into a AVPlayerAsset. I was wondering if this is possible, or what the correct way of doing this would look like. Here is what my code looks like:

func shareTrack(track: Track) {
  guard let file = track.playerItem else { return } // This is the AVPlayerAsset
  let activityController = UIActivityViewController(activityItems: [file], applicationActivities: nil)
  activityController.completionWithItemsHandler = { (nil, completed, _, error ) in
    if completed {
      print("Success")
    } else {
      print("Canceled")
    }
  }
  DispatchQueue.main.async{
    self.present(activityController, animated: true)
  }
}

Upvotes: 0

Views: 128

Answers (1)

matt
matt

Reputation: 535305

You are using the word "file" but the asset is not a file. It is an asset. Other programs aren't going to know anything about that. If you want to share something, share a file URL.

Upvotes: 1

Related Questions