首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存视频;使用UIImagePickerController;IOS 8 Swift

保存视频;使用UIImagePickerController;IOS 8 Swift
EN

Stack Overflow用户
提问于 2015-03-25 13:39:15
回答 2查看 8.9K关注 0票数 9

我是新的应用程序开发,所以这可能是一个微不足道的问题,但请帮助!

我正试图使用UIImagePickerController类将视频保存到相机滚筒中。到目前为止,我已经成功地拉起相机并保存了一张图像。我也能录制视频,但当我按下“使用视频”时,它不会保存到相机卷上。

下面是附加的didFinishPickingMediaWithInfo函数。

代码语言:javascript
复制
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject])
{
    let mediaType = info[UIImagePickerControllerMediaType] as NSString

    self.dismissViewControllerAnimated(true, completion: nil)

    if mediaType.isEqualToString(kUTTypeImage as NSString)
    {
        let image = info[UIImagePickerControllerOriginalImage] as UIImage

        if (newMedia == true)
        {
            UIImageWriteToSavedPhotosAlbum(image, self, "image:didFinishSavingWithError:contextInfo:", nil)
        }

        else if mediaType.isEqualToString(kUTTypeMovie as NSString)
        {
            let videoPath = info[UIImagePickerControllerMediaURL] as NSString

            if(newMedia == true)
            {
                UISaveVideoAtPathToSavedPhotosAlbum(videoPath, self,
                    "image:didFinishSavingWithError:contextInfo:", nil)
            }
        }
    }
}

下面是useVideo例程。

代码语言:javascript
复制
@IBAction func useVideo(sender: AnyObject)
{
    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera)
    {

        let imagePicker = UIImagePickerController()

        imagePicker.delegate = self
        imagePicker.sourceType = UIImagePickerControllerSourceType.Camera
        imagePicker.mediaTypes = [kUTTypeMovie as NSString]
        imagePicker.allowsEditing = false

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

        newMedia = true

    }
}

这是cameraRoll。

代码语言:javascript
复制
@IBAction func useCameraRoll(sender: AnyObject) {
    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.SavedPhotosAlbum){

        let imagePicker = UIImagePickerController()

        imagePicker.delegate = self
        imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
        imagePicker.mediaTypes = [kUTTypeImage as NSString]
        imagePicker.mediaTypes = [kUTTypeMovie as NSString]
        imagePicker.allowsEditing = false

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

        newMedia = false
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-25 14:32:12

如果接近的话你就错配了。

代码语言:javascript
复制
     if mediaType.isEqualToString(kUTTypeImage as NSString)
         {
             let image = info[UIImagePickerControllerOriginalImage] as UIImage

             if (newMedia == true)
             {
                 UIImageWriteToSavedPhotosAlbum(image, self, "image:didFinishSavingWithError:contextInfo:", nil)
             }

} // <-在这里关闭图像添加的if条件}

代码语言:javascript
复制
     else if mediaType.isEqualToString(kUTTypeMovie as NSString)
          {
票数 5
EN

Stack Overflow用户

发布于 2017-07-20 05:10:14

你可以用这个保存视频,希望它能帮上忙-

代码语言:javascript
复制
public func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
{
    let mediaType = info[UIImagePickerControllerMediaType] as! NSString

    if mediaType.isEqual(to: kUTTypeMovie as NSString as String)
    {
        // Is Video
        let url: URL = info[UIImagePickerControllerMediaURL] as! URL

        assetsLibrary.writeVideoAtPath(toSavedPhotosAlbum: url, completionBlock: {
            (nsurl, error) -> Void in
            if let theError = error{
                print("Error saving video = \(theError)")
                self.dismiss(animated: true, completion: nil)
            }
            else {
                print("no errors happened")
            }
        })
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29257337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档