         if self.albumView.phAsset.mediaType == .video {
             PHImageManager.default().requestAVAsset(forVideo: self.albumView.phAsset, options: nil, resultHandler: { (asset, audioMix, info) in
                 DispatchQueue.main.async { [weak self] in
-                    let urlAsset = asset as! AVURLAsset
-                    self?.dismiss(animated: true, completion: {
-                        self?.delegate?.fusumaVideoCompleted(withFileURL: urlAsset.url)
-                    })
+                    if let urlAsset = asset as? AVURLAsset {
+                        self?.dismiss(animated: true, completion: {
+                            self?.delegate?.fusumaVideoCompleted(withFileURL: urlAsset.url)
+                        })
+                    }
                 }
             })
         } else {

                                                          contentMode: .aspectFill, options: options) {
                                                            result, info in

                                                            DispatchQueue.main.async(execute: {
                                                                self.delegate?.fusumaImageSelected(result!)

                                                                self.dismiss(animated: true, completion: {
                                                                    self.delegate?.fusumaDismissedWithImage?(result!)
                                                                })
                                                            })
                    }
                })
            } else {

                DispatchQueue.global(qos: .default).async(execute: {

                    let options = PHImageRequestOptions()
                    //options.deliveryMode = .highQualityFormat
                    options.isNetworkAccessAllowed = true
                    options.normalizedCropRect = cropRect
                    //options.resizeMode = .exact

                    let targetWidth = floor(CGFloat(self.albumView.phAsset.pixelWidth) * cropRect.width)
                    let targetHeight = floor(CGFloat(self.albumView.phAsset.pixelHeight) * cropRect.height)
