2017-02-19 16 views
1

私は迅速なアプリケーションでライブラリからビデオを取得しようとしています。デリゲートメソッドに続いてiOS Swift - ライブラリからのビデオを使用できません

print("ChatDetailsController - imgaction - Vid from Lib pressed") 
     self.selection = "videoLib"; 
     self.imgSelection = "vidFromLib" 
     self.imagePicker.sourceType = .PhotoLibrary 
     self.imagePicker.delegate = self 
     self.imagePicker.mediaTypes = ["public.movie"] 
     self.presentViewController(self.imagePicker!, animated: true, completion: nil) 

:私は、次のコードスニペットを使用してい アプリを実行している場合

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) 
{ 
    if(selection == "videoLib") 
    { 
    if let videoURL = info[UIImagePickerControllerReferenceURL] as? NSURL 
     { 


      print("imagePickerController - reached for video - from Lib - \(videoURL)") 
      let videoData = NSData(contentsOfURL: videoURL) 

     } 
    } 

} 

、それはライブラリを示し、私はビデオを選択することができ、それは、ビデオを圧縮すると言います..しかし、その後、アプリケーションがクラッシュします。

videoData変数にアクセスしようとするとクラッシュします。パスがアセットパスでありビデオパスではないため、実際のデータを取得できませんでした。

ログインがこれに似た何かを示しています

fatal error: unexpectedly found nil while unwrapping an Optional value

印刷機能は示しています

また

imagePickerController - reached for video - from Lib - assets-library://asset/asset.MOV?id=7D3BFA00-A7CB-470C-8899-F82FCC2CBC54&ext=MOV

、右、ビデオを選択/このようなメッセージを選択した後コンソール/ログに表示されます。

[Generic] video path /var/mobile/Media/PhotoData/CPLAssets/group419/A2901DD1-FDEF-423B-B4A3-E808B9AC45E1.MOV for PLPreviewImageAndDurationForVideoAtPath does not exist

もちろん、実行ごとにファイル名が変わります。

私はカメラからビデオと画像を取得することができ、ライブラリから画像を取得することができます。私はライブラリからのビデオの使用に問題があります。私は、ビデオURLが次のように表示されることを期待しています:

/var/mobile/Containers/Data/Application/BEDDC883-B20E-496D-8C9A-A40EC0A29214/Documents/63ea24932c101b76c72fcbae3993fc9b.movたとえば、ビデオファイルはアプリケーション内にあり、使用できないアセットURLとして表示されません。 ご協力いただければ幸いです。

+0

これに関するアップデートはありますか? –

答えて

1

問題は、間違ったビデオを取得しようとしていることです。 info[UIImagePickerControllerReferenceURL]を使用しようとしています。あなたがしたいのはinfo[UIImagePickerControllerMediaURL]です。

+0

あなたは間違いなし!私はカメラからの私の選択に既にそれを持っていたが、それはビデオのLibの部分について同じではないと思った。私はより多くのポイントを得るとすぐにあなたの答えを受け入れます。本当にありがとう! – Mahmoud

関連する問題