ios - 如何从 UIImagePickerController 获取 1080p 视频?

标签 ios objective-c swift video

当我使用 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 视频,然后以全分辨率使用它?

最佳答案

问题是使用 UIImagePickerControllerMediaURL。那特指处理过的(压缩过的)视频。切换到以下内容可获得完整的 1080p 视频:

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

    // Reference URL instead
    let readMovieURL = info[UIImagePickerControllerReferenceURL]
}

我不知道如何防止选择器首先经历压缩过程。

关于ios - 如何从 UIImagePickerController 获取 1080p 视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37839314/

相关文章:

swift - 具有许多属性的初始化类

swift - 如何在 swift 2 中的 http POST 请求中添加参数(对于 Drupal7 评级字段)

ios - Objective-C 中的 for 循环

objective-c - 应用程序不释放内存,内存使用量每次都会增加一倍

ios - 在等待上一个执行完成时循环遍历 block

ios - 如何获得 NSString 中字符的位置?

swift - 如何将自定义注释的底部放置在 Mapbox iOS 中的特定坐标上

ios - 在编辑过程中自定义 UITableViewCell 的外观

ios - 如果第一个通知在 swift 中被忽略,则安排第二个通知(或者如果通知被忽略则完成任何操作)

ios - 如何在 iOS 中切换屏幕时创建加载屏幕