繁体   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