iOS开发笔记-103:Swift5 - 获取视频第一帧图片

avplay: AVPlayerItem
let itemPath: AVURLAsset = avplay.asset as! AVURLAsset
//获取视频第一帧图片
        let gen = AVAssetImageGenerator.init(asset: itemPath)
        gen.appliesPreferredTrackTransform = true
        let time = CMTimeMakeWithSeconds(0.0, preferredTimescale: 1)
        var actualTime : CMTime = CMTimeMakeWithSeconds(0, preferredTimescale: 0)
        do {
            let imageCg = try gen.copyCGImage(at: time, actualTime: &actualTime)
    //            let imgdata = image.jpegData(compressionQuality: scale);
            let image = UIImage.init(cgImage: imageCg)
            var data: Data!
            if image.pngData() == nil {
                data = image.jpegData(compressionQuality: 1)
            } else {
                data = image.pngData()
            }
            let how = data.count / 1024
            //        JJLog("how =\(how)kb\n")
            //比例
            let scale:CGFloat = (how > 200) ? (CGFloat(200/how)) : 1.0
            //压缩图片,图片上传不能大于200kb
            data = image.jpegData(compressionQuality: scale);
            let imageString = data.base64EncodedString()

            uploadVideoImgData(vImgDataStr: imageString)
        } catch  {
            print("错误")
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容