当我使用UIImagePickerController
导入1080p视频时,请问它的大小是多少,它报告的仅为720p。
以下是我打开图像搜索器的方法:
let picker = UIImagePickerController()
picker.sourceType = .PhotoLibrary
picker.videoQuality = .TypeHigh
picker.allowsEditing = false
picker.delegate = self
picker.modalPresentationStyle = .Popover
picker.popoverPresentationController?.sourceView = self.view
picker.popoverPresentationController?.sourceRect = self.findButton.frame
picker.mediaTypes = [kUTTypeMovie as String]
self.navigationController?.presentViewController(picker, animated: true, completion: nil)
然后,当用户选择图像时:
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let readMovieURL = info[UIImagePickerControllerMediaURL]
// ...
}
后来我问大小:(这个位在Objective-c中)
NSDictionary *options = @{AVURLAssetPreferPreciseDurationAndTimingKey:@YES};
AVURLAsset *readMovieAsset = [[AVURLAsset alloc] initWithURL:readMovieURL options:options];
AVAssetTrack * track = [[asset tracksWithMediaType:AVMediaTypeVideo] firstObject];
// Why is it 720p?
CGSize size = track.naturalSize;
如何让用户从他们的库中选择1080p视频,然后以全分辨率使用它?
答案 0 :(得分:0)
问题在于使用UIImagePickerControllerMediaURL
。这特别指的是处理过的(压缩的)视频。切换到以下内容可以获得完整的1080p视频:
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
// Reference URL instead
let readMovieURL = info[UIImagePickerControllerReferenceURL]
}
我不知道如何防止选择器首先完成压缩过程。