Swift ImagePicker VideoCapture didFInishPickingMedia не вызывается

Я работаю над проектом, который включает в себя захват видео. По сути, я хочу записывать видео программно.

Я определил средство выбора изображений и начал захват видео:

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()
        }
    }
}

но «захваченный» не печатается, хотя я знаю, что начинаю и останавливаю запись, поскольку печатаются «Захват начат» и «Захват окончен». Я не уверен, почему метод не вызывается. Какие-либо предложения?


person newguy222    schedule 25.03.2017    source источник
comment
Почему вы используете тег какао?   -  person El Tomato    schedule 25.03.2017
comment
Вы должны проверить возвращаемое значение startVideoCapture. Он возвращает true?   -  person rmaddy    schedule 25.03.2017


Ответы (1)


Попробуйте установить для mediaTypes значение kUTTypeMovie.

person Hiren Patel    schedule 25.03.2017
comment
Какое это имеет отношение к вызываемому методу делегата или нет? - person rmaddy; 25.03.2017
comment
Я предложил добавить, поскольку в нем отсутствовали типы носителей. По крайней мере, мы должны добавить недостающую строку и проверить. - person Hiren Patel; 25.03.2017
comment
Тогда это должен быть комментарий, а не ответ. Но вы пока не можете оставлять комментарии. Пожалуйста, не оставляйте комментарии в качестве ответов. Подождите, пока вы не заработаете достаточно репутации, чтобы публиковать комментарии. - person rmaddy; 25.03.2017