カメラロールから動画を選択して、選択した動画の頭の静止画がUIImageViewに入って映し出され、再生ボタンを押すと動画を再生する(画面遷移してAVPlayerViewControllerにて再生)という単純なものを作ろうとしております。
そこで、下記のリンク先のように動画から静止画を取得したいと思っており、
AssetsLibraryが非推奨のためPhotosをimportして行いたいと思っております。
005 動画から静止画を取り出す
カメラロールからNSURL型で動画のパスを取得することに成功したのですが、
let fetchResult: PHFetchResult = PHAsset.fetchAssetsWithALAssetURLs([url], options: nil)
でurlを入れてprintで確認すると中身がnilになってしまい、PHAssetへキャストする際に引っかかってしまいます。(このやり方が合っているかまだわからないのですが、、、)
Swift
1// imagePickerControllerメソッド内 2 3 let url: NSURL = info[UIImagePickerControllerMediaURL] as! NSURL 4 let fetchResult: PHFetchResult = PHAsset.fetchAssetsWithALAssetURLs([url], options: nil) 5 print(url) // 〜〜.MOV 6 print(fetchResult.firstObject) // nil 7 let asset: PHAsset = fetchResult.firstObject as! PHAsset 8 let manager = PHImageManager.defaultManager() 9 manager.requestImageForAsset(asset, targetSize: CGSize(width: 140, height: 140), contentMode: .AspectFill, options: nil) { 10 (image, info) in 11 // imageをセットする 12 self.videoFromCameraRoll.image = image 13 }
コードはこのようになっております。
nilになってしまう原因と静止画を取り出すやり方をどなたか教えてくださると助かります。
よろしくお願いしますm(_ _)m
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/23 03:26