web-dev-qa-db-ja.com

uiactivityViewcontrollerを使用してビデオを共有する

アプリケーションを開発していて、uiactivityviewcontrollerを使用してドキュメントディレクトリに保存された画像ビデオやその他のファイルを共有したいと考えています。画像とファイルの共有は正しく機能しています。画像共有のコード

var textToShare : Any!
textToShare = UIImage(data:data)//data of an image

ドキュメントディレクトリに保存されている他のファイルのコード。

var textToShare : Any!
textToShare = url//url of file saved into document directory

しかし、私はビデオを共有する方法がわかりません。この後、私は次のコードを使用してactivityviewcontrollerを使用しています。

let activityViewController = UIActivityViewController(activityItems: [textToShare], applicationActivities: nil)
    activityViewController.popoverPresentationController?.sourceView = self.view // so that iPads won't crash

    // exclude some activity types from the list (optional)
    activityViewController.excludedActivityTypes = [ UIActivityType.airDrop, UIActivityType.postToFacebook ]

    // present the view controller
    self.present(activityViewController, animated: true, completion: nil)
10
Aqeel Ahmad

最初にビデオファイルのパスを取得します

 let videoURL = NSURL(fileURLWithPath:localVideoPath)

そして、このパスを以下のようにUIActivityViewControllerに渡します

let activityItems = [videoURL, "Check this out!" ]
let activityController = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)

activityController.popoverPresentationController?.sourceView = self.view
activityController.popoverPresentationController?.sourceRect = self.view.frame

self.presentViewController(activityController, animated: true, completion: nil)

Swift 4のコードを更新

    let localVideoPath = "your_video_path_here..."
    let videoURL = URL(fileURLWithPath: localVideoPath)

    let activityItems: [Any] = [videoURL, "Check this out!"]
    let activityController = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)

    activityController.popoverPresentationController?.sourceView = view
    activityController.popoverPresentationController?.sourceRect = view.frame

    self.present(activityController, animated: true, completion: nil)
13
Abdul Yasin

ローカルドキュメントディレクトリパスからビデオを共有するには

func shareVideo(videoPath : String){
        let localVideoPath = videoPath
        let videoURL = URL(fileURLWithPath: localVideoPath)

        let activityItems: [AnyObject] = [videoURL as AnyObject]
        let activityController = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)

        activityController.popoverPresentationController?.sourceView = view
        activityController.popoverPresentationController?.sourceRect = view.frame

        self.present(activityController, animated: true, completion: nil)
    }
2
Hardik Thakkar
func shareUsingActivity() {

    let yourPath = ""
    let yourUrl = URL(fileURLWithPath: yourPath)
    let activity: [Any] = [yourUrl, "Your custom message here…"]
    let actController = UIActivityViewController(activity: activity, applicationActivities: nil)
    actController.popoverPresentationController?.sourceView = view
    actController.popoverPresentationController?.sourceRect = view.frame
    self.present(actController, animated: true, completion: nil)
}
0
Ved Rauniyar