Obtener la misma imagen en miniatura del video cada vez desde la URL en Swift iOS

Estoy desarrollando una aplicación basada en video en Swift3. Donde tengo una url de video y un control deslizante de rango de acuerdo con la duración del video y el usuario puede seleccionar cualquier valor mínimo y máximo del control deslizante. Si se supone que el usuario ha seleccionado un valor mínimo de 3 segundos y un valor máximo de 7 segundos, entonces durante este tiempo necesito generar una imagen en miniatura de video. Para esto estoy usandoAVAssetImageGenerator para generar esto, probé a continuación ambos códigos para lograr esto:

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
    }

Pero el problema es que estoy obteniendo la misma imagen en miniatura usando los dos métodos anteriores, porque no estoy estableciendo la duración aquí en ambos métodos. ¿Cómo puedo agregar una duración mínima y máxima para generar diferentes imágenes en miniatura para cada duración diferente? Por favor, ayúdame a resolver mi problema. ¡Gracias!

Editar: intenté establecer la duración como:

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

Luego obtengo una imagen en miniatura diferente, pero para algunos rangos de control deslizante también obtengo una imagen en miniatura nula. ¿Alguien puede tener alguna idea de cómo establecer el valor preferido de TimeScale enCMTimeMakeWithSeconds ?

Respuestas a la pregunta(1)

Su respuesta a la pregunta