【问题标题】:How do I get NSData from a video url?如何从视频网址获取 NSData?
【发布时间】:2016-12-30 16:59:31
【问题描述】:

我正在尝试从 UIImagePicker 获取视频并将其作为数据通过我的 restkit API 发送。

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
        let videoURL = info["UIImagePickerControllerReferenceURL"] as? NSURL

var movieData: NSData?
        do {
            movieData = try NSData(contentsOfURL: videoPath, options: .DataReadingMappedIfSafe)
        } catch {
            print(error)
            movieData = nil
            return
        }

// Multipart Form Request for RestKit POST goes here

        imagePickerController.dismissViewControllerAnimated(true, completion: nil)
    }

得到以下错误:

Error Domain=NSCocoaErrorDomain Code=256 "无法打开文件“asset.MOV”。" UserInfo={NSURL=assets-library://asset/asset.MOV?id=B906AB1B-F311-47BA-8FE9-EE7AADDB7796&ext=MOV}

【问题讨论】:

标签: ios swift video nsdata


【解决方案1】:
    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
            let videoURL = info["UIImagePickerControllerMediaURL"] as? NSURL
             do {
                let video = try NSData(contentsOfURL: videoPath, options: .DataReadingMappedIfSafe)
             } catch {
                print(error)
                return
             }
            imagePickerController.dismissViewControllerAnimated(true, completion: nil)
    }

【讨论】:

    【解决方案2】:

    这是我如何处理来自设备的视频:

    @IBAction func addVideoFromDevice(_ sender: AnyObject) {
        let mediaUI = UIImagePickerController()
        mediaUI.sourceType = .savedPhotosAlbum
        mediaUI.mediaTypes = [kUTTypeMovie as NSString as String]
        mediaUI.allowsEditing = true
        mediaUI.delegate = self
        present(mediaUI, animated: true, completion: nil)
    }
    
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
        let mediaType = info[UIImagePickerControllerMediaType] as! NSString
        if mediaType == kUTTypeMovie {
            let videoURL = info[UIImagePickerControllerMediaURL] as! NSURL
            let avAsset = AVAsset(url: videoURL as URL) //>selected video
        } else{
            print("error @ mediaType-didFinishPickingMediaWithInfo")
        }
        dismiss(animated: true, completion: nil)
    }
    

    希望对你有帮助:)

    【讨论】:

      猜你喜欢
      • 2016-01-28
      • 2023-04-03
      • 1970-01-01
      • 2013-01-11
      • 1970-01-01
      • 2017-10-09
      • 2015-07-25
      • 2023-03-28
      • 1970-01-01
      相关资源
      最近更新 更多