ios - 使用 Swift 从 iOS 中的 PhotoLibrary 选择视频

标签 ios swift uiimagepickercontrollermediatype mobilecoreservices

我正在尝试使用以下代码从 PhotoLibrary 中选择视频

imageController.mediaTypes = [kUTTypeMovie: NSString]

选择视频后,压缩时出现数组越界问题。

我在网上搜索并找到了以下行。我无法将它转换成 Swift 版本 ( link ) imageController.mediaTypes = [[NSArray alloc] initWithObjects:(NSString *)kUTTypeMovie, nil]

请让我们知道以上行的 Swift 版本。如果有人能提供 Swift 版本的 this 就非常有用了.

问题2:

我想在应用程序中显示选定的视频,并且需要在点击时播放。我们可以在没有外部插件和使用内置库的情况下做到这一点吗?

最佳答案

基于 Swift 2.2

假设你有一个 imagePickerController,当你想同时选择图片和视频时:

let imagePickerController = UIImagePickerController()
var videoURL: NSURL?    

@IBAction func selectImageFromPhotoLibrary(sender: UIBarButtonItem) {
  imagePickerController.sourceType = .PhotoLibrary
  imagePickerController.delegate = self
  imagePickerController.mediaTypes = ["public.image", "public.movie"]

  presentViewController(imagePickerController, animated: true, completion: nil)    
}

然后在视频被选中后,打印出它的NSURL。

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
  videoURL = info["UIImagePickerControllerReferenceURL"] as? NSURL
  print(videoURL)
  imagePickerController.dismissViewControllerAnimated(true, completion: nil)
}

对于问题2:

是的,你可以通过 AVPlayer 来实现,你需要导入 AVKit 和 AVFoundation,你的代码可能如下所示:

if let videoURL = videoURL{
  let player = AVPlayer(URL: videoURL)

  let playerViewController = AVPlayerViewController()
  playerViewController.player = player

  presentViewController(playerViewController, animated: true) {
    playerViewController.player!.play()
  }
}

我做了一个demo在这里你可以引用,也许不是你想要的100%。

关于ios - 使用 Swift 从 iOS 中的 PhotoLibrary 选择视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30715212/

相关文章:

ios - Parse 中的查询类(swift)

c# - 如何通过 xamarin.forms 使用 Visual Studio for Mac 中的 iOS 模拟器/Android 模拟器

ios - 为自己的实体提供一对多的快速核心数据关系

ios - 以编程方式创建约束效果不佳

ios - 控制两个不同的collectionview

ios - 当用户在我的应用程序中按下联系号码时如何获取电话号码并在电话拨号盘中显示该号码

iOS Swift UIImagePickerController 仅显示持续时间低于特定长度的视频

ios - UItabbar 项目不显示 Storyboard 引用

ios - image_picker : Cancel button not visible in gallery, 如果首先访问相机