2017-10-25 8 views
0

現在、写真とビデオを自分のアプリにアップロードしています。これまでのところ、写真のアップロードは完了しましたが、iPadでライブラリにアクセスすると、自分の動画を見たり選択したりすることができません。どのように私はこれを行うことができます知っている誰ですか?あなたはBSImagePickerあなたはライブラリのソースを変更する必要があります動画や写真を表示できるようにしたい場合はライブラリからアプリケーションへのビデオファイルの追加?

Class SixthViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate 
{ 

    @IBOutlet weak var logUd: UIButton! 
    @IBOutlet weak var myImageView: UIImageView! 
    @IBOutlet weak var vælgFiler: UIButton! 
    var SelectedAssets = [PHAsset]() 
    var PhotoArray = [UIImage]() 
    @IBOutlet weak var upload: UIButton! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view. 

     logUd.backgroundColor = UIColor.white 
     logUd.layer.cornerRadius = 7 
     logUd.setTitleColor(UIColor.black, for: .normal) 

     vælgFiler.backgroundColor = UIColor.white 
     vælgFiler.layer.cornerRadius = 7 
     vælgFiler.setTitleColor(UIColor.black, for: .normal) 

     upload.backgroundColor = UIColor.white 
     upload.layer.cornerRadius = 7 
     upload.setTitleColor(UIColor.black, for: .normal) 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    @IBAction func logUd(_ sender: Any) { 
     dismiss(animated: true, completion: nil) 
    } 

    @IBAction func upload(_ sender: Any) { 
     //myImageUploadRequest() 
    } 

    @IBAction func vælgFiler(_ sender: Any) { 

     let vc = BSImagePickerViewController() 

     self.bs_presentImagePickerController(vc, animated: true, 
     select: { (assets: PHAsset) -> Void in 

     },deselect: { (asset: PHAsset) -> Void in 

     },cancel: {(assets: [PHAsset]) -> Void in 

     }, finish: {(assets: [PHAsset]) -> Void in 

      for i in 0..<assets.count{ 
       self.SelectedAssets.append(assets[i]) 
      } 
      self.convertAssetToImages() 
     }, completion: nil) 
    } 

func convertAssetToImages() -> Void { 

    if SelectedAssets.count != 0{ 

     for i in 0..<SelectedAssets.count{ 

      let manager = PHImageManager.default() 
      let option = PHImageRequestOptions() 
      var thumbnail = UIImage() 
      option.isSynchronous = true 

      manager.requestImage(for: SelectedAssets[i], targetSize: CGSize(width: 200, height: 200), contentMode: .aspectFill, options: option, resultHandler: {(result, info)->Void in thumbnail = result! 
      }) 
      let data = UIImageJPEGRepresentation(thumbnail, 0.7) 
      let newImage = UIImage(data: data!) 
      self.PhotoArray.append(newImage! as UIImage) 
     } 
     self.myImageView.animationImages = self.PhotoArray 
     self.myImageView.animationDuration = 10.0 
     self.myImageView.startAnimating() 
    } 
    print("complete photo array \(self.PhotoArray)") 
} 
+0

あなたは 'self.bs_presentImagePickerController'を使用しています。これは明らかに画像のみを含んでいます...' bs_presentImagePickerController'が定義されているライブラリを教えてください – Ladislav

+0

@Ladislav私はライブラリを使用していますBSImagePicker - https://github.com/shwetaporwal/iOS-プロジェクト - PhotoApp –

答えて

0

これは、これまでのところ、私のコードです。

写真のグリッドを表示するPhotosViewControllerというファイルがあります。内部でのみ写真をすべての動画や表示をフィルタリングinitializePhotosDataSource方法です:あなたはライブラリが(と私はこれをテストしている)しますfetchOptionsからこの述語を削除した場合

fetchOptions.predicate = NSPredicate(format: "mediaType = %d", PHAssetMediaType.image.rawValue) 

写真と一緒に動画を表示するには...

関連する問題