【发布时间】:2018-11-06 22:12:54
【问题描述】:
我正在使用这些步骤编写代码以获取 youtube 视频缩略图。缩略图 url 正在打印,但我也收到下面提到的错误:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CellRID") as! VideoAdsCell
let youtubeId = extractYoutubeIdFromLink(link: arrayVideo[indexPath.row].video)
if let url = URL(string: "http://img.youtube.com/vi/\(youtubeId!)/1.jpg") {
print(url)
let thumbnail = getThumbnailFrom(path: url)
print(thumbnail as Any)
cell.imageForMain.image = thumbnail
cell.viewForMain.layer.masksToBounds = false
cell.viewForMain.layer.shadowOffset = CGSize(width: -1, height: 1)
cell.viewForMain.layer.shadowRadius = 1
cell.viewForMain.layer.shadowOpacity = 1
cell.viewForMain.layer.cornerRadius = 8
}
return cell
}
我正在为视频缩略图使用此功能。但我得到了错误。
图片网址:http://img.youtube.com/vi/XHEa9Zu9qsc/1.jpg
错误:生成缩略图时出错:无法打开
func getThumbnailFrom(path: URL) -> UIImage? {
do {
let asset = AVURLAsset(url: path , options: nil)
let imgGenerator = AVAssetImageGenerator(asset: asset)
imgGenerator.appliesPreferredTrackTransform = true
let cgImage = try imgGenerator.copyCGImage(at: CMTimeMake(0, 1), actualTime: nil)
let thumbnail = UIImage(cgImage: cgImage)
return thumbnail
} catch let error {
print("*** Error generating thumbnail: \(error.localizedDescription)")
return nil
}
}
【问题讨论】:
-
如果是视频,你应该使用 AVAssetImageGenerator 否则你需要下载并显示图像
标签: ios swift uitableview thumbnails