UIImagePickerController videoMaximumDuration не работает - PullRequest
0 голосов
/ 25 апреля 2018

Я снимаю video с камеры и после выбора видео просто проверяю продолжительность видео в методе didFinishPickingMediaWithInfo, если продолжительность видео меньше 15 секунд, отклоняет UIImagePickerController и начинает использовать видео, ноПродолжительность видео более 15 сек. с предупреждением обрезки видео.здесь я не отклоняю UIImagePickerController, просто показывая предупреждение после того, как предупреждение отклонено, UIImagePickerController неактивен, его кнопки отключены, такие как (повторное воспроизведение и воспроизведение и пользовательское видео).

    imageController.mediaTypes = ["public.movie"]
    imageController.sourceType = UIImagePickerControllerSourceType.camera
    imageController.allowsEditing = true
    self.present(imageController, animated: true, completion: nil)

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
    {
               let outputFileURL = info[UIImagePickerControllerMediaURL] as! URL
               let asset = AVURLAsset(url: outputFileURL)
               let durationInSeconds = asset.duration.seconds

        if(durationInSeconds < 15)
             {
                // Here my upload process
             }
               else {
                   Constants.showErrorAlertView(message: "15 seconds only allowed please trim the video and upload ")
               }
     }

1 Ответ

0 голосов
/ 26 апреля 2018

Я не совсем уверен, что означает "public.movie", но проблема может быть в .mediaTypes

См. Apple: videoMaximumDuration

Это свойство доступно только в том случае, если массив значений свойства mediaTypes включает тип носителя kUTTypeMovie.

Ваше использование: imageController.mediaTypes = ["public.movie"]

Попробуйте использовать: imageController.mediaTypes = [kUTTypeMovie as String]

Обязательно добавьте MobileCoreServices в заголовочный файл, чтобы можно было использовать kUTTypeMovie:

#import MobileCoreServices
...