У меня есть rangeSlider.lowerValue и rangeSlider.upperValue. Как я могу добавить эти два значения в CMTimeMakeWithSeconds? Я понятия не имею об этом.

имаюсь разработкой приложения на основе видео в Swift3. Где у меня есть один URL-адрес видео и ползунок диапазона в зависимости от продолжительности видео, и пользователь может выбрать любое минимальное и максимальное значение из ползунка. Если предположить, что пользователь выбрал минимальное значение 3 секунды и максимальное значение 7 секунд, то для этого времени мне нужно создать миниатюрное видеоизображение. Для этого я используюAVAssetImageGenerator чтобы сгенерировать это, я попробовал ниже оба кода, чтобы добиться этого:

func createThumbnailOfVideoFromFileURL(_ strVideoURL: URL) -> UIImage?{

        let asset = AVAsset(url: strVideoURL)
        let assetImgGenerate : AVAssetImageGenerator = AVAssetImageGenerator(asset: asset)
        assetImgGenerate.appliesPreferredTrackTransform = true
        let time = CMTimeMake(1, 30)
        let img = try? assetImgGenerate.copyCGImage(at: time, actualTime: nil)

        guard let cgImage = img else { return nil }

        let frameImg    = UIImage(cgImage: cgImage)
        return frameImg
    }
func generateThumbnailForUrl(vidUrl:URL) -> UIImage {

        let asset = AVURLAsset(url: vidUrl, options: nil)
        let imgGenerator = AVAssetImageGenerator(asset: asset)
        var thmbnlImg = UIImage()
        do{
            let cgImage = try imgGenerator.copyCGImage(at: CMTimeMake(0, 1), actualTime: nil)
            thmbnlImg = UIImage(cgImage: cgImage)
            thmbnlImg = thmbnlImg.imageRotatedByDegrees(degrees: 90.0, flip: false)
        }
        catch{
            print(error)
        }
        // !! check the error before proceeding
        return thmbnlImg
    }

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

Изменить: я пытался установить продолжительность, как:

let time: CMTime = CMTimeMakeWithSeconds(rangeSlider!.lowerValue, 1)

Затем я получаю другое уменьшенное изображение, но для некоторых диапазонов ползунков я получаю также нулевое уменьшенное изображение. Может кто-нибудь иметь представление о том, как установить значение предпочитаемого времени вCMTimeMakeWithSeconds ?

Ответы на вопрос(1)

Ваш ответ на вопрос