简体   繁体   中英

Generation of thumbnail fails with error AVFoundationErrorDomain Code=-11800

I am using following code to generate a URL of remote video using AVAsset class

func generateThumnail(url :URL, fromTime:Float64) -> UIImage? {
    let asset :AVAsset = AVAsset(url:url)
    let assetImgGenerate : AVAssetImageGenerator = AVAssetImageGenerator(asset: asset)
    assetImgGenerate.appliesPreferredTrackTransform = true
    assetImgGenerate.requestedTimeToleranceAfter = kCMTimeZero;
    assetImgGenerate.requestedTimeToleranceBefore = kCMTimeZero;

    let time        : CMTime = CMTimeMakeWithSeconds(1,30)

    do {
        let img = try assetImgGenerate.copyCGImage(at: time, actualTime: nil)
        return UIImage(cgImage: img)
    } catch let error as NSError {
        print("Image generation failed with error \(error)")
        return nil
    }
    return nil
}

If fails sometimes ore more often with following error for same video URL

AVFoundationErrorDomain Code=-11800

Not sure whats wrong with the above code I am new to AVAsset and related framework any help is appreciated

func getVideoThumbNail(_ videoName: String) -> UIImage {
    do {
        let url = URL(fileURLWithPath: getDocumentsDirectory().appendingPathComponent(videoName))
        let asset = AVURLAsset(url: url, options: nil)
        let imgGenerator = AVAssetImageGenerator(asset: asset)
        imgGenerator.appliesPreferredTrackTransform = true
        let cgImage = try imgGenerator.copyCGImage(at: CMTimeMake(2, 3), actualTime: nil)
        return UIImage(cgImage: cgImage)
    } catch let error as NSError {
        print("\(ERROR_GENERATING_THUMNAIL): \(error)")
    }
    return ERROR_GENERATING_THUMNAIL
}

func getDocumentsDirectory() -> NSString {
    let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
    return paths[0] as NSString
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM