Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何从url将视频保存到目录中?_Ios_Swift_Apple Tv - Fatal编程技术网

Ios 如何从url将视频保存到目录中?

Ios 如何从url将视频保存到目录中?,ios,swift,apple-tv,Ios,Swift,Apple Tv,我想将视频从url保存到目录,并在应用程序中的gallery中显示 下面是我的代码: import UIKit import AVFoundation import AVKit class SettingsViewController: UIViewController { @IBOutlet var urlLabel: UITextField! let PlayerController = AVPlayerViewController() var Player:AV

我想将视频从url保存到目录,并在应用程序中的gallery中显示

下面是我的代码:

import UIKit
import AVFoundation
import AVKit

class SettingsViewController: UIViewController {

    @IBOutlet var urlLabel: UITextField!
    let PlayerController = AVPlayerViewController()
    var Player:AVPlayer?

    //
    //    override func viewDidLoad() {
    //        super.viewDidLoad()
    //
    //    }
    //    override func didReceiveMemoryWarning() {
    //        super.didReceiveMemoryWarning()
    //        // Dispose of any resources that can be recreated.
    //    }
    //

    @IBAction func downloadButton(sender: AnyObject) {

        let urlLabel1 = urlLabel.text
        let videoURL:NSURL? = NSURL(string: urlLabel1!)

        if let url = videoURL {
            self.Player = AVPlayer(URL: url)
            self.PlayerController.player = self.Player
            self.presentViewController(self.PlayerController, animated: true) { self.PlayerController.player?.play()}
            print("work")
        }
        else {
            var refreshAlert = UIAlertController(title: "Error", message: "Please correct your URL", preferredStyle: UIAlertControllerStyle.Alert)
            refreshAlert.addAction(UIAlertAction(title: "Ok", style: .Default, handler: { (action: UIAlertAction!) in
                print("Handle Ok logic here")
            }))
            presentViewController(refreshAlert, animated: true, completion: nil)

            print("not work")
        }
    }
}

有什么想法吗?

假设URL直接指向视频,您只需创建一个
NSURLSessionDownloadTask
即可将视频数据下载到文件系统,下载完成后,通过为本地视频创建一个AVPlayerItem来打开视频。

假设URL直接指向视频,您只需创建一个
NSURLSessionDownloadTask
即可将视频数据下载到文件系统中,下载完成后,通过为本地视频创建一个AVPlayerItem打开视频

//Save Video to Home Directory 
func saveVideoFromURL(videoURL: NSURL, name: String) {
    let homeDirectory = NSURL.fileURLWithPath(NSHomeDirectory(), isDirectory: true)
    let fileURL = homeDirectory.URLByAppendingPathComponent(name).URLByAppendingPathComponent("mov")

    let urlData = NSData(contentsOfURL: videoURL)
    urlData?.writeToURL(fileURL, atomically: true)
}

//Extract video from home directory
func getVideoFromDirectoryWithName(name: String) -> NSData {
    let homeDirectory = NSURL.fileURLWithPath(NSHomeDirectory(), isDirectory: true)
    let fileURL = homeDirectory.URLByAppendingPathComponent(name).URLByAppendingPathComponent("mov")

    let fileData = NSData(contentsOfURL: fileURL)!
    return fileData
}