2016-06-15 3 views
2

UIImagePickerControllerを使用して1080pビデオをインポートしたときに、サイズを確認すると720pにしかならないと報告します。UIImagePickerControllerから1080pビデオを取得するには?

ここで私がイメージピッカー開く方法は次のとおりです。ユーザーが画像を選択すると、次に

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ビデオをライブラリから選択して後でフル解像度で操作できるようにするにはどうすればよいですかn?

答えて

0

問題はUIImagePickerControllerMediaURLを使用していました。具体的には、処理された(圧縮された)ビデオを指します。以下に切り替えると、私にフル1080pビデオを提供します:

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

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

私が最初の場所での圧縮過程を経からピッカーを防ぐために、どのようには考えています。

+1

このメソッドは、ユーザーが行った編集をすべて無視することに気付きました。良くない :( –

関連する問題