我正在尝试使用以下代码从 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/