簡體   English   中英

縮略圖的生成失敗,錯誤為AVFoundationErrorDomain Code = -11800

[英]Generation of thumbnail fails with error AVFoundationErrorDomain Code=-11800

我正在使用以下代碼使用AVAsset類生成遠程視頻的URL

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
}

如果失敗,則有時對同一視頻URL的跟蹤錯誤經常發生

AVFoundationErrorDomain代碼= -11800

不知道上面的代碼有什么問題我是AVAsset和相關框架的新手,不勝感激

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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM