2017-03-25 15 views
0

私はビデオキャプチャを含むプロジェクトに取り組んでいます。私は本質的にプログラム的にビデオをキャプチャしたい。Swift ImagePicker VideoCapture didFinishPickingMediaが呼び出されていません

私はimagepickerを定義し、ビデオキャプチャを開始しました:

if (UIImagePickerController.isSourceTypeAvailable(.camera)) { 
      imagePicker.sourceType = .camera 
      imagePicker.cameraDevice = UIImagePickerControllerCameraDevice.front 
      imagePicker.allowsEditing = false 
      imagePicker.delegate = self 

      //present(imagePicker, animated: true, completion: {}) 
     } 
     imagePicker.startVideoCapture() 
     print("Capture started") 

後、私は、ビデオキャプチャを停止:

imagePicker.stopVideoCapture() 
    print("capture over") 

私はこれが私のメソッドを呼び出すべきである知っている:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 

    print("captured") 


    if let pickedvideo:NSURL = (info[UIImagePickerControllerMediaURL] as! NSURL) { 
     let selectorToCall = Selector("videoWasSavedSuccessfully.didFinishSavingWithError:context:") 
     UISaveVideoAtPathToSavedPhotosAlbum(pickedvideo.relativePath!, self, selectorToCall, nil) 

     let videoasset = (AVAsset(url: pickedvideo as URL)) 
     let playeritem = AVPlayerItem(asset: videoasset) 
     let player = AVPlayer(playerItem: playeritem) 
     let playerViewController = AVPlayerViewController() 
     playerViewController.player = player 
     self.present(playerViewController, animated: true) { 
      playerViewController.player?.play() 
     } 
    } 
} 

録音を開始して停止していることがわかっていても、「キャプチャ」は印刷されません。「キャプチュ「再起動」および「キャプチャオーバー」が印刷されます。なぜメソッドが呼び出されていないのか分かりません。助言がありますか?

+1

なぜあなたはココアタグを使用していますか? –

+0

'startVideoCapture'の戻り値をチェックする必要があります。本当ですか? – rmaddy

答えて

-1

mediaTypesをkUTTypeMovieに設定してみてください。

+0

これは、デリゲートメソッドが呼び出されているかどうかとは何でしょうか? – rmaddy

+0

メディアタイプが不足しているため追加することを提案しました。少なくとも欠落した行を追加してチェックしてください。 –

+0

これはコメントであり、答えではありません。しかし、まだコメントを投稿することはできません。コメントは回答として投稿しないでください。あなたがコメントを投稿するのに十分な評判を得るまで待ってください。 – rmaddy

関連する問題