【问题标题】:Open recorded video in UIImagePickerController在 UIImagePickerController 中打开录制的视频
【发布时间】:2015-12-11 14:49:04
【问题描述】:

我正在创建一个自定义叠加层以与 UIImagePickerController 一起使用,因为我想修改作为默认控件提供的文本和图像。这是根据需要显示的部分。

我想让用户流尽可能接近默认值。我想让视频在被捕获后可以播放,但我不确定如何在 UIImagePickerController 中打开它。

我在 videoData 变量中有视频数据,但不确定如何继续。我是将其保存到类级别变量并实例化一个新的 imagePickerController 还是需要转到一个全新的视图控制器并从头开始构建 UI。原因是用户可能需要重新录制视频。

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]){

    // Save video to device
    let videoURL = info[UIImagePickerControllerMediaURL] as! NSURL
    let videoData = NSData(contentsOfURL: videoURL)

    self.dismissViewControllerAnimated(true, completion: nil)
}

非常感谢任何帮助。

【问题讨论】:

    标签: ios swift uiimagepickercontroller


    【解决方案1】:

    您可以使用AVPlayer播放视频;

    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]){
    
        // Save video to device
        let videoURL = info[UIImagePickerControllerMediaURL] as! NSURL
    
        // no need NSData
        //let videoData = NSData(contentsOfURL: videoURL)
    
        self.dismissViewControllerAnimated(true, completion: nil)
    
        let videoPlayer = AVPlayer(URL: videoURL)
        videoPlayer.actionAtItemEnd = .None
        let videoLayer = AVPlayerLayer(player: videoPlayer)
        videoLayer.frame = CGRectMake(0, 0, 200, 200)
        self.view.layer.addSublayer(videoLayer)
        videoPlayer.play()
    }
    

    【讨论】:

    • 感谢您的回答。我希望将用户保留在 UIImagePickerController 中,以防他们想重新录制视频。
    • 我将此作为答案的基础,并结合 UIImagePicker 覆盖以获得一致的 UI。非常感谢我的出发点。
    猜你喜欢
    • 2012-05-22
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    相关资源
    最近更新 更多