Снимок экрана с Avplayer ios 10 * является черным изображением - PullRequest
1 голос
/ 21 мая 2019
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
    }
}

1 Ответ

0 голосов
/ 29 мая 2019
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)
                    }
                })
            }
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...