|
@@ -196,6 +196,8 @@ class BFRecordScreenCameraManager : BFRecordScreenBaseManager{
|
|
|
wself.recordProgressCallBack?(currDur)
|
|
|
wself.updateUI(progress: currDur)
|
|
|
// BFLog(1, message: "currTime: \(wself.currentAssetProgress.seconds)")
|
|
|
+
|
|
|
+// wself.getThumImage()
|
|
|
})
|
|
|
RunLoop.current.add(timerr!, forMode: .common)
|
|
|
}
|
|
@@ -532,27 +534,33 @@ extension BFRecordScreenCameraManager : GPUImageVideoCameraDelegate {
|
|
|
// 获取缩略图
|
|
|
let coculationCount = Int(dur.seconds / 5.0)
|
|
|
if coculationCount >= currVideoThumImagesNum{
|
|
|
- if let img = imageFromBuffer(sampleBuffer){
|
|
|
- BFLog(1, message: "取一张缩略图出来 \(dur.seconds), \(recordItem?.thumbImgs.count ?? 0)")
|
|
|
- recordItem?.thumbImgs.append(img)
|
|
|
- videoModel.thumImgs?.append(img)
|
|
|
- currVideoThumImagesNum += 1
|
|
|
- addNewThumb()
|
|
|
+ imageFromBuffer(sampleBuffer) { [weak self] img in
|
|
|
+ guard let wself = self else { return }
|
|
|
+
|
|
|
+ if img != nil {
|
|
|
+ BFLog(1, message: "取一张缩略图出来 \(dur.seconds), \(wself.recordItem?.thumbImgs.count ?? 0)")
|
|
|
+ wself.recordItem?.thumbImgs.append(img!)
|
|
|
+ wself.videoModel.thumImgs?.append(img!)
|
|
|
+ wself.currVideoThumImagesNum += 1
|
|
|
+ wself.addNewThumb()
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- func imageFromBuffer(_ buff: CMSampleBuffer) -> UIImage? {
|
|
|
+ func imageFromBuffer(_ buff: CMSampleBuffer, callback: ((UIImage?)->Void)){
|
|
|
if let buffer = CMSampleBufferGetImageBuffer(buff) {
|
|
|
let ciImage = CIImage(cvPixelBuffer: buffer)
|
|
|
-
|
|
|
- return UIImage(ciImage: ciImage.oriented(forExifOrientation: 6),
|
|
|
- scale: cScreenWidth / 50.0,
|
|
|
- orientation: .up)
|
|
|
-
|
|
|
+ let img = UIImage(ciImage: ciImage.oriented(forExifOrientation: 6),
|
|
|
+ scale: cScreenWidth / 70.0,
|
|
|
+ orientation: .up)
|
|
|
+ if let data = img.jpegData(compressionQuality: 0.3){
|
|
|
+ callback(UIImage(data: data))
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ callback(nil)
|
|
|
}
|
|
|
-
|
|
|
- return nil
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|