2017-02-19 2 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

당신은 틀림 없습니다! Camera에서 선택한 항목이 이미 있지만 Lib 부분의 비디오와 같지 않다고 생각했습니다. 나는 더 많은 포인트를 얻 자마자 당신의 대답을 받아 들일 것입니다. 무리 감사! – Mahmoud

관련 문제