首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有Avplayer ios 10*的screenShot镜像为黑色镜像

带有Avplayer ios 10*的screenShot镜像为黑色镜像
EN

Stack Overflow用户
提问于 2019-05-21 17:54:24
回答 1查看 200关注 0票数 1
代码语言:javascript
运行
复制
extension UIView {
    func capture() -> UIImage? {
        var image: UIImage?

        if #available(iOS 10.0, *) {
            let format = UIGraphicsImageRendererFormat()
            format.opaque = isOpaque
            let renderer = UIGraphicsImageRenderer(size: frame.size, format: format)
            image = renderer.image { context in
                drawHierarchy(in: frame, afterScreenUpdates: true)
            }
        } else {
            UIGraphicsBeginImageContextWithOptions(frame.size, isOpaque, UIScreen.main.scale)
            drawHierarchy(in: frame, afterScreenUpdates: true)
            image = UIGraphicsGetImageFromCurrentImageContext()
            UIGraphicsEndImageContext()
        }

        return image
    }
}
EN

回答 1

Stack Overflow用户

发布于 2019-05-29 20:03:56

代码语言:javascript
运行
复制
public extension AVAsset {
    func takeScreenshot(at: Double,completion: @escaping (UIImage?) -> Void) {
            DispatchQueue.global().async {
                let imageGenerator = AVAssetImageGenerator(asset: self)
                let time = CMTime(seconds: at, preferredTimescale: 600)
                let times = [NSValue(time: time)]
                imageGenerator.generateCGImagesAsynchronously(forTimes: times, completionHandler: { _, image, _, _, _ in
                    if let image = image {
                        completion(UIImage(cgImage: image))
                    } else {
                        completion(nil)
                    }
                })
            }
        }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56235711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档