Select Multiple Videos and Convert PHAsset to Video File using OpalImagePickerController in swift

Viewed 17

I am working with OpalImagePickerController in Swift dealing with uploading multiple images and videos. I can easily deal with images and converting to PHAsset to UIImage but I am trying to upload multiple videos with OpalImagePickerController but unable to convert PHAsset to Video format to upload. I am providing my code .

 let imagePicker = OpalImagePickerController()
                    imagePicker.imagePickerDelegate = self
                    imagePicker.allowedMediaTypes = Set([PHAssetMediaType.image])
                    imagePicker.maximumSelectionsAllowed = 20
                    self.present(imagePicker, animated: true, completion: nil)

internal func imagePicker(_ picker: OpalImagePickerController, didFinishPickingAssets assets: [PHAsset])
    {
        var image = UIImage()
        for asset in assets
        {
            switch asset.mediaType {
            case .image:
                    print("Image")
                image = asset.getAssetThumbnail()
                let data = image.pngData() as NSData?
                self.sendImage(data:data! as Data, previewImage: image)
            case .video:
                    print("Video")
                let options: PHVideoRequestOptions = PHVideoRequestOptions ()
                options.deliveryMode = .highQualityFormat
                options.version = .original
                PHImageManager.default().requestAVAsset (forVideo: asset, options: options, resultHandler: {(asset, audioMix, info) in
                    if let urlAsset = asset as? AVURLAsset {
                        let playerItem = AVPlayerItem(asset: urlAsset)
                        self.sendVideo(video: playerItem, isFromCamera: false)
                    } else {
                       
                    }
                })
              
               
               
                case .audio:
                    print("Audio")
                default:
                    print("Unknown")
                }
           
        }
       
        picker.dismiss(animated: true, completion: nil)
    }
extension PHAsset {
func getAssetThumbnail() -> UIImage {
    let manager = PHImageManager.default()
    let option = PHImageRequestOptions()
    var thumbnail = UIImage()
    option.isSynchronous = true
    manager.requestImage(for: self,
                         targetSize: CGSize(width: self.pixelWidth, height: self.pixelHeight),
                         contentMode: .aspectFit,
                         options: option,
                         resultHandler: {(result, info) -> Void in
                            thumbnail = result!
                         })
    return thumbnail
    }

Please help me to convert PHAsset to Video format

0 Answers
Related