2017-01-30 74 views
0

我使用下面的代码使用AVAsset类生成缩略图的失败,错误代码AVFoundationErrorDomain = -11800

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 
} 

如果失败,有时与相同的视频网址

以下错误往往矿石生成远程视频的网址

AVFoundationErrorDomain代码= -11800

不知道什么是错与上面的代码我是新来AVAsset一个ND相关框架 任何帮助表示赞赏

+0

这些碰撞是随机 –

+0

要生成远程资产缩略图,在这里看到:http://stackoverflow.com/a/29432405/22147 –

回答

0
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 
} 
+0

fileURLwithPath应该对影片工作存储在本地文件系统,如果我没有错 –

+0

是的,你说得对。 \t fileURLwithPath适用于存储在本地文件系统中的视频。 – Tejas

+0

我的视频来自互联网 –

相关问题